Summary: | Automating the generation of test cases for software is an active area of research.
Specification based test generation is an approach in which a formal representation of a
method is analyzed to generate valid test cases. Constraint solving and state space
exploration are important aspects of the specification based test generation. One problem
with specification based testing is that the size of the state space explodes when we apply
this approach to a code of practical size. Hence finding ways to reduce the number of
candidates to explore within the state space is important to make this approach practical
in industry. Korat is a tool which generates test cases for Java programs based on
predicates that validate the inputs to the method. Various ongoing researches intend to
increase the tools effectiveness in handling large state space. Parallelizing Korat and
minimizing the exploration of invalid candidates are the active research directions.
This report surveys the basic algorithms of Korat, PKorat, and Fast Korat. PKorat
is a parallel version of Korat and aims to take advantage of multi-processor and multicore
systems available. Fast Korat implements four optimizations which reduce the
number of candidate explored to generate validate candidates and reduce the amount of
time required to explore each candidate. This report also presents the execution time
results for generating test candidates for binary tree, doubly linked list, and sorted singly
linked list, from their respective predicates. === text
|