Effective Test Automation
Agile software development calls for a different approach to automated testing.
In Agile projects multidisciplinary teams commit themselves to continuously deliver high quality, working software. This short cyclic delivery demands to have continuous trust in the quality of a product. Trust can only exist when having continuous insight in the status of the product. At any given moment the (side)effects of changing or adding functionality must be visible in order to retain this trust.
In this setting automated testing is the key element for providing continuous feedback. Test automation facilitates the team to confidently perform at high speed without making mistakes. Test automation, when done right, ensures unexpected behaviour is quickly detected, and it helps for test execution to keep up with the pace of the team.
Modern test automation frameworks help teams to effectively get this in place. When doing BDD (Behavioural Driven Development) or ATDD (Acceptance Test Driven Development) automated functional tests are created even before development has started. This approach allows teams to go as far as documenting the system in one go, which is often referred to as Living Documentation or Executable Specifications.
Guidelines for choosing a test automation tool
- When working in an Agile environment automation is of vital importance to keep up with the pace of the project, relying only on manual testing is not an option.
- Automation must be possible within the multidisciplinary team; no external expertise should be required to create or maintain tests.
- A test tool should be flexible, making it easy to respond to change in terms of environmental, data and technical constrains.
- Creating automated tests should be relatively simple and intuitive.
- Tests should be readable and understandable (for anybody). Documenting and formatting tests in unambiguous and ubiquitous language supports this.
- Tests should be easily accessible and interchangeable between team-members and preferably also for other stakeholders. Anyone in the team should be capable of adding, viewing and running tests.
- Test execution should be fast and reliable since fast feedback is the main objective.
Get It Done
Greenlight-it can help to more effectively setup and maintain test automation and help to improve and expand the overal usage, by:
- Improving the quality, reliability and speed of automated tests, in order to reduce runtime and simplify fault analysis.
- Improving the readability of tests and reporting capabilities, making interpretation easy and allowing tests to be used as the knowledge base of the system.
- Improving the test automation architecture, creating an infrastructure suitable for Continuous Integration, Continuous Delivery and ultimately for Continuous Deployment.
Test automation can only be successful when it is the result of a strong process and great teamwork. Besides helping to get test automation to a higher level, Greenlight-it can help to improve the feedback cycle in all other stages of a project, by:
- Improving the underlying process, enabling teams to create effective test automation.
- Improving communication, so that requirements are understood and validated early, removing bugs before anything is even build.
- Read more in the sections Accelerate Design and Accelerate Teamwork.