27.03.2014 Views

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

using the CR estimates against the actual fault count. We also<br />

analyzed the ability of the CR method to make a cost-effective<br />

decision post-inspection. The rest of the paper is structured as<br />

follows: Section II describes the inspection cost model and<br />

metrics, the basic principles of CR models in software<br />

inspections. Section III describes the literature review used for<br />

the evaluation study. Section IV describes the design of the<br />

evaluation study. Section V reports the results. Section VI<br />

discusses the threats to validity. Section VII summarizes the<br />

results. Section VIII contains the conclusions and future work<br />

II. BACKGROUND<br />

This section provides information regarding the inspection<br />

costs and savings, different cost-metrics, the basic principles of<br />

the use of CR models in inspections, and a summary of the<br />

empirical studies related to cost-effectiveness of inspections.<br />

A. Inspection Cost Model<br />

The traditional software inspection cost model [13] consists<br />

of the following components. The process of calculating these<br />

components after the inspection is discussed as follows:<br />

D r - number of unique faults found during the inspection;<br />

is determined by comparing the faults found by all the<br />

inspectors.<br />

D - total number of faults present in the product; is not<br />

total<br />

available during the development. In this research, the<br />

overlap in the faults found by multiple inspectors during<br />

the inspection is used to estimate the total fault count using<br />

the CR estimators.<br />

C r – cost spent on an inspection; is measure of the time<br />

taken (in hours) to review the software artifact. In this<br />

research, we only consider the cost invested during the<br />

“individual review/preparation” stage of the inspection<br />

process and is calculated by adding the time taken by each<br />

inspector during the inspection.<br />

C t – cost spent to detect remaining faults in testing; is the<br />

cost required to detect the faults remaining post inspection.<br />

If we consider c t as the average cost to detect a fault in the<br />

testing stage, then C t can be measured as the product of<br />

total number of faults remaining post-inspection (D total –<br />

D r ) and the average cost to detect a fault during testing (c t ).<br />

o c t , – Average cost to detect a fault in testing, is not<br />

available after the inspection. Only the average cost to<br />

detect a fault in inspection is available. Therefore, a<br />

cost ratio of 1:6 (i.e., time spent to find a fault during<br />

the testing is six times the time spent to find a fault<br />

during the inspection) was used to calculate the<br />

average cost to detect a fault in testing. This cost ratio<br />

is derived from literature and described in Section III.<br />

<br />

<br />

∆ C t – testing cost saved by the inspection. By spending<br />

cost C r during the inspection, cost ∆C t is being saved<br />

during the testing. It is calculated as the product of number<br />

of faults found during an inspection (D r ) and the average<br />

cost to detect a fault in testing (c t ). That is, ∆C t = Dr * c t<br />

C vt – Virtual testing cost, (i.e., testing cost expended if no<br />

inspections are performed) is the sum of the testing cost<br />

required to detect the faults remaining post-inspection (C t )<br />

and the testing cost saved by the inspection (∆C t ). That is,<br />

C vt = (C t + ∆C t ).<br />

B. Software Inspection Cost-Metrics<br />

Meyer [15] and Fagan [11] have used a subset of the<br />

components listed in II.A to propose metrics for evaluating the<br />

effectiveness (number of faults) and efficiency (faults per hour)<br />

of inspections. Their research has neglected the cost spent and<br />

cost saved by the inspections. In this paper, only the inspection<br />

metrics that considered cost factors are discussed.<br />

Collofello’s Metric (M c ): Collofello et al., [9] defined a<br />

cost-effectiveness metric as the ratio of the cost saved by<br />

inspections (∆C t ) to the cost consumed by inspections (C r ).<br />

Although M c considers the cost factors, it does not take into<br />

account the total cost to detect all the faults in the software<br />

work product by inspections and testing. As such, we cannot<br />

compare the M c values across different projects as shown using<br />

an example: Suppose two projects involve inspections and<br />

testing and that in both projects, if inspections had not been<br />

performed, the cost of testing would be 1000 units. The first<br />

project consumes 10 units for their inspections and saves 100<br />

units. Thus, the total cost for fault detection is 910 units. In the<br />

second project, inspections cost 60 units and save 600 units.<br />

Thus, the total cost for fault detection is 460 units, which is far<br />

smaller than the cost in the first project of 910 units. However,<br />

the value of M c in both projects is 10, which doesn’t recognize<br />

the benefit of inspections in the second project. The Kusumoto<br />

metric [13] overcame this problem as discussed below.<br />

Kusumoto Metric (M k ): Kusumoto et al., [13] defined the<br />

cost effectiveness of an inspection in terms of the reduction of<br />

cost to detect and remove all faults from the software product.<br />

M k is calculated as a ratio of the reduction of the total costs to<br />

detect and remove all faults from the software product using<br />

inspections to the virtual testing cost (i.e., testing cost if no<br />

inspection is executed). The M k normalizes the savings by the<br />

potential fault cost. Hence, it can be compared across different<br />

projects. M k is intuitive and appropriate for this research as it<br />

can be interpreted in terms of fault rework savings due to<br />

inspections. Formally stated, the testing cost is reduced (by ∆C t<br />

- C r ) by performing inspections as compared to the testing cost<br />

(Ct + ΔCt) if no inspection is executed. Therefore, the M k can<br />

be derived as: M k = (∆C t - C r ) / (C t + ∆C t ) (1)<br />

C. Using Capture Recapture (CR) in Software Inspections<br />

As mentioned in Section II.A, this research uses the CR<br />

method to estimate the total fault count, which is then used to<br />

estimate the faults remaining post-inspection. Using these fault<br />

estimates, the M k value is then computed using (1).<br />

The use of CR method in biology makes certain<br />

assumptions that do not always hold for software inspections.<br />

The assumptions made by CR in biology include: 1) closed<br />

population (i.e. no animal can enter or leave), 2) equal capture<br />

probability (i.e. all animals have an equal chance of being<br />

captured), and 3) marks are not lost (i.e. an animal that has<br />

been captured can be identified) [8, 22]. When using the CR in<br />

inspections, the closed population assumption is met (i.e., all<br />

inspectors review the same artifact independently and it is not<br />

modified) and the assumption that marks are not lost is met (i.e.<br />

46

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!