Promises make debt, and debt makes promises.
— Dutch proverb
In traditional projects, quality is assessed late in the software delivery cycle. The idea is to focus on defining requirements, and both code and tests can be separately developed based on those requirements. The problem is that team members implementing code and test artifacts interpret requirements documents, no matter how well they are written, differently.
Executing the tests after the code has been written makes quality an afterthought. Quality is validated only after the code is feature complete, meaning that all features have ...