@INPROCEEDINGS{Hanus16LOPSTR,
author       = {Hanus, M.},
title        = {CurryCheck: Checking Properties of Curry Programs},
year         = {2017},
booktitle    = {Proceedings of the 26th International Symposium on Logic-Based
                Program Synthesis and Transformation (LOPSTR 2016)},
pages        = {222-239},
publisher    = {Springer LNCS 10184},
abstract = {
We present CurryCheck, a tool to automate the testing of programs
written in the functional logic programming language Curry.
CurryCheck executes unit tests as well as property tests which
are parameterized over one or more arguments.  CurryCheck tests
properties by systematically enumerating test cases so that, for
smaller finite domains, CurryCheck can actually prove properties.
Unit tests and properties can be defined in a Curry module
without being exported.  Thus, they are also useful to document
the intended semantics of the source code.  Furthermore,
CurryCheck also supports the automated checking of specifications
and contracts occurring in source programs.  Hence, CurryCheck is
a useful tool that contributes to the property- and
specification-based development of reliable and well tested
declarative programs.
}
}

