Functional and Logic Programming
DOI: 10.1007/978-3-540-78969-7_23
|View full text |Cite
|
Sign up to set email alerts
|

EasyCheck — Test Data for Free

Abstract: Abstract. We present a lightweight, automated tool for specificationbased testing of declarative programs written in the functional logic programming language Curry and emphasize the usefulness of logic features in its implementation and use. Free variables, nondeterminism and encapsulated search turn out to be elegant and powerful means to express test-data generation.

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
50
0

Publication Types

Select...
5
2
1

Relationship

0
8

Authors

Journals

citations
Cited by 44 publications
(50 citation statements)
references
References 14 publications
(15 reference statements)
0
50
0
Order By: Relevance
“…Berghofer and Nipkow (2004) proposed a QuickCheck-like tool for Isabelle/HOL. This was recently extended by Bulwahn (2012a) to also support exhaustive and narrowing-based symbolic testing (Christiansen and Fischer 2008;Lindblad 2007;Runciman et al 2008). Moreover, Bulwahn's tool uses Horn clause data flow analysis to automatically devise generators that only produce data that satisfies the precondition of the tested conjecture (Bulwahn 2012b).…”
Section: Related Workmentioning
confidence: 96%
“…Berghofer and Nipkow (2004) proposed a QuickCheck-like tool for Isabelle/HOL. This was recently extended by Bulwahn (2012a) to also support exhaustive and narrowing-based symbolic testing (Christiansen and Fischer 2008;Lindblad 2007;Runciman et al 2008). Moreover, Bulwahn's tool uses Horn clause data flow analysis to automatically devise generators that only produce data that satisfies the precondition of the tested conjecture (Bulwahn 2012b).…”
Section: Related Workmentioning
confidence: 96%
“…Another important difference is that left-inverse computation is compositional; if we have effective left-inverse computation methods for f and g, we have an effective left-inverse computation method for f • g. On the other hand, right-inverse computation may not be compositional; even if we have right-inverse computation methods for f and g, then right-inverse computation may happen to be undecidable for f • g. Left-inverse computation is suitable for applications in which efficiency is the biggest concern, such as in serialization/deserialization. On the other hand, rightinverse computation is suitable for applications in which one wants to invert non-injective function to enumerate all the corresponding inputs, such as in test-case generation [6,29]. It is worth noting that checking the injectivity of a function is generally undecidable.…”
Section: Related Work 61 Inverse Computationmentioning
confidence: 99%
“…Here, all the picked up (randomly generated or enumerated) data are relevant to the final check in the Step (3). SmallCheck and EasyCheck use inverse computation for efficient testcase generation [6,29], which of course has to be supported by efficient inverse computation.…”
Section: Introductionmentioning
confidence: 99%
“…GAST is a similar implementation for Clean, while EasyCheck implements random test data generation for Curry (Christiansen and Fischer, 2008). QuickCheck and GAST implement function generators for higher-order function since they deal with higher-order properties while this is not necessary in our approach because such properties are not allowed in Focalize.…”
Section: Related Workmentioning
confidence: 99%
“…More recently, Fisher et al (Fischer and Kuchen, 2007;Fischer and Kuchen, 2008) proposed an original data-flow coverage approach for the testing of Curry programs. This approach is supported by the tool Easycheck (Christiansen and Fischer, 2008). In 2008, FocalTest (Carlier andDubois, 2008), a tool that generates random test data for Focalize programs was proposed.…”
Section: Introductionmentioning
confidence: 99%