Ideal Test Automation Approach in Agile
Many organisations are moving towards agile software delivery and agile methodologies bring their own set of challenges. Traditional test tools struggle to work in an agile environment as they were designed to work in a ‘test last’ environment whereas the agile model is more a ‘test first, test continuously’ model.
Traditional or legacy testing tools force the QA teams to wait until after the software is complete (or at least the interface is ready) before test automation can begin. These kinds of tools only really suit application testing that involves long development cycles and strict change management process otherwise they simply won’t work. In addition, the cost of the testing tools are too expensive and many organisations cannot afford to buy the licenses. So, there is a need to choose a right agile automation tool.
In Agile, the number of test increases with the story points and this indeed increases the test efforts for upcoming iterations as it involves regression testing as well. In addition, maintaining the test automation scripts are very expensive if there is no structured automation framework. How do we tackle this?
The best way is to come up with a good automation framework that establishes a complete traceability from the requirements phase to implementation phase, easy to maintain, low cost and improves the software development process. Is it possible to do this? My answer would be a big YES.
The above goals can be achieved by integrating the Behaviour Driven Development (BDD) tool, Build tool and Software testing framework for executing acceptance tests.
For example: In Java, Easyb + Maven/Ant + Selenium + JUnit In .Net, SpecFlow + NAnt + Selenium + NUnitAdvantages:
- Use of Open source tools (i.e., Zero investment on testing tools)
- Improves the Software Development process by integrating this model with continuous integration tools such as Jenkins, Hudson, Teamcity etc