“Why we Want to Automate Tests and What holds us back”
- Test automation is a core agile practice. Agile projects depend on automation.
- Manual tests take too long and are error prone.
- Automation regression tests provide a safety net. They give feedback early & often.
- Automated builds, deployment, version control and monitoring also go a long way toward mitigating risk and making your development process more consistent.
“Build Once, Deploy to Many” – is a tester’s dream!
Projects succeed when good people are free to do their best work. Automating tests appropriately makes that happen!
If we become complacent about our testing challenges and depend solely on automated tests to find our issues, and then just fix them enough for the test to pass – we do ourselves a disservice.
However, if we use the tests to identify problem areas and fix them the right way or refactor as needed, then we are using the safety net of automation in the right way.
When tests that illustrate examples of desired behavior are Automated, they become ‘living’ documentation of how the system actually works.
Barriers to Automate –
- Programmer’s attitude – Why automate at all
- The Hump of Pain – the initial learning curve
- Initial Investment
- Fear – Non-programming testers fear they have nothing to contribute
- Legacy code
- Old habits, team culture
- Without automated regression tests, manual regression testing will continue to grow in scope and eventually may simply be ignored.
- Teams with automated tests and build processes have a more stable velocity.
- Good test design practices produce simple, well-designed, continually refactored, maintainable tests.
- Team culture & history may make it harder for programmers to prioritize automation of business-facing tests than coding new features. Using Agile principles & values helps the whole team overcome barriers to test automation.