Causal Reasoning in Software Quality Assurance: A Systematic Review
Luca Giamattei, Antonio Guerriero, Roberto Pietrantuono, Stefano Russo

TL;DR
This systematic review explores how causal reasoning is applied in software quality assurance, highlighting its growing use in fault localization and testing, and identifying research gaps and future opportunities.
Contribution
It provides a comprehensive classification and analysis of 86 studies on causal reasoning in SQA, revealing current methodologies, application areas, and maturity levels.
Findings
Fault localization is the most common application of causal reasoning.
Causal inference and discovery are both used, with Pearl's graphical causality being preferred.
Most tools for causal reasoning in SQA have emerged after 2021.
Abstract
Context: Software Quality Assurance (SQA) is a fundamental part of software engineering to ensure stakeholders that software products work as expected after release in operation. Machine Learning (ML) has proven to be able to boost SQA activities and contribute to the development of quality software systems. In this context, Causal Reasoning is gaining increasing interest as a methodology to go beyond a purely data-driven approach by exploiting the use of causality for more effective SQA strategies. Objective: Provide a broad and detailed overview of the use of causal reasoning for SQA activities, in order to support researchers to access this research field, identifying room for application, main challenges and research opportunities. Methods: A systematic review of the scientific literature on causal reasoning for SQA. The study has found, classified, and analyzed 86 articles,…
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 Techniques and Practices · Software Engineering Research · Safety Systems Engineering in Autonomy
MethodsCausal inference
