Performance Testing

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:

Morning

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

Afternoon

A repeat of the mornings work activities with possibly extra work in finalizing specific tasks and delivering them to other persons in the organization.

Evening

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. 

People Involved

The following people will be involved in any performance test related activities:

End-users: either by stating requirements on performance or by being involved in clarifying and fixing performance issues
Design: design based on customer expectations, including expected growth in the number of users or intensity of usage
Develop: 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
Operations: maintaining and improving the delivered solution

Artifacts

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
Reporting Task reporting
Input/requirements for later activities

Success Factors

SMART requirements: Requirements include benchmarks, best practices and end-user expectations
Plan/Design/Execute/Evaluate: 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