Testing is not a phase. Software developers should not simply throw software over the wall to test engineers when the developers have finished coding. A coordinated program of peer reviews and testing not only supplements a good software development process, it supports it. A good testing life cycle begins during the requirements elucidation phase of software development, and concludes when the product is ready to install or ship following a successful...