summaryrefslogtreecommitdiff
path: root/assignments/assignment3/assignment3.tex
blob: e3e655f2cc78c23b165c2f201c4b44f7315cc6f9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
\documentclass[british]{scrartcl}

\usepackage[british]{babel}
\usepackage{csquotes}
\usepackage{enumerate}
\usepackage[hidelinks]{hyperref}
\usepackage{minted}
\setminted{fontsize=\small,breaklines,breakanywhere,tabsize=4}
\usepackage{caption}
\newenvironment{longlisting}{\captionsetup{type=listing}}{}
\usepackage{tikz}
\usetikzlibrary{arrows, matrix, positioning}
\usepackage{cleveref}

\let\oldurl\url
\def\url#1{{\small\oldurl{#1}}}

\title{Model-Based Testing with QuickCheck}
\subtitle{Testing \texttt{chesshs} with QuickCheck}
\author{Ren\'e den Hertog \and Camil Staps \and Erin van der Veen}

\begin{document}

\maketitle

\section{QuickCheck}
QuickCheck\footnote{\url{http://www.cse.chalmers.se/~rjmh/QuickCheck/}} is a property based testing tool initially created for Haskell.
Given that our SUT is a Haskell library and that QuickCheck is recommended in the assignment, using QuickCheck is nothing but a logical consequence.

\section{Modelling}
As mentioned above QuickCheck is a property based testing tool.
A property based testing tool, like QuickCheck, can test if certain specifications (a list of properties) of a program/function hold.
This testing is done through generating a large sample of test cases, based on a class known as \mintinline{text}{Arbitrary}.

The above implies that a model of the system is given using a specification.
In our case, like we did in the first assignment, we generate games that are fed to the parser.
However, unlike the first assignment, the PGN games that are generated this time, are generated by QuickCheck and are thus completely random.

\end{document}