Performance-Testing

Thursday, May 12, 2011

I mentioned recently I would say more about Agile performance testing, including phasing approaches.

Traditional approaches often leave testing until a fairly late stage in the application development lifecycle. The Acutest approach to testing services involves testing early in the lifecycle, and that means we often have to test component parts of a system in isolation, before everything is complete.

Sometimes this can be as simple as choosing a small number of business processes and running a test cycle geared around those. We expect to concentrate on finding application bottlenecks such as coding/design issues in the early stages. The majority of the tests would be ramp tests designed to find bottlenecks by intentionally looking for performance limits in specific areas of interest. This works best when we can combine this with our unique risk-based approach and test the most likely areas of failure - especially those most critical to users. Sometimes that can be a challenge as developers will have a tendency to release the easy bits first !

One thing I always recommend is running a combined load test as early as possible, even if not all parts of the system are stable enough to test and have to be excluded, or throughput requirements are still being agreed. You always learn something - either about the system under test, the test environment, or the test tool. Typically we would spend 20% of time in the first cycle on this, building up to 80% in later cycles. In later cycles we would however leave some time for new ramp tests to be executed, and re-runs of failed tests from earlier cycles.

Generally working co-operatively within a project or programme brings best results. It's recognised by the leading vendors of performance testing tools that a team approach is needed to successfully deliver performance tests on time. Our experience is that benefits can come from including software developers as well. Agile performance testing is possible, with short cycles, tight configuration management and good communication. Recording and customising scripts in short timescales is a challenge but can be achieved. This approach also builds performance awareness into development teams, which brings benefits down the line.

So there are some thoughts on phasing of performance tests. Let me know if these subjects are of interest.