An Empirical Study of the Branch Coverage of Dierent Fault Classes
Abstract:
The question \How much testing is enough? " has led many to explore code coverage metrics and structural testing. High branch coverage is common in unit testing, but can be a dicult goal to reach in system level testing. Before attempting to increase branch coverage, it is important to understand the tradeos between testing cost and additional fault detection. One part of this understanding is knowing which classes of faults are easily detected with structural testing methods, and which are not. To answer this question, we studied ninety eight post release software faults on a leading on-line transaction processing system. For each fault, we determined whether or not it had been covered in prerelease testing. We assigned each fault to a class, using a fault taxonomy from a similar study [SC92]. Finally, we examined which classes of faults were most prevalent, and which classes most often appear in covered branches. To quantify this, we dened a branch which was modied during a x as an \aected branch", and de ned \aected branch coverage " to be the percentage of aected branches that had been covered in testing. We dened the overall aected branch coverage to be the percentage of all aected branches that had been covered in testing. We measured the overall affected branch coverage for each fault class, and for all of the ninety-eight faults. Our results show that whether or not a fault appears in covered branches depends strongly on the fault class. Certain classes of faults had well over 50% overall aected branch coverage | increasing coverage would probably oer limited gains in fault detection for these classes. Overall, 60.3 % of all faults were in classes with high aected branch coverage, and the af-
Citations
| 310 | Software Testing Techniques – Beizer - 1990 |
| 46 | Coverage Measurement Experience During Function Test – Piwowarski, Ohba, et al. - 1993 |
| 32 | A Comparison of Software Defects in Database Management Systems and Operating Systems – Sullivan, Chillarege - 1992 |
| 23 | An experimental comparison of the error exposing ability of program testing criteria – Girgis, Woodward - 1986 |
| 22 | An empirical comparison of software fault tolerance and fault elimination – Shimeall, Leveson - 1991 |
| 15 | Practical Results From Measuring Software Quality – Grady - 1993 |
| 12 | Experience in testing the motif interface – Su, Ritter - 1991 |
| 11 | Analyzing the test process using structural coverage – Ramsey, Basli - 1985 |
| 11 | Combining software testing strategies: An empirical evaluation – Selby - 1986 |
| 4 | Comparing the eectiveness of software testing strategies – Basili, Selby - 1987 |
| 3 | Personal communications with Barbara Wade of IBM – Wade - 1994 |

