A New paradigm for Software Inspection



Replacement of the meeting component can be viewed as a relatively straightforward process, and can be achieved by introducing a second round of individual review. (The new basic process structure is in fact more generic than this. It now becomes- conduct n phases of individual inspection, where n is 1,2,3… and decisions about the value of n are based upon results from the current inspection process and the business context of the inspection activity.) This project believes that this new basic structure can be enhanced to provide a new process, which is demonstrably superior to the traditional. In terms of analysing the current inspection, enhancement is by either passive or active techniques.

Passive techniques are designed to add diversity into the procedure and hence help to limit overlaps between the different individual inspection phases. Some examples of passive techniques are:

·        Changing personnel

·        Changing defect detection support, e.g. first phase ad hoc, second phase checklists.

·        Changing role or viewpoint in the inspection, Basili et al. have investigated assigning roles to inspectors, e.g. customer, testing expert. These roles could be changed between phases.

·        The exchange of current information, e.g. swapping initial defect lists, comprehension notes, etc.

Of greater interest is the application of active techniques. Here the process evolves based upon analysis of the current inspection after each phase. Obviously analysing the current inspection requires additional effort, and hence in order to minimise this additional work, it is proposed to use a computer-support system to provide the moderator with ‘decision support’ facilities. This project plans to use the ASSIST system, constructed by the author, as the basis of this decision support facility. Details about the current version of ASSIST can be found at: http://www.cs.strath.ac.uk/~efocs/home/assist.html. The introduction of a computer-support mechanism can also provide additional benefits over traditional inspection approaches.

To illustrate the new process, consider an inspection process at the end of the individual inspection phase. At this point all the inspectors present, via the support system, their defect lists to the moderator. The moderator now wants to make a decision about the next phase based upon the data from the current phase, considered within the business context of the inspection.

Initially the moderator would collate the individual lists, via the support system. The feasibility of this approach has recently been demonstrated. The performance of the current collation mechanism can be improved by:

·        Incorporating spelling, grammar and thesaurus facilities.

·        Defining common technical terms for individual inspector’s use when describing a defect.

·        Using a defect classification schema. Recent work by El Emam and Wieczorck  has shown that Orthogonal defect classification  can be used to reliably describe defects, found during an inspection process, in an industrial setting.

The main limitation of this collation process is the inability to remove false positives. If, for historical reasons, we believe that the number of false positives is likely to be low then the moderator can proceed. If not, then the collated defect list is forwarded to the author (of the document under inspection) for comment, i.e. the rejection of obvious false positives. Given this role in the process, the author is not used as an inspector during the individual phases.

Given this sanitised master defect list, the moderator, or more accurately the support system, can attempt to estimate the number of defects remaining undiscovered in the document. This is achieved by adapting capture-recapture theory from biological statistics to the software inspection context. Despite this approach initially receiving negative views, recent work has shown that the techniques are applicable, and can produce excellent results. Both studies have shown that the average accuracy of the techniques is excellent, but that variance of the results, in unfavourable conditions, requires attention. Further, if a defect classification is introduced then the estimation schema can produce estimates per classification, allowing subsequent targeting in further inspection phases.

As well as information on the number of defects found and remaining, the moderators will also be provided with a number of views of the current inspection data to aid their decision making. Providing moderators with a visualisation of defects by: location, type, inspectors finding them, etc. This allows them to consider, for example, sub-sections of the document to be re-inspected or defect types to be targeted.

Finally, the moderator should consider measurements from the current process. This is perhaps the best known of the three measurement components; the measures here are comparable to those found in process improvement programs. These allow the moderator to construct a view on any deficiencies experienced during the individual inspection of the document.

The moderator, using the data from the current inspection, now decides what the correct course of action is:

·        To end the inspection process

·        To have another phase

·        Or to have a mini-targeted phase, where it is believed that a portion of the document, or a certain defect type, has not been adequately covered.

Additional phases will normally employ the passive techniques to diversify and target the subsequent phase.

The final component of the new inspection process can only be introduced after a period of data gathering. The organisation should collect data about the outcomes of the above decision process. This data can then be utilised by moderators to improve their forthcoming decisions. Since, the costs of having another phase, or targeted phase, are relatively constant, moderators can also use the historical data to produce a cost-benefit analysis for their current decision. The collection, storage and presentation of the historical data is a relatively straightforward process given the introduction of the computer-support system into the process.