Generating Distinguishing Tests Using the Minion Constraint Solver

We discuss the generation of test cases for demonstrating the non-equivalence of two programs. This problem has applications in mutation testing and automated debugging. After transforming the programs into Static-Single-Assignment form, the MINION constraint solver is used to generate test vectors that demonstrate the observable difference. The experiments show the feasability of our constraint solving approach.

[1]  Franz Wotawa,et al.  On the Compilation of Programs into their Equivalent Constraint Representation , 2008, Informatica.

[2]  Mark N. Wegman,et al.  Efficiently computing static single assignment form and the control dependence graph , 1991, TOPL.

[3]  Ian P. Gent,et al.  Minion: A Fast Scalable Constraint Solver , 2006, ECAI.

[4]  Bernhard K. Aichernig,et al.  Test case generation by OCL mutation and constraint solving , 2005, Fifth International Conference on Quality Software (QSIC'05).

[5]  Richard G. Hamlet,et al.  Testing Programs with the Aid of a Compiler , 1977, IEEE Transactions on Software Engineering.

[6]  Frank S. de Boer,et al.  Formal Methods for Components and Objects , 2012, Lecture Notes in Computer Science.

[7]  F. Wotawa,et al.  Mutant Minimization for Model-Checker Based Test-Case Generation , 2007, Testing: Academic and Industrial Conference Practice and Research Techniques - MUTATION (TAICPART-MUTATION 2007).

[8]  Bernhard K. Aichernig,et al.  Test Case Generation by Contract Mutation in Spec# , 2009, Electron. Notes Theor. Comput. Sci..

[9]  Bernhard K. Aichernig,et al.  From Faults Via Test Purposes to Test Cases: On the Fault-Based Testing of Concurrent Systems , 2006, FASE.

[10]  Mark N. Wegman,et al.  Constant propagation with conditional branches , 1985, POPL.

[11]  Hanspeter Mössenböck,et al.  Single-pass generation of static single-assignment form for structured languages , 1994, TOPL.

[12]  Bernhard K. Aichernig,et al.  Mutation testing in UTP , 2009, Formal Aspects of Computing.

[13]  Rafael M. Gasca,et al.  Diagnosing Errors in DbC Programs Using Constraint Programming , 2005, CAEPIA.

[14]  Bernhard K. Aichernig,et al.  Fault-Based Conformance Testing in Practice , 2009, Int. J. Softw. Informatics.

[15]  Richard J. Lipton,et al.  Hints on Test Data Selection: Help for the Practicing Programmer , 1978, Computer.

[16]  Rina Dechter,et al.  Constraint Processing , 1995, Lecture Notes in Computer Science.

[17]  Arnaud Gotlieb,et al.  Proving or Disproving likely Invariants with Constraint Reasoning , 2005, WLPE.

[18]  Qiang Yang,et al.  Program Understanding as Constraint Satisfaction: Representation and Reasoning Techniques , 1998, Automated Software Engineering.

[19]  Bernard Botella,et al.  A CLP Framework for Computing Structural Test Data , 2000, Computational Logic.

[20]  Arnaud Gotlieb,et al.  Automatic test data generation using constraint solving techniques , 1998, ISSTA '98.

[21]  Farhad Arbab,et al.  Fault-Based Test Case Generation for Component Connectors , 2009, 2009 Third IEEE International Symposium on Theoretical Aspects of Software Engineering.

[22]  Hélène Collavizza,et al.  Exploring Different Constraint-Based Modelings for Program Verification , 2007, CP.

[23]  A. Jefferson Offutt,et al.  Constraint-Based Automatic Test Data Generation , 1991, IEEE Trans. Software Eng..

[24]  Kuo-Chung Tai,et al.  Test generation for Boolean expressions , 1995, Proceedings of Sixth International Symposium on Software Reliability Engineering. ISSRE'95.