Applying Search in an Automatic Contract-Based Testing Tool

  • Alexey Kolesnichenko
  • Christopher M. Poskitt
  • Bertrand Meyer
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8084)

Abstract

Automated random testing has been shown to be effective at finding faults in a variety of contexts and is deployed in several testing frameworks. AutoTest is one such framework, targeting programs written in Eiffel, an object-oriented language natively supporting executable pre- and postconditions; these respectively serving as test filters and test oracles. In this paper, we propose the integration of search-based techniques—along the lines of Tracey—to try and guide the tool towards input data that leads to violations of the postconditions present in the code; input data that random testing alone might miss, or take longer to find. Furthermore, we propose to minimise the performance impact of this extension by applying GPU programming to amenable parts of the computation.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Boyapati, C., Khurshid, S., Marinov, D.: Korat: automated testing based on Java predicates. In: Proc. International Symposium on Software Testing and Analysis (ISSTA 2002), pp. 123–133. ACM (2002)Google Scholar
  2. 2.
    Cheon, Y., Kim, M.: A specification-based fitness function for evolutionary testing of object-oriented programs. In: Proc. Genetic and Evolutionary Computation Conference (GECCO 2006), pp. 1953–1954. ACM (2006)Google Scholar
  3. 3.
    Cheon, Y., Kim, M., Perumandla, A.: A complete automation of unit testing for Java programs. In: Proc. International Conference on Software Engineering Research and Practice (SERP 2005), pp. 290–295. CSREA Press (2005)Google Scholar
  4. 4.
    Harman, M.: The current state and future of search based software engineering. In: Proc. Future of Software Engineering (FOSE 2007), pp. 342–357. IEEE (2007)Google Scholar
  5. 5.
    McMinn, P.: Search-based software test data generation: a survey. Software Testing, Verification and Reliability 14(2), 105–156 (2004)CrossRefGoogle Scholar
  6. 6.
    Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice Hall (1997)Google Scholar
  7. 7.
    Meyer, B., Fiva, A., Ciupa, I., Leitner, A., Wei, Y., Stapf, E.: Programs that test themselves. IEEE Computer 42(9), 46–55 (2009)CrossRefGoogle Scholar
  8. 8.
    Pacheco, C., Lahiri, S.K., Ball, T.: Finding errors in. NET with feedback-directed random testing. In: Proc. International Symposium on Software Testing and Analysis (ISSTA 2008), pp. 87–96. ACM (2008)Google Scholar
  9. 9.
    Ryoo, S., Rodrigues, C.I., Baghsorkhi, S.S., Stone, S.S., Kirk, D.B., Hwu, W.W.: Optimization principles and application performance evaluation of a multithreaded GPU using CUDA. In: Proc. Symposium on Principles and Practice of Parallel Programming (PPOPP 2008), pp. 73–82. ACM (2008)Google Scholar
  10. 10.
    Silva, L.S., Wei, Y., Meyer, B., Oriol, M.: Evotec: Evolving the best testing strategy for contract-equipped programs. In: Proc. Asia Pacific Software Engineering Conference (APSEC 2011), pp. 290–297 (2011)Google Scholar
  11. 11.
    Tracey, N.J.: A Search-Based Automated Test-Data Generation Framework for Safety-Critical Software. PhD thesis, The University of York (2000)Google Scholar
  12. 12.
    Wei, Y., Gebhardt, S., Oriol, M., Meyer, B.: Satisfying test preconditions through guided object selection. In: Proc. International Conference on Software Testing, Verification and Validation (ICST 2010), pp. 303–312. IEEE (2010)Google Scholar
  13. 13.
    Yoo, S., Harman, M., Ur, S.: Highly scalable multi objective test suite minimisation using graphics cards. In: Cohen, M.B., Ó Cinnéide, M. (eds.) SSBSE 2011. LNCS, vol. 6956, pp. 219–236. Springer, Heidelberg (2011)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Alexey Kolesnichenko
    • 1
  • Christopher M. Poskitt
    • 1
  • Bertrand Meyer
    • 1
  1. 1.ETH ZürichSwitzerland

Personalised recommendations