Performance Testing of Web Apps Neeraj Jain neeraj@cavisson.com Cavisson Systems Inc. Nov 21, 2009. 2-5 PM Cavisson Proprietary and Confidential
Agenda SDLC Software Testing Performance Testing How Web Apps work? HTTP Protocol Performance Testing Steps NetStorm Demo
About topic There are three key words in the title ‘Performance Testing of Web Apps’: Performance Testing Web Apps
Performance Testing of Web Apps “A clever person solves a problem. A wise person avoids it.” - Albert Einstein
Performance Testing of Web Apps Software testing is an investment with guaranteed returns.
Performance Testing of Web Apps Performance Software testing is an investment with guaranteed double digit returns.
Performance Testing of Web Apps SDLC
SDLC Software Development Life Cycle is Process of creating or altering software Models and methodologies to develop software systems
Model of SDLC
SDLC Phases
Performance Testing of Web Apps Software Testing
What is Software testing? Software testing is a process of verifying and validating a software application or program to make sure it Meets the business and technical requirements that guided its design and development, and Works as expected.
What is Software testing? Software testing also identifies important Defects, Flaws, or Errors in the application code that must be fixed. The modifier “important” is, well, important because defects must be categorized by severity.
What is Software testing? VERIFICATION PROCESS The verification process confirms that the software meets Its technical specifications A “specification” is a description of a function in terms of a measurable output value given a specific input value under specific preconditions. A simple specification may be along the line of “a SQL query retrieving data for a single account against the multi-month account-summary table must return these eight fields <list> ordered by month within 3 seconds of submission.”
What is Software testing? VALIDATION PROCESS The validation process confirms that the software meets The business requirements A simple example of a business requirement is “After choosing a branch office name, information about the branch’s customer account managers will appear in a new window. The window will present manager identification and summary information about each manager’s customer base: <list of data elements>.” Other requirements provide details on how the data will be summarized, formatted and displayed.
What is Software testing? DEFECT FINDING A defect is a variance between the Expected and Actual result The defect’s ultimate source may be traced to a fault introduced in the specification, design, or development (coding) phases. Q: How many QA testers does it take to change a lightbulb? A: QA testers don't change anything. They just report that it's dark.
What is Software testing? Software testing answers questions that development and code reviews can’t: Does it really work as expected? Does it meet the users’ requirements? Is it what the users expect? Do the users like it? Is it compatible with our other systems? How does it perform? How does it scale when more users are added? Which areas need more work? Is it ready for release?
What is Software testing? What can we do with the answers to these questions? Save time and money by identifying defects early Avoid or reduce development downtime Provide better customer service by building a better application Know that we’ve satisfied our users’ requirements Build a list of desired modifications and enhancements for later versions Identify and catalog reusable modules and components Identify areas where programmers and developers need training
Types of Testing Data set testing Unit testing System testing Integration testing Black box testing White box testing Module testing Regression testing Automation testing User acceptance testing Performance testing
Performance Testing of Web Apps
Performance Testing Performance Testing is done to Determine or Validate the speed, scalability, and stability characteristics of the system or application under test in order to achieve desired Response times, Throughput, and Resource-utilization levels
Load Testing Load Testing is done to Determine or Validate the performance characteristics of the system or application under test by subjecting it to Workloads and Load volumes anticipated during production operations.
Stress Testing Stress Testing is done to Determine or Validate performance characteristics of the system or application under test when subjected to conditions beyond those anticipated during production operations. Its sub categories may include: Spike testing (short burst of extreme load) Extreme load testing (load test with “too many” users) Hammer testing (hit it with everything you’ve got, often with no delays)
Goals of Performance Testing Meet Service Level Agreements Can system sustain in peak load times? Application should be able to handle Many simultaneous user requests, Large input data from users, Simultaneous connection to DB, Heavy load on specific pages etc.