Test coverage and post-verification defects: A multiple case study
- 1 October 2009
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
Abstract
Test coverage is a promising measure of test effectiveness and development organizations are interested in cost-effective levels of coverage that provide sufficient fault removal with contained testing effort. We have conducted a multiple-case study on two dissimilar industrial software projects to investigate if test coverage reflects test effectiveness and to find the relationship between test effort and the level of test coverage. We find that in both projects the increase in test coverage is associated with decrease in field reported problems when adjusted for the number of prerelease changes. A qualitative investigation revealed several potential explanations, including code complexity, developer experience, the type of functionality, and remote development teams. All these factors were related to the level of coverage and quality, with coverage having an effect even after these adjustments. We also find that the test effort increases exponentially with test coverage, but the reduction in field problems increases linearly with test coverage. This suggests that for most projects the optimal levels of coverage are likely to be well short of 100%.Keywords
This publication has 18 references indexed in Scilit:
- Predicting risk of software changesBell Labs Technical Journal, 2002
- Prioritizing test cases for regression testingIEEE Transactions on Software Engineering, 2001
- Identifying reasons for software changes using historic databasesPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2000
- Building knowledge through families of experimentsIEEE Transactions on Software Engineering, 1999
- Edge profiling versus path profilingPublished by Association for Computing Machinery (ACM) ,1998
- Predicting fault-prone software modules in telephone switchesIEEE Transactions on Software Engineering, 1996
- Operational profiles in software-reliability engineeringIEEE Software, 1993
- An analysis of several software defect modelsIEEE Transactions on Software Engineering, 1988
- Selecting Software Test Data Using Data Flow InformationIEEE Transactions on Software Engineering, 1985
- A Complexity MeasureIEEE Transactions on Software Engineering, 1976