Foundations of logic programming; (2nd extended ed.)
Foundations of logic programming; (2nd extended ed.)
Constraint-Based Automatic Test Data Generation
IEEE Transactions on Software Engineering
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Unfolding-definition-folding, in this order, for avoiding unnecessary variables in logic programs
PLILP '91 Selected papers of the symposium on Programming language implementation and logic programming
Korat: automated testing based on Java predicates
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
A CLP Framework for Computing Structural Test Data
CL '00 Proceedings of the First International Conference on Computational Logic
Generating Test Data for Functions with Pointer Inputs
Proceedings of the 17th IEEE international conference on Automated software engineering
Efficient groundness analysis in Prolog
Theory and Practice of Logic Programming
Test input generation with java PathFinder
ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
Software Assurance by Bounded Exhaustive Testing
IEEE Transactions on Software Engineering
Automatic testing of software with structurally complex inputs
Automatic testing of software with structurally complex inputs
Korat: A Tool for Generating Structurally Complex Test Inputs
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Automatic Test Generation for Dynamic Data Structures
SERA '07 Proceedings of the 5th ACIS International Conference on Software Engineering Research, Management & Applications
Optimizing Generation of Object Graphs in Java PathFinder
ICST '09 Proceedings of the 2009 International Conference on Software Testing Verification and Validation
WS-TAXI: A WSDL-based Testing Tool for Web Services
ICST '09 Proceedings of the 2009 International Conference on Software Testing Verification and Validation
Journal of Experimental & Theoretical Artificial Intelligence
Introduction to Algorithms, Third Edition
Introduction to Algorithms, Third Edition
Modelling dynamic memory management in constraint-based testing
Journal of Systems and Software
Test generation through programming in UDITA
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Test case generation for object-oriented imperative languages in clp*
Theory and Practice of Logic Programming
Incorporating coverage criteria in bounded exhaustive black box test generation of structural inputs
TAP'11 Proceedings of the 5th international conference on Tests and proofs
Towards a framework for constraint-based test case generation
LOPSTR'09 Proceedings of the 19th international conference on Logic-Based Program Synthesis and Transformation
TestEra: A tool for testing Java programs using alloy specifications
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Hi-index | 0.00 |
The goal of Bounded-Exhaustive Testing (BET) is the automatic generation of all the test cases satisfying a given invariant, within a given bound. When the input has a complex structure, the development of correct and efficient generators becomes a very challenging task. In this paper we use Constraint Logic Programming (CLP) to systematically develop generators of structurally complex test data. Similarly to filtering-based test generation, we follow a declarative approach which allows us to separate the issue of (i) defining the test structure and invariant, from that of (ii) generating admissible test input instances. This separation helps improve the correctness of the developed test case generators. However, in contrast with filtering approaches, we rely on a symbolic representation and we take advantage of efficient search strategies provided by CLP systems for generating test instances. Through some experiments on examples taken from the literature on BET, we show that CLP, by combining the use of constraints and recursion, allows one to write intuitive and easily understandable test generators. We also show that these generators can be much more efficient than those built using ad-hoc filtering-based test generation tools like Korat.