We report experiments conducted to investigate the correlation between code coverage and software reliability. Black-, decision-, and all-use-coverage measures were used. Reliability was estimated to be the probability of no failure over the given input domain defined by an operational profile. Four of the five programs were selected from a set of Unix utilities. These utilities range in size from 121 to 8857 lines of code, artificial faults were seeded manually using a fault seeding algorithm. Test data was generated randomly using a variety of operational profiles for each program. One program was selected from a suite of outer space applications. Faults seeded into this program were obtained from the faults discovered during the integration testing phase of the application. Test cases were generated randomly using the operational profile for the space application. Data obtained was graphed and analyzed to observe the relationship between code coverage and reliability. In all cases it was observed that an increase in reliability is accompanied by an increase in at least one code coverage measure. It was also observed that a decrease in reliability is accompanied by a decrease in at least one code coverage measure. Statistical correlations between coverage and reliability were found to vary between -0.1 and 0.91 for the shortest two of the five programs considered; for the remaining three programs the correlations varied from 0.89 to 0.99.
[1]
Joseph Robert Horgan,et al.
Assessing testing tools in research and education
,
1992,
IEEE Software.
[2]
Vernon Rego,et al.
Effect of testing techniques on software reliability estimates obtained using a time-domain model
,
1995
.
[3]
Adam C. Marshall,et al.
A relationship between software coverage metrics and reliability
,
1994,
Softw. Test. Verification Reliab..
[4]
John D. Musa,et al.
Software reliability measurement
,
1984,
J. Syst. Softw..
[5]
James M. Bieman,et al.
The relationship between test coverage and reliability
,
1994,
Proceedings of 1994 IEEE International Symposium on Software Reliability Engineering.