Causal testing: Understanding defects' root causes

33Citations
Citations of this article
82Readers
Mendeley users who have this article in their library.
Get full text

Abstract

Understanding the root cause of a defect is critical to isolating and repairing buggy behavior. We present Causal Testing, a newmethod of root-cause analysis that relies on the theory of counterfactual causality to identify a set of executions that likely hold key causal information necessary to understand and repair buggy behavior. Using the Defects4J benchmark, we find that Causal Testing could be applied to 71% of real-world defects, and for 77% of those, it can help developers identify the root cause of the defect. A controlled experiment with 37 developers shows that Causal Testing improves participants' ability to identify the cause of the defect from 80% of the time with standard testing tools to 86% of the time with Causal Testing. The participants report that Causal Testing provides useful information they cannot get using tools such as JUnit. Holmes, our prototype, open-source Eclipse plugin implementation of Causal Testing, is available at http://holmes.cs.umass.edu/.

Cite

CITATION STYLE

APA

Johnson, B., Brun, Y., & Meliou, A. (2020). Causal testing: Understanding defects’ root causes. In Proceedings - International Conference on Software Engineering (pp. 87–99). IEEE Computer Society. https://doi.org/10.1145/3377811.3380377

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free