This is one of the core objectives of automated [[Software testing MOC|Software testing]].
Maintenance activities performed on a codebase (e.g. adding features, refactoring, bug fixing) bring with them a few risks:
- the introduction of a defect to the system
- the time cost to the implementing engineer of making the change to the application code and associated test code (see also: [[Engineers are probably your biggest cost]])
An effective testing suite will reduce the impact of these risks. In practical terms, this means:
- Individual tests to verify the behaviour for a feature or bug fix are easy and quick to write
- There are no tests written for trivial behaviour
- There are no tests written for behaviour that's part of another service or system
- [[Exhaustive testing of a software product is not feasible]]
#TODO : expand on techniques for HOW to achieve and potentially measure this goals
## Other core objectives of automated test suites
- [[An effective automated test suite should provide confidence that the system behaves as expected]]
- [[An effective automated test suite should deliver feedback that is fast, accurate and reliable]]