Stratégies Dynamiques pour la Génération de Contre-exemples

Checking safety properties is mandatory in the vali- dation process of critical software. When formal verica- tion tools fail to prove some properties, testing is neces- sary. Generation of counterexamples violating some pro- perties is therefore an important issue, especially for tri- cky programs the test cases of which are very difficult to compute. We propose in this paper dierent constraint based dynamic strategies for generating structural test cases that violate a post-condition of C or JAVA pro- grams. These strategies have been evaluated on stan- dard benchmarks and on real applications. Experiments on a real industrial Flasher Manager controller and on the public available implementation of the Traffic Col- lision Avoidance System (TCAS) show that our system outperforms state of the art model checking tools like CBMC or constraint based test generation systems like Euclide.

[1]  Yves Deville,et al.  Automatic test data generation for programs with integer and float variables , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[2]  Daniel Jackson,et al.  Finding bugs with a constraint solver , 2000, ISSTA '00.

[3]  Arnaud Gotlieb,et al.  Improving Constraint-Based Testing with Dynamic Linear Relaxations , 2007, The 18th IEEE International Symposium on Software Reliability (ISSRE '07).

[4]  Paula Herber,et al.  Combining Model Checking and Testing in a Continuous HW/SW Co-verification Process , 2009, TAP@TOOLS.

[5]  Arnaud Gotlieb TCAS software verification using constraint programming , 2012, Knowl. Eng. Rev..

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

[7]  Bruno Marre,et al.  PathCrawler: Automatic Generation of Path Tests by Combining Static and Dynamic Analysis , 2005, EDCC.

[8]  Carlo Ghezzi,et al.  Using symbolic execution for verifying safety-critical systems , 2001, ESEC/FSE-9.

[9]  Koushik Sen DART: Directed Automated Random Testing , 2009, Haifa Verification Conference.

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

[11]  Hélène Collavizza,et al.  Exploration of the Capabilities of Constraint Programming for Software Verification , 2006, TACAS.

[12]  Daniel Kroening,et al.  A Survey of Automated Techniques for Formal Software Verification , 2008, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[13]  Virginie Wiels,et al.  Model checking flight control systems: The Airbus experience , 2009, 2009 31st International Conference on Software Engineering - Companion Volume.

[14]  Arnaud Gotlieb Euclide: A Constraint-Based Testing Framework for Critical C Programs , 2009, 2009 International Conference on Software Testing Verification and Validation.

[15]  Pascal Van Hentenryck,et al.  CPBPV: a constraint-programming framework for bounded program verification , 2009, Constraints.

[16]  Gordon Fraser,et al.  Testing with model checkers: a survey , 2009 .

[17]  Nancy A. Lynch,et al.  High-level modeling and analysis of TCAS , 1999, Proceedings 20th IEEE Real-Time Systems Symposium (Cat. No.99CB37054).

[18]  Elvira Albert,et al.  Test Data Generation of Bytecode by CLP Partial Evaluation , 2008, LOPSTR.

[19]  Arnaud Gotlieb,et al.  Symbolic execution of floating‐point computations , 2006, Softw. Test. Verification Reliab..