Performance testing is aimed to ensure that the tested software or application works properly under critical conditions. It helps determine how quickly some specific parts of its system respond in different situations.
Therefore, it’s quite important to have requirements for performance tests and know the places where to find this information.
- What’s the timeframe of the current project so you can plan the start and completion of the testing process?
- Are there any results of functional testing? How does the application behave?
- Some tests showed that a firewall may affect the results of load testing. Should we obtain permission from the firewall before we start testing?
- What are the URL and credentials of the application?
- Are there any suggestions for testing tools? – LoadRunner, JMeter, etc.
- What type exactly performance testing should the QA engineers complete? – Stress testing, load testing, capacity testing, soak testing.
- What are the objectives of the testing process? – find the system vulnerabilities, see the platform that performs better in comparison with another one, and assess the system by performance criteria.
- What are the acceptance criteria for every test? – the response time of each transaction should be less than 10 sec; at least 90% of user transactions should be successful.
- What kind of application is it? – mobile, web, client-server.
- What platform was used to develop the product? – PHP, Ruby, .Net, etc.
- What’s the database? – SQL, MySQL, Oracle.
- What application server does the system use? – WebSphere, Tomcat, IIS.
- What’s the system hardware (with all servers, configurations, and interaction mechanisms)? – LAN/WAN, bandwidth techniques, batch transactions, terminal servers, etc.
- Do you have a tool on a web server to monitor traffic? – Google analytics, AppDynamics, New Relic.
- Are there any defects already found? – timeout error due to longer response time, unexpected increase in the number of visitors per some period, and higher CPU and memory usage.
- What is the client-server protocol? – HTTP, HTTPS, TCP/IP.
- Does the web application depend on the browser version of the client?
- Is it possible to run tests in a separate test environment? – it is highly recommended.
- Are there any special input requirements? – data verification, uniqueness, time sensitivity.
- Do you know already the performance scenarios? – for some social networks these can be the login process, viewing/adding posts, message exchange, etc.
- Do you know the exact number of users who have visited the website in hours?
- What’s the way users access the application? – from time to time during the day; simultaneous login.
- How long do users use the application for one session?
- What’s the number of transactions users complete per day?
- Is the location of your users important? Is it the same place or they are worldwide?
- What’s the way users access the application? – web, mobile, remote desktop protocol.
- Have you set an acceptable maximum time to complete the transaction? – the system should respond within 5 seconds.
- What are the peak load days/hours of maximum energy consumption on a server?
- How many users visit the system during this peak load time?
- What’s the workload model?
- What’s the exact number of users who can access the system simultaneously?
- Are there time limits for test performance?
- Do you have any additional information that can help with testing?
To sum up, we’d like to emphasize one more time that the purpose of performance testing is not to find bugs but to eliminate vulnerabilities in the software performance at the stage of modeling and design of the system, before the main stage of development. Hence, it is significantly important to get ready properly for test runs and to do everything the best way.