I was recently posed this question, here’s what I think.

In the DSDM Agile approach the Testers role is specifically defined and in most projects I would expect to see a testing specialist performing that role as they add a lot of specific skills and experience that benefit the project.

The Tester is involved from the beginning of the project helping to both shape and fully understand requirements. The solution evolves over a number of short timboxes (or sprints) with each timebox having a specific set of functional or non-functional requirements to complete. During the early stages of the timebox the Tester will start to define the likely test scenarios and cases; these will be refined with the solution. Ideally these will be built in such a way that they can be repeated or modified easily for future timeboxes. The Tester is also likely to work closely with the end user to support them in their Acceptance Testing.

At the end of the time box (subject to the objectives set at the beginning) is likely to be a partial, but working solution. The solution evolves for future timeboxes, as does the testing which extends so that it tests the newly developed solution and the previous solution. I should also add that developers are expected to develop and extend their own automated unit testing to provide confidence in the level of quality in the solution that the Tester is executing. The result is a very high quality solution that has been tested much more thoroughly and repeatedly than during a typical waterfall approach from Developers, Testers and End Users.

After a number of timeboxes the solution may have evolved to still be a partial solution but one that is sufficiently complete & accepted by end users to deploy in an operational environment. This enables the business to start to gain early business value & return on investment.

In essence I believe Agile projects need good Software Testers. To succeed Software Testers need to have a good understanding about how agile is different to waterfall and will need a more flexible, evolving approach to developing and executing test cases. I have seen many Software Testers adapt fairly easily to this approach and gain huge benefits from being able to contibute to the shaping of the solution being developed. This empowered, collaborative approach leads to much greater job satisfaction and enthusiasm from the whole project team.