Performance testing is something that should be done throughout the entire development lifecycle. There is a lot of testing that can and should be done during the early stages of design, development, and system test to optimize performance, regardless of hardware configurations.
In the early stages of the project, requirements should be gathered around such things as expected response time, throughput and scalability. An architecture needs to be designed to take these things into account. This architecture should be reviewed keeping in mind ways to optimize those areas of performance that are most important to the users.
During the code development stage, performance unit tests should be created and executed. These could check for memory leaks or other areas that may make the code vulnerable to performance issues. Functional test efforts should include timings for functions that are time-sensitive. Even if the production hardware may speed up the overall time, testing for performance early will help uncover certain areas of the code which perform poorly compared to other functions and can further be investigated for optimization.
Similarly, load and stress tests can be run in performance test environments to help uncover scenarios in which the software is performing slowly. It's a mistake to think that these problems will all be solved by throwing more hardware at the problem. Many areas of the software can be optimized before deploying on the production hardware.
Your final tests should try to emulate your hardware environment as closely as possible. Though your test environment may not be as robust as your production environment, you can continue to find and correct potential bottlenecks during the test phases.
If you review and test for performance throughout the software development lifecycle, your team will have the opportunity to ensure each component of the application is operating at its optimum performance before deploying to your production deployment.
Dig Deeper on Stress, Load and Software Performance Testing
Related Q&A from Yvette Francino
Agile expert Yvette Francino explains how the concept of story points -- a gauge of complexity -- works in the Scrum process of software development.continue reading
Project managers need to understand the major differences between Web-based application testing and testing traditional desktop applications.continue reading
Security testing is very specialized. Is it better to outsource this effort or should in-house testers be responsible for security testing?continue reading
Have a question for an expert?
Please add a title for your question
Get answers from a TechTarget expert on whatever's puzzling you.