I believe that one must look at the tester's role from both the day-to-day and the over-time perspectives. The day-to-day perspective should emerge from an understanding of how the testing emphasis changes over time. In the beginning of the project, the testers will be engaged primarily in creating (or fine-tuning) the automated test infrastructure. Due to the pace of Agile software development, automated testing becomes extremely important. Otherwise, the testers will not be able to test as thoroughly as they might like in each iteration, and the project will incur a significant amount of technical debt that must be addressed prior to release. (Think about large manual regression test suites that cannot be run within each iteration but which must be run before each release. This sort of manual testing is particularly difficult in an Agile setting.)
As the project gets underway, testers will work to create test plans and test cases for upcoming iterations. The goal is to have these test plans and test cases defined before the developers start work on the stories they are intended to test. That may not be entirely possible in reality, but it does help to have as many of the tests written as possible so that they provide the programmers with a clear and unambiguous definition for "done."
Over time, the emphasis shifts from infrastructure and test creation toward test execution. The tester's role shifts to automating existing test cases and performing manual exploratory testing on the evolving and maturing application. Automated tests are run regularly, ideally as part of each automated (or at least nightly) build, and they help to provide the comprehensive regression on the mature parts of the system. The testers need to be able to focus on the parts of the application that have just been implemented.
0 comments:
Post a Comment