Non-function Testing
To determine how fast the system performs under particular workload
To know the response time for the server under certain workload / response time of the app under certain workload
Compare between two servers or two environments
To detect what part of the system that cause the system perform badly
Main Process
Planning
Validate Recourses
Server
Version of server is stable
Environment is stable and ready for Performance testing
Write High Level scenarios
Identify the performance Acceptance criteria it's the more important part [you must to know how the response should be , what is accepted and what is rejected ]
Plan and design performance tests
Development
- Write the scripts of performance
Executions
Run the scripts
Analyse the Results
fine Queuing the server till find the best Result Increase Ram High a CPU Or Update the script itself
after many Queuing we write a Report Send the report to Customers and developer and check if it meets the expectation and acceptance criteria or Not
Why We do Performance Testing ?
identify the problems early
Produce Better Quality & More Scalable Code
Because Poor Performance Affected on Our Customers Productivity
Types
Load Testing
- More Important Type -> because it can tell me how the system will behave in the normal and in incase of load
Stress Testing
Check the Error rate that helping in monitoring the CPU and memory usage
Check the recovery of the server
Endurance Testing
Take a long time [7 hours or sometimes for a day or two days]
similar to stress testing for check Error rate but the difference is we do the testing with fixed users does the same activities
if the response time is stable then it's good if response time is not stable that's mean we have a memory leak [CPU become 100%]
Spike Testing
sudden increase & decrease of users
similar to Endurance testing that the aim is check if there is memory leak or not
Volume Testing
difference type of testing because it is focus on comparison between data [ number of data and size of data ]and response time
Scalability Testing
Check if the system can scalable with the increasing number of users or not
the response time that the system will take in the scalability does [increase the ram according the increasing of users]