Checklist for performance testing
Updated: Jan 19, 2022
Performance tests are performed to determine the response time of a system under a specific workload; these types of tests will help us improve the user experience while working with the software.

The preliminary questions to ask
Do you need to compare the performance results against your competitors?
What is the time frame that you have to execute the process?
How do you intend to execute the tests in the real world?
What is the purpose of doing performance testing?
What are the performance test objectives?
What type of failures do you anticipate?
How flexible are the timelines?
Test Analysis before starting the project
What do you need to measure during the testing process (Response Time, Volume, memory, etc.)?
What types of performance tests do you need to perform (Volume, Spike, Load, etc.)?
All functional tests of the application are done before the performance tests?
What do you need to cover during the testing process?
What are the Entry criteria to start the tests?
What are the interfaces of the application?
What pass/fail criteria do we use to evaluate the test results (Response time, memory consumption, I/o, etc.)?
Team
What are the areas of responsibilities (Developers, Testers, Managers, etc.)?
Do you have the relevant people to perform the process?
Do you need to add training to your team?
The available resources
Do you need to integrate with external support teams that consume the budget?
How do you intend to create the testing data (Auto tool or Manually)?
Do you have permanent/temporary resources?
What budget is available to perform the process?
Reporting
Do you need to use a 3rd party tool to generate the reports?
Who will be responsible for reporting the testing process?
What data should be included in the report?
How is the report conducted?
What are the timelines that the report should be delivered (Monthly, Weekly, Daily)?
Test Environment
Do you have the resources to create a performance test environment similar to real production?
What testing environment do we need to use to execute the tests?
How much time do you need to invest in creating the test environment?
Are secondary servers being available in any case of server failure?
Who will be responsible for creating and maintaining the environment?
Do you intend to run on virtual architecture (VMware/Hyper-V)?
Do you know to build a virtual environment?
Do you need to buy new hardware to support the tests?
Test Data
What amount of data do we need to create to support the testing scenarios?
How do you intend to create the testing data (Auto tool or Manually)?
Do you have enough storage to handle the testing data?
Can you replicate the data to reduce the creation time?
Can you use the test data in future projects?
What is the effort to create the testing data?
Should the testing data be unique?
Where do you intend to store the data?
Testing Baseline
Who is responsible for providing the current performance baseline?
What is the baseline that you use to compare the test results?
What is the acceptable time for a functionality response?
Who will validate that the baseline is good enough?
Consider the costs
What hardware costs do you need to use to accomplish test project goals?
Do you have the budget to perform all the testing cycles you need?
How can you reduce the costs without affecting the testing process?
Do you need to use 3rd party tools that will increase the costs?
Can you use open-source tools to reduce the costs?
What are the costs if you need external support?
What is the cost for each day of testing?
Testing Considerations
How do you intend to monitor the process when running on large volumes?
Can you reset the testing environment between each testing cycle?
How many users should be involved in the testing process?
How many test cycles do you intend to run?
Resources to monitor
Define the physical resources to be monitored throughout the test execution, Examples:
Memory (RAM).
Network transactions.
Processor.
I/O Disks.
Define the software resources to be monitored throughout the test execution, Examples:
Web Server.
Database Server
System Services.
Software Cache.