Causal Inference for the Effect of Code Coverage on Bug Introduction
Lukas Schulte, Gordon Fraser, Steffen Herbold

TL;DR
This study investigates the causal impact of code coverage levels on bug introduction in open source JavaScript and TypeScript projects, using causal inference methods to move beyond correlational analyses.
Contribution
It introduces a causal inference framework with a directed acyclic graph and propensity score adjustment to quantify the effect of code coverage on bugs, accounting for confounders.
Findings
Quantifies the causal effect of code coverage on bug introduction.
Identifies potential non-linear dose-response relationships.
Provides insights into optimal coverage levels for software quality.
Abstract
Context: Code coverage is widely used as a software quality assurance measure. However, its effect, and specifically the advisable dose, are disputed in both the research and engineering communities. Prior work reports only correlational associations, leaving results vulnerable to confounding factors. Objective: We aim to quantify the causal effect of code coverage (exposure) on bug introduction (outcome) in the context of mature JavaScript and TypeScript open source projects, addressing both the overall effect and its variance across coverage levels. Method: We construct a causal directed acyclic graph to identify confounders within the software engineering process, modeling key variables from the source code, issue- and review systems, and continuous integration. Using generalized propensity score adjustment, we will apply doubly robust regression-based causal inference for continuous…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Engineering Techniques and Practices · Software Testing and Debugging Techniques
