Loading

Inspection Roles, Participants and Process


Errors and mistakes are common occurrences in the software development process. Throughout the Software Development Life Cycle (SDLC), developers and testers come across innumerable errors, defects, bugs and other discrepancies, which if left undetected and unresolved can harm the functionality and performance of the software. Moreover, any complexities found in the code can become a greater hurdle, as it prevents developers from getting software’s intended results. Therefore, to overcome these discrepancies and errors, both software practitioners and researchers need to improve the reputation of the software. The best way to do this is through inspection, which is the only way to improve the quality as well as performance of a software. This method of software inspection can be extremely effective, however its success depends on having a complete and systematic procedure for conducting the inspection. Hence, here is an elaborated discussion on Software Inspection and its process, role and participants, which will help you get the best software inspection results.

Software Inspection:

Software inspection refers to peer review of a product, in which the focus is on identifying all its defects and errors. Named after Michael Fagan, the creator of a popular software inspection process, Software Inspection is also known as ‘Fagan inspection’. With its assistance one can find defects and deficiencies in a developed software product and ensure that it is fulfilling client’s requirements. Software inspections can be applied in every software development phase and is commonly used to inspect software requirements specification and test plans. Due to the fact that inspections can be applied early in the development process, quality problems can be found and corrected directly where they have been introduced. Moreover, inspections shorten delivery period by reducing the time spent in the integration and system test/debug phases.

In an inspection, a work product is selected for review by a team of experts, who are gathered for an inspection meeting to review the work product. Furthermore, a moderator is chosen to moderate the meeting, where inspectors prepare for the meeting by reading the work product and noting each defect. In short, in an inspection, a defect is any part of the work product that keeps an inspector from approving it.

Inspection Participants and Roles:

During software inspection, the number of participants range from a minimum of three to a maximum of six. The minimum number of participants is derived from the required roles that are assigned to each individual. Having more than six participants does not increase the number of defects uncovered, but it does increases the cost of effectiveness. In short, having more than six participants during inspection increases the cost per defect discovered to unacceptable levels. The participants in software inspection have a set role, however the same person can take more than one role, so the team size may vary from one inspection to another. The various roles of these participants are:

  1. Author: The role of Author is appointed to the programmer or designer who is responsible for producing the program or document that is being inspected. Moreover, they are responsible for fixing defects discovered during the inspection process. They provide the rest of the reference material that makes up the inspection package, which is distributed to each inspector. The author assists the moderator in planning the inspection and also acts as an inspector during the preparation phase.
  2. Moderator: The moderator is the leader of the inspection and s/he is responsible for planning the inspection as well as coordinating it. Furthermore, the moderator ensures that the item to be inspected has met the entry criteria for inspection readiness. Once these criteria are met, the moderator plans the inspection, which involves selecting the other participants, arranging for meeting rooms, ensuring the inspection data package is prepared and distributed, and making sure that there is sufficient time for participant preparation.
  3. Reader: The role of a reader is a simple one, but not insignificant. They present the code or document at an inspection meeting, where they read the document one by one. It is after the documents are read thoroughly that the inspector points out the defects found during the inspection. In short, the reader is the participant responsible for leading the inspection team through the work product during the Inspection Meeting. The reader is also responsible for determining the most logical way to present the work product during the meeting.
  4. Recorder/Scribe: The Recorder or Scribe is participant who is responsible for documenting the defects found during the inspection process. Their main aim is to provide a log of the potential defects during the Inspection Meeting. This is ought to be done as rapidly as possible, ensuring the essence of each comment is recorded without logging them precisely.
  5. Inspector: During the process of software inspection, inspectors are allotted the task of examining the work product to identify possible defects. Inspectors are responsible for improvements related to inspection process, checklist updating, standards development, and more. Additionally, an inspector may record any potential defect discovered, even if it is outside their area of responsibility. However, inspectors are not involved in all inspections.

The Process of Software Inspection:

The quality of a software product depends largely on the quality of the process that is used to develop it. Software inspection is a proven method for improving product quality and it provides a very cost effective way for organisations to improve their development processes. The process of software inspection is a formal one and is carried out by a team of at least four to five people. Each of these individuals play an important role in the whole process and ensure the quality and effectiveness of the product is prodigious. Hence the process of software inspection is as follows:

  1. Planning: In this phase of software inspection process the inspection is planned by the moderator. The moderator selects the inspection team, obtains material to be inspected from the author, and distributes them and any other relevant documents to the inspection team in advance.
  2. Overview Meeting: This meeting gives the author an opportunity to describe the important features of the product to the inspection team. It can be omitted if this information is already known to the other participants
  3. Preparation: During the preparation stage of software inspection, each participant is responsible for examining the work artefacts prior to the actual inspection meeting. Here they note any major or minor defect found or issues to be raised. Moreover, the majority of the errors found during software inspections are identified during this stage. Additionally, the product is compared against any predecessor (specification) documents to assess completeness and correctness.
  4. Inspection Meeting: During this session, the team convenes and is led through the work product by the moderator and reader. If the moderator determines at the beginning of the meeting that insufficient time has been devoted to preparation by the participants, the meeting should be rescheduled. During the discussion, all inspectors can report defects or raise other issues, which are documented on a form by the recorder.
  5. Rework: The author is responsible for resolving all issues raised during the inspection. However, this does not include making every change that was suggested, but an explicit decision is made about how each and every issue or defect will be dealt by the whole team.
  6. Follow-up: This is the final step of the process, where the moderator follow ups with the author to verify that the necessary rework and changes have been performed in the software. If a significant amount of the work product was modified then an additional inspection is required to be conducted. Once this step is completed, the product must pass in order for the inspection to be completed.

Benefits of Software Inspection:

Software inspection is a very crucial phase of software development cycle, which assists testers in detecting all the discrepancies in the software. By performing inspection on the developing software, testers and developers can ensure its quality and functionality. The main benefit of software inspection is that it can be applied early in the software development process. Moreover, it will help testers in validating whether the software is developed as per the client’s demand or not. Other benefits of software inspection are:

  • Finds defects or faults.
  • Improves quality, such as coding style, best practices, and more.
  • Assists with debugging.
  • Educates and trains developers.
  • Communication is improved.
  • Collects data for metrics.

Conclusion:

Inspecting a software for errors and defects is the most sensible way of ensuring a products quality and productiveness. Inspection not only validates software’s effectiveness, but also saves ample time, effort, and cost that would have been spent in resolving issues and doing rework. With the assistance of this formal process, software developers can develop a software, while making sure that each and every phase of development is inspected properly and that no defects or discrepancies are left undetected by the testers and developers. From code base errors to defects found before the product release, all discrepancies can be monitored and resolved through proper inspection. The biggest advantage of inspection is that, it can be applied during the early stages of Software Development Life Cycle (SDLC), which allows developers to detect defects as soon as possible. All these factors and advantages have made peer review a valuable part of software engineering practice and has made inspection a crucial stage of Software Development Life Cycle (SDLC).