< Back to previous page

Publication

Automatic generation of test inputs for Mercury

Book Contribution - Book Chapter Conference Contribution

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. In our approach, we use CHR to solve the constraints and generate the corresponding test inputs. The method allows for algorithms constructing sets of paths (and hence the corresponding test inputs) guided by well-known test coverage criteria addressing structural properties of the code such as statement, branch or path coverage. 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.
Book: Pre-Proceedings of the 18th International Symposium on Logic-Based Program Synthesis and Transformation
Pages: 104 - 120
Publication year:2008