In software development life cycle when the product is completed by development team, it is handed over to testing team for thorough or regression testing. The QC team (testers), besides performing other testing like boundary value testing/ approach (BVT or BVA) or black box testing, performs functional testing based on customer requirements and business specifications built in the product. Main goal is to scan the product thoroughly to check mainly following two things besides others –
- the product built covers to all requirements and specifications
- the product built caters to these requirements and specifications correctly
The bugs or defects list is submitted back to the development team for minor to exhaustive overhaul of the product depending on the number and severity of bugs. After fixing of bugs and verifying at their end the development team invites QC team again for verification so that the product can be launched for the customer. This testing-fixing-verification may happen in one go or may require re-runs depending on the QC feedback. Once QC gives a final nod to development head, the product is handed over to implementation team for its launch.
Though we still keep wondering what stops the best of the breed of programmers being good testers, probably for testing purposes it is better to learn linear approach of cost estimation of bug fixing for various software projects and testers acquiring soft skills for progressive software testing approach.