Performance Testing in an Agile Project

With the current prevalence of Agile techniques in software projects, I thought it would be useful to take a look at how the industry is providing Performance Testing to these projects.  There are three conceptual models commonly described to define the ways Performance Testing is provided to Agile projects, “On Demand”, “On Retainer”, and “Full Imersion”.

On Demand –  This model is pretty much the same as what happens with non-agile projects. The project calls upon Performance Testers from outside the project when they require them. This usually means that Performance Testing occurs at the end of development.

With this model there is no attempt to incorporate Performance Testing into the Agile process, and so from a purely Performance perspective the potential gains from the use of Agile are not being realized.

On Retainer – A Performance Testing specialist is attached to the project team. This means that testing occurs more often, usually for each sprint, as well as for release candidates. Performance requirements may be expressed as user stories and used to drive the development.

With this model the advantages of the Agile process are starting to be used for Performance. The Performance specialist is involved throughout the development and there is a much greater emphasis on Performance which contributes to the Performance outcome, but it is still treated as a separate task done by the Performance specialist.

Full Immersion – This model involves the whole project team in the Performance of the application, with the Performance specialist acting as the coordinator. Performance is included in the release planning, Performance user stories are written, developers do code profiling and run Performance Unit tests, each build is regression tested, and each release is fully Performance tested.

With this model Performance is fully incorporated into the Agile process taking full advantage of the potential of Agile to maximise the Performance of the application.

This is a summary of the information I found. There are other things such as communication, and the use of automation that are also important to the getting the most out of the Agile process. I encourage you to read the reference material I have listed below for full details.

Further Reading –

  • Agile Performance Testing process, AgileLoad whitepaper, 2012. – Link
  • Barber, S. Performance Testing in the Agile Enterprise, STP, 2011. – Link
  • Improving the Value of Your Agile Performance Testing (Part 1), Capacitas’s blog, 2013. – Link
  • Dobson, J. Agile Performance Testing, Agile, 2007 – Link
  • Alex Podelko on Agile Performance Testing – Link
  • Kua P. Top Ten Secret Weapons For Agile Performance Testing, 2009. – Link
  • CMG Paper – Link
  • Chapter 6 – Managing an Agile Performance Test Cycle – Link

Michael Foster (LinkedIn) has 16 years experience in software testing, the last 11 as a performance testing specialist. His career has spanned a wide range of systems in different industry sectors. Michael is keen to raise awareness of Software Performance Engineering in the industry. Michael is HP LoadRunner Certified, NeoLoad and Rational Performance Tester certified. He has also certified to conduct HP LoadRunner, NeoLoad and Rational Performance Tester  training.