The tools selected for test automation is always a hot topic for Information Technology staff, but for Recurse it is a secondary consideration. The primary consideration is the methodology changes required to your Agile process, because these are what determine the tool requirements and the tool selection process becomes straight forward. Choosing the wrong tool that does not support your requirements can severly weigh down your efforts and significantly increase cost, especially related to ongoing maintenance.
These tool selection requirements can be sumamrised as follows:
Integration into Agile poses unique challenges due to the short timeframe of each iteration. 100′s of test scripts may be required in a 4 week interation, therefore it is key that the test acceptance criteria is captured as a part of the Story process and refined during the iteration. Coding must start BEFORE the Stories are completely defined and refined during the Iteration inorder that they are complete and executable when the application coding is completed, with programmers getting immediate feedback. Maintenance of previously written test cases must also be complete in the Iteration by the same Automation programmer, therefore the speed by which a programmer can both maintain existing scripts and create new ones becomes a key tool selection requirement.
Over the last two decades functional programming languages have been replaced with Object Oriented languages, Data Models have been replaced with Object Models, high software maintenance overheads have been reduce with Polymorphism and Inheritance, and “backyard” programming has been replaced with “design, build and test” methodologies.
Automated Testing IS software development and there are two basic principles of any software development:
- Use an Object Oriented design and build principles (as distinct to choosing a functional language); and
- Integrate into your development methodology (as distinct to outsourcing).
The tool is selection is based on how well it adheres to the above.