Lazy Generation of Canonical Test Programs

  • Jason S. Reich
  • Matthew Naylor
  • Colin Runciman
Conference paper

DOI: 10.1007/978-3-642-34407-7_5

Part of the Lecture Notes in Computer Science book series (LNCS, volume 7257)
Cite this paper as:
Reich J.S., Naylor M., Runciman C. (2012) Lazy Generation of Canonical Test Programs. In: Gill A., Hage J. (eds) Implementation and Application of Functional Languages. IFL 2011. Lecture Notes in Computer Science, vol 7257. Springer, Berlin, Heidelberg

Abstract

Property-based testing can be a highly effective form of lightweight verification, but it relies critically on the method used to generate test cases. If we wish to test properties of compilers and related tools we need a generator for source programs as test cases.

We describe experiments generating functional programs in a core first-order language with algebraic data types. Candidate programs are generated freely over a syntactic representation with positional names. Static conditions for program validity and canonical representatives of large equivalence classes are defined separately. The technique is used to investigate the correctness properties of a program optimisation and two language implementations.

Keywords

automated testing Small Check lightweight verification compiler correctness search-based software engineering 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Jason S. Reich
    • 1
  • Matthew Naylor
    • 1
  • Colin Runciman
    • 1
  1. 1.Department of Computer ScienceUniversity of YorkUK

Personalised recommendations