Advertisement

Synthesis of Equivalent Method Calls in Guava

  • Andrea Mattavelli
  • Alberto Goffi
  • Alessandra Gorla
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9275)

Abstract

We developed a search-based technique to automatically synthesize sequences of method calls that are functionally equivalent to a given target method. This paper presents challenges and results of applying our technique to Google Guava. Guava heavily uses Java generics, and the large number of classes, methods and parameter values required us to tune our technique to deal with a search space that is much larger than what we originally envisioned. We modified our technique to cope with such challenges. The evaluation of the improved version of our technique shows that we can synthesize 188 equivalent method calls for relevant components of Guava, outperforming by 86 % the original version.

Notes

Acknowledgment

This work was supported in part by the Swiss National Science Foundation with projects SHADE (grant n. 200021-138006) and ReSpec (grant n. 200021-146607). The authors would like to thank Mauro Pezzè and Paolo Tonella for their contributions to the previous version of the technique.

References

  1. 1.
    Carzaniga, A., Goffi, A., Gorla, A., Mattavelli, A., Pezzè, M.: Cross-checking oracles from intrinsic software redundancy. In: International Conference on Software Engineering (ICSE), pp. 931–942. ACM (2014)Google Scholar
  2. 2.
    Carzaniga, A., Gorla, A., Mattavelli, A., Perino, N., Pezzè, M.: Automatic recovery from runtime failures. In: International Conference on Software Engineering (ICSE), pp. 782–791. IEEE (2013)Google Scholar
  3. 3.
    Carzaniga, A., Mattavelli, A., Pezzè, M.: Measuring software redundancy. In: International Conference on Software Engineering (ICSE), pp. 156–166. IEEE (2015)Google Scholar
  4. 4.
    De Nicola, R., Hennessy, M.: Testing equivalences for processes. Theoret. Comput. Sci. 34(1–2), 83–133 (1984)MathSciNetCrossRefzbMATHGoogle Scholar
  5. 5.
    Fraser, G., Arcuri, A.: EvoSuite: automatic test suite generation for object-oriented software. In: Symposium on the Foundations of Software Engineering (FSE), pp. 416–419. ACM (2011)Google Scholar
  6. 6.
    Fraser, G., Arcuri, A., McMinn, P.: A memetic algorithm for whole test suite generation. J. Syst. Softw. 103, 311–327 (2015)CrossRefGoogle Scholar
  7. 7.
    Goffi, A., Gorla, A., Mattavelli, A., Pezzè, M., Tonella, P.: Search-based synthesis of equivalent method sequences. In: Symposium on the Foundations of Software Engineering (FSE), pp. 366–376. ACM (2014)Google Scholar
  8. 8.
    Harman, M., Hu, L., Hierons, R.M., Wegener, J., Sthamer, H., Baresel, A., Roper, M.: Testability transformation. IEEE Trans. Softw. Eng. (TSE) 30(1), 3–16 (2004)CrossRefzbMATHGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  • Andrea Mattavelli
    • 1
  • Alberto Goffi
    • 1
  • Alessandra Gorla
    • 2
  1. 1.Università Della Svizzera Italiana (USI)LuganoSwitzerland
  2. 2.IMDEA Software InstituteMadridSpain

Personalised recommendations