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.