Code coverage criteria and their effect on test suite qualities
Examensarbete för masterexamen
Software engineering and technology (MPSOF), MSc
The efficiency of software testing is often assessed based on the results of code coverage analysis, which is performed using such criteria as function, statement and condition/decision coverage. However, it is not uncommon for a criterion definition to vary between tool vendors and programming languages, which makes any analysis and comparison difficult. Given this uncertainty, one also wonders what evidence exists to support the use of code coverage data as a basis for evaluating test efficiency. In this paper various coverage criteria are analyzed and the reason the majority of them are language-specific is discussed. Following that, a test suite quality model is proposed and used to demonstrate the non-linear relationship between defect detection and coverage levels as well as how code coverage data can be used to minimize a test suite, improve its regression sensitivity or even generate missing test cases. Finally, several coverage analysis tool case studies are done and an implementation of a BullseyeCoverage plug-in for Eclipse C/C++ Development Tools environment is described. This report is concluded with a discussion of open questions, such as the feasibility of precisely specified universal coverage criteria, automated coverage-guided test case generation and an approach to measure coverage of generated source code.
Data- och informationsvetenskap , Computer and Information Science