Section: New Results
Constraint reasoning in Path-oriented Random Testing
Path-oriented Random Testing (PRT) aims at generating a uniformly spread out sequence of random test data that activate a single control flow path within an imperative program. The main challenge of PRT is to build efficiently such a test suite in order to minimize the number of rejects (test data that activate another control flow path). In  , we addressed this problem with an original divide-and-conquer approach based on constraint reasoning over finite domains, a well-recognized Constraint Programming technique. Our approach derives path conditions by using backward symbolic execution and computes an approximation of their associated subdomain by using constraint propagation and constraint refutation. We implemented our approach and got experimental results that show the practical interest of PRT based on constraint reasoning. In particular, we got a two-order magnitude CPU time improvement over a standard Random Testing approach when building a uniform test data generator for the longest path of a C implementation of the TCAS (Traffic Collision Avoidance System).