Reducing Test Cases with Causality Partitions.

Haijun Wang,Xiaohong Guan,Qinghua Zheng,Ting Liu,Xiangyang Li,Lechen Yu,Zijiang Yang
2014-01-01
Abstract:Automatic test case generation using symbolic execution suffers from the problem of path explosion: the number of paths to be explored may grow exponentially with the scale of a program. We believe that different paths may exhibit some similar program behaviors, thus it is unnecessary to explore all of the paths to generate test cases. In this paper, a novel model of program causality is proposed to extract all kinds of influences among statements of a program, which consists of four types of program dependencies. Then, a heuristic approach based on program causality is developed to selectively explore program paths in symbolic execution. We have implemented a prototype of our approach within the symbolic execution engine of Java Pathfinder. Experiments on six public benchmarks show that our approach can significantly reduce the number of explored paths and the symbolic execution time so that to improve the performance of test case generation. Keywords-Symbolic Execution; Causality Partition; Test Case Generation;
What problem does this paper attempt to address?