For every project, we must decide what the entry & exit criteria should be. Entry criteria from a QA perspective establishes some pre-conditions that need to happen before the team enters the testing cycle. These include unit testing the code by the developers, availability of stable & working test environment, source code to be checked in the proper software configuration management tool, use cases, design & test cases must be signed off by stakeholders. While it might be easier to establish entry criteria, IMHO the biggest challenge is to meet the conditions set for the exit criteria. Let's look what are they and how they can be leveraged to make decisions from a quality perspective.
Different teams define different criteria depending on the nature of the release. Here are some common ones to consider for exit criteria:
- Test case execution must be 100% complete. The higher the test coverage, the more knowledge we have of errors & quality of the system.
- Release cannot be shipped with any outstanding high business priority defects and/or "x %" of medium priority defects. Technically speaking, a system should not be released with high priority defects. However, depending on availability of time and/or resources it is possible to downgrade a defect and address it in a future release. The outstanding defect must also have an alternative workaround otherwise it must be fixed.
- Performance of the system must not slow down with the introduction of new features.
- Support the defined list of platforms and/or browser
- Execution & completion of Standards testing to meet Section 508 guidelines.
- Code freeze must occur "x" number of days before GA date AND there should be NO defects introduced during the time the system goes through baking period. Introducing any fixes in the eleventh hour can increase the risk of regression, and it becomes more costly to address them at a later date in the form of emergency fix.
- User acceptance testing is completed. Getting the stakeholders of the system to run through new features & signing off on the release is a very critical step, so as to satisfy the exit criteria.
What we release for general availability to the public is a collective team effort, and therefore abiding to exit criteria is team decision that we all must adhere to in order to meet high quality standards & customer satisfaction while keeping the project under budget.