Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications 2010
DOI: 10.1145/1869459.1869505
|View full text |Cite
|
Sign up to set email alerts
|

Random testing for higher-order, stateful programs

Abstract: Testing is among the most effective tools available for finding bugs. Still, we know of no automatic technique for generating test cases that expose bugs involving a combination of mutable state and callbacks, even though objects and method overriding set up exactly that combination. For such cases, a test generator must create callbacks or subclasses that aggressively exercise side-effecting operations using combinations of generated objects.This paper presents a new algorithm for randomly testing programs th… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
11
0
1

Year Published

2010
2010
2021
2021

Publication Types

Select...
3
3
2

Relationship

1
7

Authors

Journals

citations
Cited by 18 publications
(13 citation statements)
references
References 25 publications
0
11
0
1
Order By: Relevance
“…Probably the work related most closely to ours is Klein et al [9], who generated random programs to test an objectoriented library, finding a large number of bugs. Their generator is capable of producing higher-order object-oriented programs (which override methods) and supports monitoring of pre-and post-conditions.…”
Section: Related Workmentioning
confidence: 91%
“…Probably the work related most closely to ours is Klein et al [9], who generated random programs to test an objectoriented library, finding a large number of bugs. Their generator is capable of producing higher-order object-oriented programs (which override methods) and supports monitoring of pre-and post-conditions.…”
Section: Related Workmentioning
confidence: 91%
“…Two test generators for Racket tests higher-order functions, either by generating new subclasses of existing classes, guided by the types of functions and the environment, and guided by developer-provided contracts [Klein et al 2010], or by adopting symbolic execution for higher-order functions [Nguyen and Horn 2015]. Another line of work generates functions to test a Haskell compiler [Palka et al 2011].…”
Section: Related Work 71 Test Generationmentioning
confidence: 99%
“…Heidegger and Thiemann (2010) use contracts to guide random testing for Javascript, allowing users to annotate inputs to combine different analyses for increasing the probability of hitting branches with highly constrained preconditions. Klein et al (2010) also extend random testing to work on higher-order stateful programs, discovering many bugs in object-oriented programs in Racket. Seidel et al (2015) use refinement types as generators for tests, significantly improving code coverage.…”
Section: Symbolic Executionmentioning
confidence: 99%