Introduction to Software Inspection
Software inspection involves people examining the source representation with the aim of discovering anomalies and defects. An inspection does not require execution of. A system so may be used before the implementation process. There may be applied to any representation of the system requirements, design, test data, configuration data, etc. They have been shown to be an effective technique for discovering program error. The software inception is conducted only when the author, i.e. developer, has made sure that the code is ready for inspection. He decides it by performing some preliminary desk checking and walkthrough on the code. After passing through these review methods, the code is then sent for group inception.
Process of Software Inspection
Software inspection involves 6 steps – Planning, Overview, Individual Preparation, Inspection Meeting, Rework and Follow-up.
Step 1: Planning
- Select the group review team – 3 to 5 people group is best.
- Identify the moderator – Has the main responsibility for the inspection.
- Prepare the package for distribution – Work product for review plus supporting docs.
- The package should be complete for review.
Step 2: Overview
- Brief meeting – Deliver package, explain the purpose of the review, introduction, etc.
- All team members then individually review the work product. Lists the issues they find in the self-preparation log, checklist and guidelines are used.
- Ideally should be done in one sitting, and issues are recorded in the log.
Step 3: Individual Preparation
- Each reviewer studies the project individually.
- Notes down the issues that have come across while studying the project.
- Decides how to put up these issues and makes a note of it.
Step 4: Inspection Meeting
- Reviewer goes over the product line by line. At any line, all issues are raised.
- Discussion follows to identify if a defect.
- Decisions are recorded at the end of the inspection meeting.
- Scribe present the list of defects. If few defects, the work product is accepted; else, it might be asked for another review.
- Group does not propose solutions through some suggestions that may be recorded.
- A summary of the inspection is prepared, which is useful for evaluating effectiveness.
Step 5 and Step 6: Rework and Follow-up
- Defects bin the defect list are fixed later by the author. These modifications are made to repair the discovered errors. Once fixed, the author gets it OKed by the moderator or goes for another review.
- A reinspection may or may not be required.
- Once all defects are satisfactorily addressed, the review is completed, and collected data is submitted.
Various roles involved in an inspection are as follows:
- Author or owner: The author is a programmer or designer who is responsible for producing the program or documents. Responsible for fixing defects discovered during the inspection process.
- Inspector: Inspector provides review comments for the code. Finds error, omissions, and inconsistencies bin the program. May also identify the broader issues that are outside the scope of the inspection team.
- Moderator or chairman: Moderator formally run the inspection according to process. Manages the process and facilitates the inspection. Also reports process results to the chief moderator.
- Scribe: Scribe notes the inspection meeting results and circulates them to the inspection team after the meeting.
- Reader: The reader presents the code or document at an inspection meeting.
- Chief moderator: Chief moderator is responsible for inspection process improvement, checklist updating, standard development, etc.
Advantages and Disadvantages of Software Inspection
Given below are the advantages and disadvantages mentioned:
- The goal of this method is to detect all faults, violation and other side effects.
- Authors and other reviewers do complete preparation before conducting an inspection.
- A group of people are involved in the inspection procedure; multiple diverse views are enlisted.
- Every person in the inspection team is assigned a specific role.
- The reader in the inspection reads out the document sequentially in a structured manner so that all the points and all the code is inspected thoroughly.
- Logistics and scheduling can become an issue since multiple people are involved.
- Time-consuming as it needs preparation as well as formal meetings.
- It is not always possible to go through every line of code with several parameters and their combination to ensure the correctness of the logic, side effects and appropriate error handling.
Some programming errors which can be checked during software inspection are as follows:
- Use of uninitialized variables.
- Non terminating loops.
- Jumps into loops.
- Incompatible assignments.
- Array indices out of bounds.
- Mismatches between actual and formal parameters in the procedure call.
- Use of incorrect logical operators or incorrect precedence among operators.
- Improper storage allocation and deallocation.
- Improper modification of loops.
- Comparison of equality of floating-point values, etc.
This is a guide to Software Inspection. Here we discuss the introduction, process of software inspection, roles, advantages, disadvantages, error list. You may also have a look at the following articles to learn more –