In many organizations, automated testing lags behind and becomes a bottleneck for successful continuous delivery. Either tests do not provide enough confidence or companies take a very traditional approach, resulting in releases either introducing substantial risks or becoming costly. These situations often seem hard to fix and “Fix Testing” becomes a painful epic somewhere in your backlog. This article helps you challenge your automated testing and to improve upon it in a more continuous fashion. Test automation is one of the practices that helps teams gain confidence earlier in the development process. It reduces the cost of testing and supports keeping long-term, high-development velocities. Test automation is not a project or a one-off—it is part of the development lifecycle and should be seen as its own system that needs to evolve over time as the requirements and system under test change and mature.
PrerequisitesTo start improving, the team must have a basis and agreement. It is okay to start out simple and not overthink, but these two things are key:
- Have tests – having some tests is better than no tests, as it provides a feedback mechanism for improvement
- Definition of Done – a team needs to agree that executing these tests is part of delivering changes and when changing code, new tests should be added. This results in a steadily-growing set of tests becoming part of the development cycle. If this is not commonly accepted as part of ‘Done’, you might find automated test cases become a thing at the bottom of your backlog that becomes hard to plan or get budget for.
5 ways to improveWhen we have the basis for our automated testing, we can continuously challenge ourselves to improve. As the number of tests grows, or other parameters change, you may feel your current approach does not scale well enough anymore (e.g., it gets slow, expensive, or hard to understand). These 5 ways should help you challenge your current testing and identify opportunities to secure your team’s long-term throughput.
- Execute Tests Earlier
- Increase Coverage
- Improve Testability
- Lower-level testing
- Write tests earlier
ConclusionTest automation is key in keeping a long-term, high-development velocity. However, it is not something you just implement; it should become a core part of the development lifecycle and prevent large testing epics in your backlog. In your journey you will have the opportunities to improve upon:
- Executing tests earlier to get faster feedback
- Increase coverage to all relevant use cases
- Improve testability to make both the tests and the system more maintainable
- Test at a lower level for testing that scales better
- Write tests earlier to really make them part of your user story