A polymorphic type system for PROLOG.
Artificial Intelligence
Implementation-based analysis and testing of Prolog programs
ISSTA '93 Proceedings of the 1993 ACM SIGSOFT international symposium on Software testing and analysis
Software unit test coverage and adequacy
ACM Computing Surveys (CSUR)
Automatic test data generation using constraint solving techniques
Proceedings of the 1998 ACM SIGSOFT international symposium on Software testing and analysis
QuickCheck: a lightweight tool for random testing of Haskell programs
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Testing Computer Software
Generating Test Data for Branch Coverage
ASE '00 Proceedings of the 15th IEEE international conference on Automated software engineering
Automatic Test Data Generation for Programs with Integer and Float Variables
Proceedings of the 16th IEEE international conference on Automated software engineering
Test input generation with java PathFinder
ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
Systematic generation of glass-box test cases for functional logic programs
Proceedings of the 9th ACM SIGPLAN international conference on Principles and practice of declarative programming
Development of an Automatic Testing Environment for Mercury
ICLP '08 Proceedings of the 24th International Conference on Logic Programming
Applying constraint logic programming to SQL test case generation
FLOPS'10 Proceedings of the 10th international conference on Functional and Logic Programming
Test-Case generation for maude functional modules
WADT'10 Proceedings of the 20th international conference on Recent Trends in Algebraic Development Techniques
Hi-index | 0.00 |
In this work, we consider the automatic generation of test inputs for Mercury programs. We use an abstract representation of a program that allows to reason about program executions as paths in a control-flow graph. Next, we define how such a path corresponds to a set of constraints whose solution defines input values for the predicate under test such that when the predicate is called with respect to these input values, the execution is guaranteed to follow the given path. The approach is similar to existing work for imperative languages, but has been considerably adapted to deal with the specificities of Mercury, such as symbolic data representation, predicate failure and non-determinism.