Performance testing is the determination of speed, responsiveness and stability of computers. It involves quantitative tests in production.
Types Of Performance Testing
Stress Testing has two sub-categories called soak and spike testing. It places a system under higher-than-expected traffic loads. Therefore allowing developers to see how well it works above its expected capacity limits. In addition, system strain can lead to slow data exchanges, memory shortages, data corruption and security issues.
- Soak Testing – is also called endurance testing. It simulates a steady increase of end users over time to test systems’ long-term sustainability.
- Spike Testing – this subset of stress testing assesses the performance of a system under a sudden and significant increase of simulated end users. Thus, spike tests help determine if a system can handle an abrupt, drastic workload increase over a short period of time, repeatedly.
Load testing enables developers to understand the behavior of a system under a specific load value. In this testing process, an organization primarily simulates the expected number of concurrent users and transactions over a duration of time to verify expected response times and locate bottlenecks. Therefore, load tests help developers determine how many users an application or system can handle before that app or system goes live.
Performance Testing Metrics
- Throughput – refer to how many units of information a system processes over a specified time;
- Memory – is the working storage space available to a processor or workload;
- Response time (or latency) – refers to the amount of time that elapses between a user-entered request and the start of a system’s response to that request;
- Bandwidth – is the volume of data per second that can move between workloads, usually across a network;
- CPU interrupts per second – refer to the number of hardware interrupts a process receives per second.
Resources For Performance Testing
- Effective Performance Engineering (by Todd DeCapua and Shane Evans). This free e-book explains why your success depends on adopting a cross-discipline, intra-business mindset. It will help you build a performance-focused culture throughout your organization.
- The Every Computer Performance Book (by Bob Wescot). This is a short, witty book on how to solve and avoid application and/or computer performance problems.
- PerfBytes is a must-listen podcast focusing on all things performance testing. Señor Performo’s blog is a fun site for beginners, hence it explains basic concepts with silly examples.
- Performance Testing Guidance for Web Applications. This free e-guide shows you an end-to-end approach for implementing performance testing.
- Designing for Performance (by Lara Callender Hogan. This book helps you approach projects with page speed in mind. In addition, t shows you how to test and benchmark the most critical design choices.
- Practical Scalability Analysis with the Universal Scalability Law (by Baron Schwartz)). It helps you understand the connections between scalability and other disciplines, for instance, performance optimization and the study of queuing.
Performance testing is one important type of testing performed in software. It is responsible for testing if an application functions or performs properly, hence, behaving as it should.
Indeed, because of the importance of performance testing, testers must be capable of performing such test. Therefore, it is imperative that they educate themselves and gather knowledge and more information from different resources. Thus, adding to their expertise on the field. This will then result in the proper implementation of performance testing, resulting in quality software products.