kirancodes.me
To Proof Maintenance & Beyond!

Search-based synthesis of equivalent method sequences

Alberto Goffi, Alessandra Gorla, Andrea Mattavelli, Mauro Pezzè, Paolo Tonella

Abstract

Software components are usually redundant, since their interface offers different operations that are equivalent in their functional behavior. Several reliability techniques exploit this redundancy to either detect or tolerate faults in software. Metamorphic testing, for instance, executes pairs of sequences of operations that are expected to produce equivalent results, and identifies faults in case of mismatching outcomes. Some popular fault tolerance and self-healing techniques execute redundant operations in an attempt to avoid failures at runtime. The common assumption of these techniques, though, is that such redundancy is known a priori. This means that the set of operations that are supposed to be equivalent in a given component should be available in the specifications. Unfortunately, inferring this information manually can be expensive and error prone. This paper proposes a search-based technique to synthesize sequences of method invocations that are equivalent to a target method within a finite set of execution scenarios. The experimental results obtained on 47 methods from 7 classes show that the proposed approach correctly identifies equivalent method sequences in the majority of the cases where redundancy was known to exist, with very few false positives.

BibTeX
@inproceedings{Goffi-al:FSE14,
  author    = {Alberto Goffi and
               Alessandra Gorla and
               Andrea Mattavelli and
               Mauro Pezz{\`{e}} and
               Paolo Tonella},
  title     = {Search-based synthesis of equivalent method sequences},
  booktitle = {FSE},
  pages     = {366--376},
  publisher = {{ACM}},
  year      = {2014},
}

Related papers