Specification Inference for Evolving Systems

01/29/2023
by   Renzo Degiovanni, et al.
0

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 describe the semantic deltas of code changes, providing a useful mechanism for validating the behavioural evolution of software. We also show that DeltaSpec can infer 88 expressible in the language supported by the tool. Moreover, our experiments demonstrate that DeltaSpec's inferred assertions are effective to detect regression faults. More precisely, we show that commit-relevant assertions can detect, on average, 78.3 the code changes. We also show that assertions in the delta are 58.3 effective in detecting commit-relevant mutants than assertions outside the delta, and that it takes on average 169 commit-relevant, compared to using general valid assertions, to achieve a same commit-relevant mutation score.

READ FULL TEXT
research
12/29/2021

Mutation Testing in Evolving Systems: Studying the relevance of mutants to code evolution

When software evolves, opportunities for introducing faults appear. Ther...
research
09/20/2022

Assisted Specification of Code Using Search

We describe an intelligent assistant based on mining existing software r...
research
02/26/2021

EvoSpex: An Evolutionary Algorithm for Learning Postconditions

Software reliability is a primary concern in the construction of softwar...
research
08/24/2017

Exploring the Link Between Test Suite Quality and Automatic Specification Inference

While no one doubts the importance of correct and complete specification...
research
03/07/2022

μBERT: Mutation Testing using Pre-Trained Language Models

We introduce μBERT, a mutation testing tool that uses a pre-trained lang...
research
01/26/2022

Fuzzing Class Specifications

Expressing class specifications via executable constraints is important ...

Please sign up or login with your details

Forgot password? Click here to reset