When using Agile development methodologies, rapid iterations typically leave less time for testing, so automated
testing tools take on a lot more importance. Agile methodologies also emphasize an iterative approach to arriving at precise requirements and design. Consequently, functionality and user interface designs may change rapidly. These two factors not only make automated testing tools absolutely necessary, but also require some very special capabilities that non-Agile automated test tools need not have. Here are six tips for selecting automated test tools for Agile development:
1. Ensure support for evolving requirements
Unlike non-Agile methodologies, requirements themselves may be subject to change in Agile iterations. Automated test tools normally expect that requirements and designs are all frozen so that automated tests can be prepared for blackbox testing with specific inputs and expected outputs. When requirements themselves change, automated test tools need to support test scripts at a requirements level rather than at an individual input-output combination. Stories provide a convenient unit for testing at a requirements level. If some requirements are removed and other new ones added, automated test tools need to have the capability of dealing with automated tests at the individual requirement or story level.
2. Support evolving design
An evolving design between two Agile iterations may completely change the nature of traditional automated test tools. A single dialog box in one iteration may be split into two related dialog boxes in the next. Automated test tools need to have support for reconfiguring tests designed for the first iteration into the ones needed for the second iteration rapidly, preferably automatically, or at least in a guided advisory mode. They should be capable of automatically flagging the first test as no longer valid and suggesting new tests to the script developer as much as possible.
3. Allow for rapid test script development
Traditional automated testing tools are usually targeted for use at the end of a single, defined, lengthy coding phase in waterfall/SDLC development methodologies. So you have time to develop automated test scripts before they are used. However, in Agile methodologies, the time between iterations is short and time available for developing automated test scripts is usually short. So you need support for rapid development of test scripts in automated test tools for Agile development.
4. Consider modification speed of test scripts
How quickly can you reconfigure automated test scripts from one iteration to the next? This becomes critical since Agile methodologies offer less time between iterations for reconfiguring automated test scripts as compared to non-Agile ones. There could be a lag between iterations and when automated tests for that iteration are run. Automated tests for Iteration 2 may be run when Iteration 4 is ready, but that may defeat the whole purpose of iterations. The speed of reconfiguration of automated test scripts between iterations is of critical importance in Agile development.
5. Look for tools that support testing scenarios rather than specific inputs
Scenarios are more akin to use cases than requirements. Support for automated testing scenarios may be much more useful when using Agile development methodologies rather than support for specified inputs and expected outputs as in traditional automated testing tools. This is because of both the potential for rapid change in designs between iterations as well as the time available for detailed scripting of automated tests between iterations. Many more automated tests for scenarios become reusable between iterations, so re-scripting between iterations becomes easier.
6. Include script versioning capabilities
Script versioning capabilities are important in automated test tools for Agile development. Script developers may need to regress to an older iteration because stakeholders change their mind about a requirement or a design and decide to go back to a previous iteration. Script versioning capabilities may also come in handy to go back and reuse with some modifications, or some of the older scripts if they are similar to new features being developed.
Agile software development poses evolving requirements and designs in successive iterations. Script development time between iterations in Agile development is short compared to other methodologies. Automated test tools become even more necessary, and they need to have many new and critical features to be useful when using Agile methodologies. Raising your awareness of these features helps you make the right choices to maximize the benefits of these tools.
About the author: Nari Kannan is currently the Chief Delivery Officer of V-Soft Consulting, Inc., a Louisville, Kentucky-based software consulting firm. Nari has 20 years of experience in information technology and started out as a senior software engineer at Digital Equipment Corp. He has since served variously as vice president of engineering or CTO of six Silicon Valley startup companies, working in the areas of business process improvement, IT consulting, automotive claims processing, human resources and logistics applications. He can be reached at firstname.lastname@example.org.