Constraint Patterns and Search Procedures for CP-Based Random Test Generation

Constraint Programming (CP) technology has been extensively used in Random Functional Test Generation during the recent years. However, while the existing CP methodologies are well tuned for traditional combinatorial applications e.g. logistics or scheduling, the problem domain of functional test generation remains largely unexplored by the CP community and many of its domain specific features and challenges are still unaddressed. In this paper we focus on the distinctive features of CP for the random functional test generation domain and show how these features can be addressed using a classical CP engine with custom extensions. We present some modeling and solving problems arising in this context and propose solutions. In particular, we address the way of model building in the problem domain of test generation which we refer to as multi-layer modeling. In this context we introduce constraint patterns of composite variable, implied condition and implied composite variable condition, define their semantics and propose schemes for their CSP modeling. The paper also addresses specific problems arising at the solving stage in the problem domain of random test generation. We propose solutions to these problems by means of custom random search algorithms. This approach is illustrated on the examples of the disjunction constraint and conditional variable instantiation. The latter algorithm addresses the feature of dynamic modeling required in the test generation task. To demonstrate the effectiveness of our approach we present experimental results based on the implementation using ILOG Solver as a CP engine.

[1]  Pascal Van Hentenryck,et al.  Design, Implementation, and Evaluation of the Constraint Language cc(FD) , 1994, Constraint Programming.

[2]  Peter van Beek,et al.  Principles and Practice of Constraint Programming - CP 2005, 11th International Conference, CP 2005, Sitges, Spain, October 1-5, 2005, Proceedings , 2005, CP.

[3]  Carla P. Gomes,et al.  Randomized Backtrack Search , 2004 .

[4]  Michael Veksler,et al.  Assumption-Based Pruning in Conditional CSP , 2005, CP.

[5]  Avi Ziv,et al.  Using a constraint satisfaction formulation and solution techniques for random test program generation , 2002, IBM Syst. J..

[6]  Brian Falkenhainer,et al.  Dynamic Constraint Satisfaction Problems , 1990, AAAI.

[7]  Francesca Rossi,et al.  Principles and Practice of Constraint Programming – CP 2003 , 2003, Lecture Notes in Computer Science.

[8]  Toby Walsh,et al.  Constraint Patterns , 2003, CP.

[9]  Michela Milano,et al.  Constraint and Integer Programming: Toward a Unified Methodology (Operations Research/Computer Science Interfaces, 27) , 2003 .

[10]  Günther Görz,et al.  KI-96: Advances in Artificial Intelligence , 1996, Lecture Notes in Computer Science.

[11]  Andreas Podelski,et al.  Constraint Programming: Basics and Trends , 1995, Lecture Notes in Computer Science.

[12]  B. Gutkovich,et al.  CP with Architectural State Lookup for Functional Test Generation , 2006, 2006 IEEE International High Level Design Validation and Test Workshop.

[13]  Boi Faltings,et al.  Solving Mixed and Conditional Constraint Satisfaction Problems , 2003, Constraints.

[14]  Olivier Lhomme,et al.  An Efficient Filtering Algorithm for Disjunction of Constraints , 2003, CP.

[15]  Jörg Würtz,et al.  Constructive Disjunction Revisited , 1996, KI.

[16]  Eugene C. Freuder,et al.  Greater Efficiency for Conditional Constraint Satisfaction , 2003, CP.