EvoSpex: An Evolutionary Algorithm for Learning Postconditions
Facundo Molina, Pablo Ponzio, Nazareno Aguirre, Marcelo Frias

TL;DR
EvoSpex uses a genetic algorithm to automatically generate accurate and strong postcondition assertions for Java methods, improving software reliability analysis by inferring specifications where they are missing.
Contribution
This paper introduces EvoSpex, a novel evolutionary algorithm-based technique for automatically inferring method postconditions in Java, outperforming existing automated approaches.
Findings
Generated postconditions are stronger and more accurate.
The technique infers rich postconditions similar to manual specifications.
It successfully reproduces contracts for synthesized class methods.
Abstract
Software reliability is a primary concern in the construction of software, and thus a fundamental component in the definition of software quality. Analyzing software reliability requires a specification of the intended behavior of the software under analysis, and at the source code level, such specifications typically take the form of assertions. Unfortunately, software many times lacks such specifications, or only provides them for scenario-specific behaviors, as assertions accompanying tests. This issue seriously diminishes the analyzability of software with respect to its reliability. In this paper, we tackle this problem by proposing a technique that, given a Java method, automatically produces a specification of the method's current behavior, in the form of postcondition assertions. This mechanism is based on generating executions of the method under analysis to obtain valid…
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.
