Arnaud Gotlieb - Academia.edu (original) (raw)
Papers by Arnaud Gotlieb
Proceedings of the 1st international workshop on Random testing - RT '06, 2006
Test campaigns usually require only a restricted subset of paths in a program to be thoroughly te... more Test campaigns usually require only a restricted subset of paths in a program to be thoroughly tested. As random testing (RT) offers interesting fault-detection capacities at low cost, we face the problem of building a sequence of random test data that execute only a subset of paths in a program. We address this problem with an original technique based on backward symbolic execution and constraint propagation to generate random test data based on an uniform distribution. Our approach derives path conditions and computes an over-approximation of their associated subdomain to find such a uniform sequence. The challenging problem consists in building efficiently a path-oriented random test data generator by minimizing the number of rejects within the generated random sequence. Our first experimental results, conducted over a few academic examples, clearly show a dramatic improvement of our approach over classical random testing.
Arrays are ubiquitous in the context of software verification. However, effective reasoning over ... more Arrays are ubiquitous in the context of software verification. However, effective reasoning over arrays is still rare in CP, as local reasoning is dramatically ill-conditioned for constraints over arrays. In this paper, we propose an approach combining both global symbolic reasoning and local filtering in order to solve constraint systems involving arrays (with accesses, updates and size constraints) and finite-domain constraints over their elements and indexes. Our approach, named fdcc, is based on a combination of a congruence closure algorithm for the standard theory of arrays and a CP solver over finite domains. The tricky part of the work lies in the bi-directional communication mechanism between both solvers. We identify the significant information to share, and design ways to master the communication overhead. Experiments on random instances show that fdcc solves more formulas than any portfolio combination of the two solvers taken in isolation, while overhead is kept reasonable.
Path-oriented Random Testing (PRT) aims at generating a uniformly spread out sequence of random t... more Path-oriented Random Testing (PRT) aims at generating a uniformly spread out sequence of random test data that execute a single control flow path within a program. The main challenge of PRT lies in its ability to build efficiently such a test suite in order to minimize the number of rejects (test data that execute another control flow path). We address this problem with an original divide-and-conquer approach based on constraint reasoning over finite domains, a well-recognized Constraint Programming technique. Our approach first derives path conditions by using backward symbolic execution and computes a tight over-approximation of their associated subdomain by using constraint propagation and constraint refutation. Second, a uniform random test data generator is extracted from this approximated subdomain. We implemented this approach and got experimental results that show the practical benefits of PRT based on constraint reasoning. On average, we got a two-order magnitude CPU time improvement over standard Random Testing on a set of paths extracted from classical benchmark programs.
Constraint programs such as those written in highlevel modeling languages (e.g., OPL [15], ZINC [... more Constraint programs such as those written in highlevel modeling languages (e.g., OPL [15], ZINC [14], or COMET [16]) must be thoroughly verified before being used in applications. Detecting and localizing faults is therefore of great importance to lower the cost of the development of these constraint programs. In a previous work, we introduced a testing framework called CPTEST enabling automated test case generation for detecting non-conformities . In this paper, we enhance this framework to introduce automatic fault localization in constraint programs. Our approach is based on constraint relaxation to identify the constraint that is responsible of a given fault. CPTEST is henceforth able to automatically localize faults in optimized OPL programs. We provide empirical evidence of the effectiveness of this approach on classical benchmark problems, namely Golomb rulers, n-queens, social golfer and car sequencing.
ABSTRACT Constraint programs, such as those written in high-level constraint modelling languages,... more ABSTRACT Constraint programs, such as those written in high-level constraint modelling languages, e.g., OPL (Optimization Programming Language), COMET, ZINC or ESSENCE, are more and more used in business-critical programs. As any other critical programs, they require to be thoroughly tested and corrected to prevent catastrophic loss of money. This paper presents a framework for the automatic correction of constraint programs that takes into account the specificity of the software development process of these programs as well as their typical faults. We implemented this framework in our testing platform CPTEST for OPL programs. Using mutation testing, our experimental results show that well-known constraint programs written in OPL can be automatically corrected using our framework.
ieeexplore.ieee.org, 2002
Johannes Mayer, Ulm University, Germany Sami Beydeda, ZIVIT, Germany ... Jamie Andrews, Universit... more Johannes Mayer, Ulm University, Germany Sami Beydeda, ZIVIT, Germany ... Jamie Andrews, University of Western Ontario, Canada Luciano Baresi, Politecnico di Milano, Italy Fevzi Belli, University of Paderborn, Germany WK Chan, City University of Hong Kong, Hong Kong Yoonsik Cheon, The University of Texas at El Paso, USA Phyllis Frankl, Polytechnic University, Brooklyn, USA Arnaud Gotlieb, IRISA - INRIA, France Dick Hamlet, Portland State University, USA Fei-Ching Kuo, Swinburne University of Technology, Australia Peter ...
Proceedings of the 1st international workshop on Random testing - RT '06, 2006
Test campaigns usually require only a restricted subset of paths in a program to be thoroughly te... more Test campaigns usually require only a restricted subset of paths in a program to be thoroughly tested. As random testing (RT) offers interesting fault-detection capacities at low cost, we face the problem of building a sequence of random test data that execute only a subset of paths in a program. We address this problem with an original technique based on backward symbolic execution and constraint propagation to generate random test data based on an uniform distribution. Our approach derives path conditions and computes an over-approximation of their associated subdomain to find such a uniform sequence. The challenging problem consists in building efficiently a path-oriented random test data generator by minimizing the number of rejects within the generated random sequence. Our first experimental results, conducted over a few academic examples, clearly show a dramatic improvement of our approach over classical random testing.
Arrays are ubiquitous in the context of software verification. However, effective reasoning over ... more Arrays are ubiquitous in the context of software verification. However, effective reasoning over arrays is still rare in CP, as local reasoning is dramatically ill-conditioned for constraints over arrays. In this paper, we propose an approach combining both global symbolic reasoning and local filtering in order to solve constraint systems involving arrays (with accesses, updates and size constraints) and finite-domain constraints over their elements and indexes. Our approach, named fdcc, is based on a combination of a congruence closure algorithm for the standard theory of arrays and a CP solver over finite domains. The tricky part of the work lies in the bi-directional communication mechanism between both solvers. We identify the significant information to share, and design ways to master the communication overhead. Experiments on random instances show that fdcc solves more formulas than any portfolio combination of the two solvers taken in isolation, while overhead is kept reasonable.
Path-oriented Random Testing (PRT) aims at generating a uniformly spread out sequence of random t... more Path-oriented Random Testing (PRT) aims at generating a uniformly spread out sequence of random test data that execute a single control flow path within a program. The main challenge of PRT lies in its ability to build efficiently such a test suite in order to minimize the number of rejects (test data that execute another control flow path). We address this problem with an original divide-and-conquer approach based on constraint reasoning over finite domains, a well-recognized Constraint Programming technique. Our approach first derives path conditions by using backward symbolic execution and computes a tight over-approximation of their associated subdomain by using constraint propagation and constraint refutation. Second, a uniform random test data generator is extracted from this approximated subdomain. We implemented this approach and got experimental results that show the practical benefits of PRT based on constraint reasoning. On average, we got a two-order magnitude CPU time improvement over standard Random Testing on a set of paths extracted from classical benchmark programs.
Constraint programs such as those written in highlevel modeling languages (e.g., OPL [15], ZINC [... more Constraint programs such as those written in highlevel modeling languages (e.g., OPL [15], ZINC [14], or COMET [16]) must be thoroughly verified before being used in applications. Detecting and localizing faults is therefore of great importance to lower the cost of the development of these constraint programs. In a previous work, we introduced a testing framework called CPTEST enabling automated test case generation for detecting non-conformities . In this paper, we enhance this framework to introduce automatic fault localization in constraint programs. Our approach is based on constraint relaxation to identify the constraint that is responsible of a given fault. CPTEST is henceforth able to automatically localize faults in optimized OPL programs. We provide empirical evidence of the effectiveness of this approach on classical benchmark problems, namely Golomb rulers, n-queens, social golfer and car sequencing.
ABSTRACT Constraint programs, such as those written in high-level constraint modelling languages,... more ABSTRACT Constraint programs, such as those written in high-level constraint modelling languages, e.g., OPL (Optimization Programming Language), COMET, ZINC or ESSENCE, are more and more used in business-critical programs. As any other critical programs, they require to be thoroughly tested and corrected to prevent catastrophic loss of money. This paper presents a framework for the automatic correction of constraint programs that takes into account the specificity of the software development process of these programs as well as their typical faults. We implemented this framework in our testing platform CPTEST for OPL programs. Using mutation testing, our experimental results show that well-known constraint programs written in OPL can be automatically corrected using our framework.
ieeexplore.ieee.org, 2002
Johannes Mayer, Ulm University, Germany Sami Beydeda, ZIVIT, Germany ... Jamie Andrews, Universit... more Johannes Mayer, Ulm University, Germany Sami Beydeda, ZIVIT, Germany ... Jamie Andrews, University of Western Ontario, Canada Luciano Baresi, Politecnico di Milano, Italy Fevzi Belli, University of Paderborn, Germany WK Chan, City University of Hong Kong, Hong Kong Yoonsik Cheon, The University of Texas at El Paso, USA Phyllis Frankl, Polytechnic University, Brooklyn, USA Arnaud Gotlieb, IRISA - INRIA, France Dick Hamlet, Portland State University, USA Fei-Ching Kuo, Swinburne University of Technology, Australia Peter ...