Reviews are the form of static testing. In software reviews people analyze the work product of projects such as requirements document, design document, test strategy, test plan in order to find out any defects in the documents.
Software Reviews, if done properly are the biggest and most cost effective contributor to product quality.
As software reviews provide lot of benefits to product quality it is very important that organization invests in reviews and ensure good planning, participation and follow up.
It is also very important that all the participants for review have review training in order to understand the review process and their roles in the process.
Involvement of right members in the software review is also key factor in success of any review. Review leader needs to ensure that right set of members are included in the process who will add most value in the review. He also needs to ensure that backup members are identified, in case if any of the key members is not available due to business or personal reasons.
Positive contribution from all the review members is also the key to successful reviews as it is a group activity. If there is a single negative participant he can damage the review process and you may not get the required outcome.
Review leader should handle any negative questions during the review process and try to keep everyone focused to achieve the maximum benefit possible from the review process.
Software Reviews can be of many types, some of the possible software reviews in a project are as follows:
- Requirement reviews – These are initiated after requirements are available for review.
- High level design reviews – These are initiated after high level design document is ready for review.
- Detailed design reviews – These are initiated are detailed design document is ready.
- Code reviews – These can be peer reviews once developers start writing the code.
- Test work product reviews – These start after test work products like Test Plan, Test Cases are ready.
- Test entry and exit criteria review – These are done to check if test execution can start or exit certain test level.
- Acceptance reviews – Used to obtain customer approval for system.