Tuesday, June 25, 2013

Performance and Load Testing

We use software applications and we think of functional testing. But when that application's response time is very slow, then we think of performance testing.

Purpose of Performance Test:
No. 1 reason is to do performance test before deploying the application to production environment.
Most software performs good with limited users. But what happens when large amount of traffic hits a web application (in other words your software?).
Also a multi-user software doesnt make all the functions available to all its users.
It can also find realistic check of configuration between systems.
Lastly, performance tests can detect bottlenecks in the system.
Load and Performance Test is Non-Functional testing.

Topics of concern to Performance Test:
1. Resources.
2. Response time.
3. Multiple Users.

Some challenges:
1. The high scale system applications are distributed in nature.
2. The interaction between components and services is more abstract and complex.

Types of Non-Functional Tests (in this context):
1. Performance Test
2. Load Test
3. Volume Test
4. Stress Test

Such test find faults in following areas:
- Memory problems
- Performance issues
- Concurrency problems
- Excessive use of system resources
- Lack of storage space


 Lifecycle of Performance Testing means a cycle of tuning the system and doing testing.

Test Procedure: 
Define your objectives before taking any action!
1. Define Goals and specify metrics (benchmarks).
 2. Test Data
3. Reporting test results

Define benchmarks before running tests. Benchmarks are basis for selection of test techniques.
Benchmark should fir application requirement.
- Max Users.
- Max logged in users
- Avg user think time per page.
- Avg of max response time per page.
- Throughput ie No. of transactions per time unit.
- Test data based on realistic data.
- Reproducible baseline.
- Realistic test environment.

Performance requirements must be defined during specification phase.
Performance requirements should be checked for consistency and validity. SMART criteia:
- Specific.
- Measurable.
- Attainable.
- Relevant.
- Traceable.

Test data - Performance testing should be done with realistic data volumes.

Reporting test results:
- Response time on client side compared to system load.
- Throughput compared to system load.
- Faults occuring suring test.
- Utilization of processor and disk volume.
- Network utilization and network latency.

No comments:

Post a Comment