An Empirical Study of Structural Constraint Solving Techniques
ICFEM '09 Proceedings of the 11th International Conference on Formal Engineering Methods: Formal Methods and Software Engineering
Proceedings of the 5th Workshop on Automation of Software Test
Parallel symbolic execution for structural test generation
Proceedings of the 19th international symposium on Software testing and analysis
Incorporating coverage criteria in bounded exhaustive black box test generation of structural inputs
TAP'11 Proceedings of the 5th international conference on Tests and proofs
Scaling symbolic execution using ranged analysis
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Parallel bounded analysis in code with rich invariants by refinement of field bounds
Proceedings of the 2013 International Symposium on Software Testing and Analysis
Hi-index | 0.00 |
Constraint solving lies at the heart of several specification-based approaches to automated testing. Korat is a previously developed algorithm for solving constraints in Java programs. Given a Java predicate that represents the desired constraints and a bound on the input size, Korat systematically explores the bounded input space of the predicate and enumerates inputs that satisfy the constraint. Korat search is largely sequential: it considers one candidate input in each iteration and it prunes the search space based on the candidates considered. This paper presents PKorat, a new parallel algorithm that parallelizes the Korat search. PKorat explores the same state space as Korat but considers several candidates in each iteration. These candidates are distributed among parallel workers resulting in an efficient parallel version of Korat. Experimental results using complex structural constraints from a variety of subject programs show significant speedups over the traditional Korat search.