Building in quality
In the traditional software development model, quality is a lengthy and arduous process that spans the requirements, design, development, and testing phases. Identified functional and nonfunctional requirements translate into system components and features through the architecture and design activities. The developers create test scenarios and test scripts and identify acceptance criteria that their code must eventually pass. Once the code has been developed, the developers or testers run the tests to see if the code passes. If not, the code is sent back to the developers to debug and fix. Since testing is the last phase of overall development activity before deployment, it's very difficult to find the source of bugs and defects, leading to delays and extra costs. By that time, the software code is too big and too complex to efficiently debug.
Testing incrementally
Under Scrum and Agile processes, the requirements, analysis, design, coding, and testing...