2015
DOI: 10.1007/978-3-662-46669-8_33
|View full text |Cite
|
Sign up to set email alerts
|

Type Targeted Testing

Abstract: We present a new technique called type targeted testing, which translates precise refinement types into comprehensive test-suites. The key insight behind our approach is that through the lens of SMT solvers, refinement types can also be viewed as a high-level, declarative, test generation technique, wherein types are converted to SMT queries whose models can be decoded into concrete program inputs. Our approach enables the systematic and exhaustive testing of implementations from high-level declarative specifi… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
19
0

Year Published

2015
2015
2018
2018

Publication Types

Select...
5
2
1

Relationship

2
6

Authors

Journals

citations
Cited by 28 publications
(19 citation statements)
references
References 35 publications
0
19
0
Order By: Relevance
“…1 This approach has been widely investigated, both for generating inputs directly from predicates [13,34,46,66] and for symbolic-executionbased testing [3,9,30,67,70], which additionally uses the system under test to guide generation of inputs that exercise different control-flow paths. For notMember, gathering a set of disequality constraints on x before choosing its value avoids any backtracking.…”
Section: Member X [] = False Member X (H:t) = (X == H) || Member X Tmentioning
confidence: 99%
“…1 This approach has been widely investigated, both for generating inputs directly from predicates [13,34,46,66] and for symbolic-executionbased testing [3,9,30,67,70], which additionally uses the system under test to guide generation of inputs that exercise different control-flow paths. For notMember, gathering a set of disequality constraints on x before choosing its value avoids any backtracking.…”
Section: Member X [] = False Member X (H:t) = (X == H) || Member X Tmentioning
confidence: 99%
“…In RPBT a random data generator can be defined by filtering the output of another one, in a similar way as an exhaustive generator can be defined by filtering another exhaustive generator in BET. A more generic approach is type-targeted testing [26], wherein types are converted into queries to SMT solvers whose answers provide counterexamples. SmallCheck and Lazy SmallCheck [25] are two Haskell libraries for propertybased testing, allowing an automatic exhaustive testing for small values.…”
Section: Related Workmentioning
confidence: 99%
“…We envisage a dynamic cast operation cast T :: (x: any) ⇒ {ν : T | ν = x}. It is straightforward to implement cast T for first-order types T as a dynamic check that traverses the value, testing that its components satisfy the refinements [30]. Wrapper-based techniques from the contracts/gradual typing literature should then let us support higher-order types.…”
Section: Typesmentioning
confidence: 99%