Defect Leakage is natural. It’s common. If you build a software, bugs will be there. Similarly even if you Test a software, you cannot prove their absence. But we can do our best to eliminate maximum of them. Typically in most of the projects even if you complete functional testing (system testing) without any time & cost constraints, still UAT team (Business) manages to catch some more bugs. Any idea why? There has to be something missing in the system test coverage. What is it?
Requirements analysis is an important aspect of software testing. On many traditional projects, this was devoted solely to Business Analysts, who worked closely with their clients to build out a framework onto which development could be executed. With an effective agile project, Quality Assurance engineers should also be part of this phase who can provide significant value. The software code, doesn’t matter how well it’s written, can’t do anything if there are ambiguities in requirements. It’s better to catch the requirement ambiguities and fix them in early development life cycle. It’s a fairly well established theory that the later in the software development life-cycle an issue is discovered, the more expensive it is to fix, and that most often, this cost growth curve is exponential rather than linear. So it’s important to have requirement analysis and catch these incorrect requirements before design specifications.