Software testing is an integral and critical phase of any software project that takes up almost 40% of a software development life cycle, ideally. Developers and testers must ensure that new products or product enhancements meet functional and performance requirements, that those products are reliable and able to operate consistently under peak load. The risk of releasing a product that is not yet ready are greater now than ever before because of the change in expectations and demands of end users.
According to the Standish Group's (an international research advisory firm) 2003 research report on Project Failure and Success, nearly three out of four software projects in the US are either delivered late, overbudget or are cancelled before being completed. Project success rates are just 34% of all projects while failures have declined to 15%. Challenged projects account for the remaining 51%.