Quality Assurance
Notes on what testing is, who does it, and when it starts and stops.
What is testing?
Testing is the process of evaluating a system or its component(s) with the intent to find whether it satisfies the specified requirements or not. In simple words, testing is executing a system in order to identify any gaps, errors, or missing requirements in contrary to the actual requirements.
Who does testing?
It depends on the process and the associated stakeholders of the project(s). In the IT industry, large companies have a team with responsibilities to evaluate the developed software in the context of the given requirements. Developers also conduct testing, which is called Unit Testing. In most cases the following professionals are involved: Software Tester, Software Developer, Project Lead/Manager, End User.
When to start testing?
Testing can start from the Requirements Gathering phase and continue until deployment. Testing takes different forms at every phase of the SDLC: analysis and verification of requirements during gathering, design review in the design phase, and developer-side testing on code completion.
When to stop testing?
Testing is a never-ending process and no one can claim that software is 100% tested. Stopping criteria include: testing deadlines, completion of test case execution, completion of functional and code coverage to a certain point, bug rate falling below a threshold with no high-priority bugs, and management decision.