Agenda Items
• Performance Testing
Performance Testing
Ensure application performs well under expected workload
• Application functionality is not the only concern
• Response time, reliability & resource utilization do matter
• Performance testing is not to eliminate bugs but bottlenecks
• Focus is on:
• Speed determines application response time
• Scalability determines maximum workload application can handle
• Stability determines if application is stable under varying loads
Why Performance Testing?
• Share application’s performance attribute with stakeholder (e.g. client)
• Uncover areas of improvement before application launch
• Poor performing application will lose customers, hence business
• It’s mandatory to perform performance testing for mission critical systems
• Space missions,
• Medical equipment with software
• Help determine life of system without malfunctions
Types
Volume Testing
Load Testing
Stress Testing
Soak/Endurance Testing Spike Testing
Load Testing
Applications ability to perform under anticipated user load
• Helps identify bottlenecks before system goes live or prior to busy season
• Constantly increase load until it reaches to defined threshold
• Increase in load increase in number of concurrent users
• Determine response time, throughput, server condition & much more…
• Generally performed under controlled environment/situation
• Usually performed for important business transactions (e.g. ordering)
Load Testing - Cases
• eCommerce website during FLAT 50% OFF
• FBRs e-filling portal during month of Sept
• Non-Stop transfer of files to & from a hard disk
• Download large file from a website
• Play same video by concurrent users
Load Testing - Tools
• Numerous tools available
• Load Runner
• Blaze Meter
• Apica
• WebLoad
• How it works?
• For web based applications, increase load slowly until reaches to threshold
• Use multiple geographical locations
• Observe number of loops completed in a given time
• Monitor CPU/memory & database performance
• Report results
Stress Testing
Meant to measure performance outside system parameters
• Tested with number of users or transactions beyond threshold limit
• Goal is to measure application stability
• Failure at what point system fails?
• Recovery how does system recovers from failure?
• Determines how application behaves under unfavorable conditions (e.g. DDOS)
• Generally performed under controlled environment/situation
Stress Testing – Why?
• It allows the test team to monitor system performance during failures.
• To verify if the system has saved data before crashing or NOT.
• To verify if the system prints meaningful error messages while crashing or random
exceptions.
• To verify if unexpected failures do not cause security issues.
Stress Testing – How?
• Running several resource-intensive applications in a single computer at the same
time
• Attempt to hack into a computer and use it as a zombie to spread spam
• Flooding a server with useless e-mail messages
• Making numerous, concurrent attempts to access a single Web site or operation
• Attempting to infect a system with viruses, Trojans, spyware or other malware.
Volume Testing
Test application with large amount of data
• Also referred to as flood testing
• Analyze system performance by increasing volume of data in DB
• Identify problems that are likely to occur with large volume of data
• Figure out point at which application degrades
• Help identify system capacity
Volume Testing – What?
• To check if there is any data loss
• Check the system's response time
• Check if the data is stored correctly?
• Verify if the data is overwritten without any notification
• Check for warning and error messages, whether it comes at all for volume
problems
• Check whether high volume data affects the speed of processing
Volume Testing – Recommendations
• Stop all servers and check all logs
• Before the load test, manually execute the application scenario
• For useful results, stagger the number of users
• To overcome license constraints, balance think time
• Be cautious with the new build
• Analyze the use case for improvement once a baseline has been established
• A repetition of particular parts of volume testing becomes inevitable in case there
is a performance bottleneck
Soak Testing
Check the system performance for specified period of time
• Also referred to as “Endurance Test”
• System stayed under normal work load
• Executed or monitored for longer period of time
• Example:
• Suppose an OPD application is expected to run for 4hours a day; under soak
test, application will be executed for 8hours.
• Help determine issue like memory leaks or unexpected behavior
Spike Testing
• It’s a subset of “Stress Testing”
• Performed by increasing # of users suddenly
• How application behaves now?
• Measure system performance and server resources
• Similar tools are used as for Load or Stress Testing
Performance Testing – Steps
Tune System (optimization changes)
Analyze Results
Execute Test Revisit Test
Cases/Scripts
Create Test Environment
Create Test Scripts
Choose Suitable Tool
Determine Key Measures (e.g. ordering)
Identify Business Goals