This paper presents Irulan, a fully automatic tool designed to perform systematic gray-box unit testing of Haskell libraries. Through automatic code generation and execution, Irulan checks if there are any possible uses of a library's API that cause uncaught exceptions to be thrown. If such cases are found, Irulan returns a Haskell expression that triggers the error, to help programmers debug and fix their code. Irulan supports (and takes advantage of) the most important features of the Haskell language, such as lazy evaluation and polymorphism. In addition, it uses various exploration strategies and caching to more effectively explore the state space of the programs under testing. We evaluate Irulan on over 50 benchmarks from the nofib suite and show that it can effectively generate high-coverage test suites and find errors in these programs.
pubs.doc.ic.ac.uk: built & maintained by Ashok Argent-Katwala.