Heuristics for generating good examples using QuickCheck - Ivarsson, Sebastian (My University, 2016)
As software systems grow more complex, the need for advanced testing grows with them. To thoroughly test modern software, automated tools are often used to relieve developers of the manual labour of writing tests. This thesis seeks to improve one such tool, QuickCheck, more specifically the Erlang version from Quviq AB. In a recent research project an extension to QuickCheck was developed at Quviq and Chalmers, in the form of a prototype tool called FindExamples. The purpose of the tool is to generate interesting examples of the behaviour of a program from a state machine specification using a heuristic. In this thesis, the tool has been refined to be easier to use, and integrated into one of Quviq’s products, QuickCheck CI. Furthermore, the heuristic used by the tool to select good examples has been analyzed, and a few new alternatives have been proposed and tested. A combination of these new ideas along with the original heuristic has shown some promise, both in testing during development and in a small experiment involving 22 students using examples to predict the output of a program. In the experiment, the participants using the examples generated by the developed heuristic were able to outperform those given a set of examples generated with full expression coverage.
Keywords: Informations- och kommunikationsteknik; Data- och informationsvetenskap; Information & Communication Technology; Computer and Information Science