Everything about Code coverage
Metric for source code testing
In software engineering, code coverage, also called test coverage, is a percentage measure of the degree to which the source code of a program is executed when a particular test suite is run. A program with high code coverage has more of its source code executed during testing, which suggests it has a lower chance of containing undetected software bugs compared to a program with low code coverage. Many different metrics can be used to calculate test coverage. Some of the most basic are the percentage of program subroutines and the percentage of program statements called during execution of the test suite. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: Code coverageA 5-minute orientation
- Skim a recent paper: Code-Aware Prompting: A Study of Coverage-Guided Test Generation in Regression Setting using LLMInfluential work since 2022
- Pick up a classic book: Reviewing the artsThe most-reprinted book on the subject
- Read the landmark paper: A family of code coverage-based heuristics for effective fault localizationCited 194 times
- Go sideways: Modified condition/decision coverageA closely related topic
- Go sideways: Linear code sequence and jumpA closely related topic
📖 Definitions
Noun A measure of the degree to which the source code of a program is executed when a particular test suite is run.
🗂️ The subject at a glance
🏆 Landmark papers (most cited)
A family of code coverage-based heuristics for effective fault localization
Effect of code coverage on software reliability measurement
Instance Generator and Problem Representation to Improve Object Oriented Code Coverage
Code Coverage of Adaptive Random Testing
Efficient instrumentation for code coverage testing
Regression test case prioritization by code combinations coverage
Fine-grained Code Coverage Measurement in Automated Black-box Android Testing
Code-coverage guided prioritized test generation
🆕 Influential since 2022
Code-Aware Prompting: A Study of Coverage-Guided Test Generation in Regression Setting using LLM
Advancing Code Coverage: Incorporating Program Analysis with Large Language Models
Excluding code from test coverage: practices, motivations, and impact
A Reinforcement Learning Approach to Guide Web Crawler to Explore Web Applications for Improving Code Coverage
Predicting Code Coverage in DevOps Pipelines Using Machine Learning Regression Models
📚 Books worth reading
Reviewing the artsCampbell B. Titchener · 1988
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- Modified condition/decision coverage Modified condition/decision coverage (MC/DC) is a code coverage criterion used in software testing. MC/DC requires all of the below during testing: Each…
- Linear code sequence and jump Linear code sequence and jump (LCSAJ), in the broad sense, is a software analysis method used to identify structural units in code under test. Its primary…
- Cyclomatic complexity Cyclomatic complexity is a software metric used to indicate the complexity of a program. It is a quantitative measure of the number of linearly independent…
- DO-178B DO-178B, Software Considerations in Airborne Systems and Equipment Certification is a guideline dealing with the safety of safety-critical software used…
- DO-178C DO-178C, Software Considerations in Airborne Systems and Equipment Certification is the primary document by which the certification authorities such as…
- Control flow In software, control flow (or flow of control) describes how execution progresses from one command to the next. In many contexts, such as machine code…
- Control table A control table is a table used to direct the control flow of a computer program. Software that uses a control table is said to be table-driven. A control…
- Parasoft C/C++test Parasoft C/C++test is an integrated set of tools for testing C and C++ source code that software developers use to analyze, test, find defects, and measure…