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]]