Specification Inference for Evolving Systems
Renzo Degiovanni, Facundo Molina, Agustin Nolasco, Nazareno Aguirre,, Mike Papadakis

TL;DR
This paper introduces DeltaSpec, a method combining test generation and dynamic inference to automatically derive commit-relevant specifications that describe code changes and help detect regressions effectively.
Contribution
It presents a novel approach for inferring commit-specific specifications that precisely capture software evolution and improve regression fault detection.
Findings
DeltaSpec infers 88% of manual commit-relevant assertions.
Commit-relevant assertions detect 78.3% of seeded faults.
Assertions in the delta are 58.3% more effective for fault detection.
Abstract
In this paper, we propose an assertion-based approach to capture software evolution, through the notion of commit-relevant specification. A commit-relevant specification summarises the program properties that have changed as a consequence of a commit (understood as a specific software modification), via two sets of assertions, the delta-added assertions, properties that did not hold in the pre-commit version but hold on the post-commit, and the delta-removed assertions, those that were valid in the pre-commit, but no longer hold after the code change. We also present DeltaSpec, an approach that combines test generation and dynamic specification inference to automatically compute commit-relevant specifications from given commits. We evaluate DeltaSpec on two datasets that include a total of 57 commits (63 classes and 797 methods). We show that commit-relevant assertions can precisely…
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 Testing and Debugging Techniques · Software Reliability and Analysis Research
