GAssert: A Fully Automated Tool to Improve Assertion Oracles

@article{Terragni2021GAssertAF,
  title={GAssert: A Fully Automated Tool to Improve Assertion Oracles},
  author={Valerio Terragni and Gunel Jahangirova and Paolo Tonella and Mauro Pezz{\`e}},
  journal={2021 IEEE/ACM 43rd International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)},
  year={2021},
  pages={85-88}
}
  • Valerio Terragni, Gunel Jahangirova, M. Pezzè
  • Published 4 March 2021
  • Computer Science, Philosophy
  • 2021 IEEE/ACM 43rd International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)
This demo presents the implementation and usage details of GASSERT, the first tool to automatically improve assertion oracles. Assertion oracles are executable boolean expressions placed inside the program that should pass (return true) for all correct executions and fail (return false) for all incorrect executions. Because designing perfect assertion oracles is difficult, assertions are prone to both false positives (the assertion fails but should pass) and false negatives (the assertion… 

Figures and Tables from this paper

Generating metamorphic relations for cyber-physical systems with genetic programming: an industrial case study
TLDR
GAssertMRs, a tool to automatically generate MRs with genetic programming is implemented and the cost-effectiveness of this tool is assessed in the context of an industrial case study from the elevation domain.
Improving assertion oracles with evolutionary computation
TLDR
GAssert is the first technique to automatically improve assertion oracles by reducing false positives and false negatives and evaluation on 34 Java methods shows that GAssert effectively improves assertion oracle.

References

SHOWING 1-7 OF 7 REFERENCES
Whole Test Suite Generation
TLDR
This work proposes a novel paradigm in which whole test suites are evolved with the aim of covering all coverage goals at the same time while keeping the total size as small as possible, and implemented this novel approach in the EvoSuite tool.
Dynamically discovering likely program invariants to support program evolution
TLDR
This paper describes techniques for dynamically discovering invariants, along with an instrumenter and an inference engine that embody these techniques, and reports on the application of the engine to two sets of target programs.
Feedback-Directed Random Test Generation
TLDR
Experimental results indicate that feedback-directed random test generation can outperform systematic and undirectedrandom test generation, in terms of coverage and error detection.
Evolutionary improvement of assertion oracles
TLDR
GAssert (Genetic ASSERTion improvement), the first technique to automatically improve assertion oracles, is proposed, which implements a novel co-evolutionary algorithm that explores the space of possible assertions to identify one with fewer false positives and false negatives.
Test oracle assessment and improvement
TLDR
It is shown that the fault detection rate of the oracles after improvement increases, on average, by 48.6% (86% over the implicit oracle), and it is proved that the approach can always result in an increase in the mutual information between the actual and perfect oracles.
An Empirical Validation of Oracle Improvement
TLDR
The results show that developers exhibit poor performance when manually assessing whether an assertion oracle contains a false positive, a false negative or none of the two, and shows that automated detection of these oracle deficiencies is beneficial for the users.
The Oracle Problem in Software Testing: A Survey
TLDR
This paper provides a comprehensive survey of current approaches to the test oracle problem and an analysis of trends in this important area of software testing research and practice.