What is performance testing?
Performance testing is the test that measures the speed in which the system under test completes processing tasks.
People often use the statement “No Risk, No Test”. For the performance of IT systems, the “No Risk” situation simply doesn’t exist anymore. Performance optimization is critical when the user-experience in even the most trivial system can be impacted by bad performance. While most people will happily minimize their interaction with IT systems to a minimum the following “typical” working day will be familiar to a lot of people:
Checking traffic reports or public transport time tables prior to leaving the home
Checking work or personal e-mail and social media on the way to work or school (only when traveling via public transport of course)
Logging onto the network at work or school
Multiple activities involving either centralized applications or communicating with colleagues over the network
A repeat of the mornings work activities with possibly extra work in finalizing specific tasks and delivering them to other persons in the organization.
Looking for information on anything from TV schedules to possible restaurant of movie choices for going out.
Now first imagine performance delays in one or more of the actions described, as an end-user you might start looking for alternative services. As more technology is integrating in all aspects of our professional and personal life (i.e., cloud-based computing, mobile solutions and the Internet of Things) performance aspects of those services become even more important.
The following people will be involved in any performance test related activities:
- either by stating requirements on performance or by being involved in clarifying and fixing performance issues
- design based on customer expectations, including expected growth in the number of users or intensity of usage
- create systems using best practices suitable for the type of application, expected usage and available infrastructure
- Test & QA:
- support all other participants in defining and verifying performance goals
- maintaining and improving the delivered solution
Performance testing is a part of the development cycle through a number of test varieties or supporting activities. All those activities share a planning, execution and reporting phase with the following type of artifacts being delivered:
|Planning||Performance test planning|
|Execution||Analysis of design, product or requirements|
Input/requirements for later activities
- SMART requirements:
- Requirements include benchmarks, best practices and end-user expectations.
- Maintain focus on specified business scenarios until all possible bottlenecks in performance are identified and if possible resolved.
- Technical skills:
- Involve all supporting roles in planning, execution and evaluation. The performance tester can’t have in-depth knowledge of all systems and infrastructure involved.
- Infrastructure availability:
- A production-like environment is ideal but if that’s not achievable know where the limitations of your test environment are and how they may affect your test results.