AGATA - Random generation of test data
Abstract
Agata Generates Algebraic Types Automatically. The generated data can be used to
perform property based testing with the Haskell testing framework QuickCheck, or the
alternative framework SmallCheck. Unlike regular QuickCheck generators, Agata
generators are mechanically derivable from the definition of an algebraic data type.
Agata moves all logic from the individual generators into a customizable wrapper
function. This enables user-side reconfiguration of generators without rewriting their
source code.
Agata uses a novel definition of size. This resolves the scalability issues of
QuickCheck, associated with generating collection-type data-structures. Experimental
results demonstrate the existence of properties falsifiable by Agata but not by
QuickCheck nor SmallCheck
Automation and suitability for collection-type structures make Agata ideal for
parser testing. Agata is implemented as an extension of the BNFC parser generator.
Experimental results demonstrates the usability of this tool, discovering several errors
in published software.
Degree
Student essay
Collections
View/ Open
Date
2010-03-08Author
Almström-Duregård, Jonas
Series/Report no.
2009
67
Language
eng