summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore263
-rw-r--r--assignment1.tex21
-rw-r--r--assignments/assignment1.tex93
-rw-r--r--src/.gitignore3
4 files changed, 356 insertions, 24 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d7ae254
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,263 @@
+
+# Created by https://www.gitignore.io/api/vim,latex,haskell
+
+### Haskell ###
+dist
+dist-*
+cabal-dev
+*.o
+*.hi
+*.chi
+*.chs.h
+*.dyn_o
+*.dyn_hi
+.hpc
+.hsenv
+.cabal-sandbox/
+cabal.sandbox.config
+*.prof
+*.aux
+*.hp
+*.eventlog
+.stack-work/
+cabal.project.local
+.HTF/
+
+### LaTeX ###
+## Core latex/pdflatex auxiliary files:
+*.lof
+*.log
+*.lot
+*.fls
+*.out
+*.toc
+*.fmt
+*.fot
+*.cb
+*.cb2
+
+## Intermediate documents:
+*.dvi
+*.xdv
+*-converted-to.*
+# these rules might exclude image files for figures etc.
+# *.ps
+# *.eps
+*.pdf
+
+## Generated if empty string is given at "Please type another file name for output:"
+.pdf
+
+## Bibliography auxiliary files (bibtex/biblatex/biber):
+*.bbl
+*.bcf
+*.blg
+*-blx.aux
+*-blx.bib
+*.run.xml
+
+## Build tool auxiliary files:
+*.fdb_latexmk
+*.synctex
+*.synctex(busy)
+*.synctex.gz
+*.synctex.gz(busy)
+*.pdfsync
+*Notes.bib
+
+## Auxiliary and intermediate files from other packages:
+# algorithms
+*.alg
+*.loa
+
+# achemso
+acs-*.bib
+
+# amsthm
+*.thm
+
+# beamer
+*.nav
+*.pre
+*.snm
+*.vrb
+
+# changes
+*.soc
+
+# cprotect
+*.cpt
+
+# elsarticle (documentclass of Elsevier journals)
+*.spl
+
+# endnotes
+*.ent
+
+# fixme
+*.lox
+
+# feynmf/feynmp
+*.mf
+*.mp
+*.t[1-9]
+*.t[1-9][0-9]
+*.tfm
+
+#(r)(e)ledmac/(r)(e)ledpar
+*.end
+*.?end
+*.[1-9]
+*.[1-9][0-9]
+*.[1-9][0-9][0-9]
+*.[1-9]R
+*.[1-9][0-9]R
+*.[1-9][0-9][0-9]R
+*.eledsec[1-9]
+*.eledsec[1-9]R
+*.eledsec[1-9][0-9]
+*.eledsec[1-9][0-9]R
+*.eledsec[1-9][0-9][0-9]
+*.eledsec[1-9][0-9][0-9]R
+
+# glossaries
+*.acn
+*.acr
+*.glg
+*.glo
+*.gls
+*.glsdefs
+
+# gnuplottex
+*-gnuplottex-*
+
+# gregoriotex
+*.gaux
+*.gtex
+
+# hyperref
+*.brf
+
+# knitr
+*-concordance.tex
+# TODO Comment the next line if you want to keep your tikz graphics files
+*.tikz
+*-tikzDictionary
+
+# listings
+*.lol
+
+# makeidx
+*.idx
+*.ilg
+*.ind
+*.ist
+
+# minitoc
+*.maf
+*.mlf
+*.mlt
+*.mtc[0-9]*
+*.slf[0-9]*
+*.slt[0-9]*
+*.stc[0-9]*
+
+# minted
+_minted*
+*.pyg
+
+# morewrites
+*.mw
+
+# nomencl
+*.nlo
+
+# pax
+*.pax
+
+# pdfpcnotes
+*.pdfpc
+
+# sagetex
+*.sagetex.sage
+*.sagetex.py
+*.sagetex.scmd
+
+# scrwfile
+*.wrt
+
+# sympy
+*.sout
+*.sympy
+sympy-plots-for-*.tex/
+
+# pdfcomment
+*.upa
+*.upb
+
+# pythontex
+*.pytxcode
+pythontex-files-*/
+
+# thmtools
+*.loe
+
+# TikZ & PGF
+*.dpth
+*.md5
+*.auxlock
+
+# todonotes
+*.tdo
+
+# easy-todo
+*.lod
+
+# xindy
+*.xdy
+
+# xypic precompiled matrices
+*.xyc
+
+# endfloat
+*.ttt
+*.fff
+
+# Latexian
+TSWLatexianTemp*
+
+## Editors:
+# WinEdt
+*.bak
+*.sav
+
+# Texpad
+.texpadtmp
+
+# Kile
+*.backup
+
+# KBibTeX
+*~[0-9]*
+
+# auto folder when using emacs and auctex
+/auto/*
+
+# expex forward references with \gathertags
+*-tags.tex
+
+### Vim ###
+# swap
+[._]*.s[a-v][a-z]
+[._]*.sw[a-p]
+[._]s[a-v][a-z]
+[._]sw[a-p]
+# session
+Session.vim
+# temporary
+.netrwhist
+*~
+# auto-generated tag files
+tags
+
+# End of https://www.gitignore.io/api/vim,latex,haskell
diff --git a/assignment1.tex b/assignment1.tex
deleted file mode 100644
index d66e376..0000000
--- a/assignment1.tex
+++ /dev/null
@@ -1,21 +0,0 @@
-\documentclass{scrartcl}
-
-\usepackage{listings}
-
-\title{Testing Techniques\\Assignment 1}
-\author{Ren\`e den Hertog - s1007823\\Camil Staps - s4498062\\Erin van der Veen - s4431200}
-
-\begin{document}
-\section{SUT Description}
-\begin{description}
- \item[Name] Chess.hs
- \item[Software Environment] Linux, and any other environment supported by Haskell
- \item[Hardware Platform] Desktop PC, and any other platform supported by Haskell
- \item[Latest Version Number] 0.2.1
-\end{description}
-
-Starting the SUT requires being able to compile haskell, typically through the GHC, and having the Chess.hs dependency installed.
-Installing Chess.hs can be done through cabal, using the \lstinline|cabal install chesshs| command.
-Compiling and running is then done through \lstinline|make run|.
-
-\end{document}
diff --git a/assignments/assignment1.tex b/assignments/assignment1.tex
new file mode 100644
index 0000000..cd0a2d0
--- /dev/null
+++ b/assignments/assignment1.tex
@@ -0,0 +1,93 @@
+\documentclass{scrartcl}
+
+\usepackage{listings}
+\usepackage{enumerate}
+
+\title{Testing Techniques\\Assignment 1}
+\author{Ren\'e den Hertog - s1007823\\Camil Staps - s4498062\\Erin van der Veen - s4431200}
+
+\begin{document}
+
+\maketitle
+
+\section{SUT Description}
+\begin{enumerate}
+ \item
+ \begin{description}
+ \item[Name] Chess.hs
+ \item[Software Environment] Linux, and any other environment supported by Haskell
+ \item[Hardware Platform] Desktop PC, and any other platform supported by Haskell
+ \item[Latest Version Number] 0.2.1
+ \end{description}
+
+ \item
+ Starting the SUT requires being able to compile haskell, typically through the GHC, and having the Chess.hs dependency installed.
+ Installing Chess.hs can be done through cabal, using the \lstinline|cabal install chesshs| command.
+ Compiling and running is then done through \lstinline|make run|.
+
+ \item
+ \begin{enumerate}[a)]
+ \item The SUT needs to be provided with a PGN file via stdin.
+ \item Either the result of the game is output to stdout or the SUT outputs an error.
+ \end{enumerate}
+
+ \item
+ The SUT does have a decent chance of containing faults, but the risk is near zero due to the low impact of the of these faults.
+\end{enumerate}
+
+\section{Test goals}
+\begin{enumerate}
+ \setcounter{enumi}{4}
+ \item
+ The documentation of the SUT is defined in two parts.
+ The first part, the chess part, is defined by the rules of the FIDE.\footnote{fide.com/fide/handbook.html}
+ %TODO: Summary
+ The second part, the PGN notation, is defined by the PGN standard.\footnote{saremba.de/chessgml/standards/pgn/pgn-complete.htm}
+ %TODO: Summary
+ \item
+ The parts of the SUT that will be tested will be the entire library and the individual components thereof.
+ This implies that PGN parsing will be tested, as well as the verification part of the library that determines if a move is legal.
+ The function that determines the checkmate position of the game will also be tested.
+ This means, explicitly, that the timing rules, and any other rules of the game of Chess, will not be tested.
+ %TODO: Manual/Automated testing
+ \item
+ Functionality and Reliability.
+\end{enumerate}
+
+\section{Test method}
+\begin{enumerate}
+ \setcounter{enumi}{7}
+ \item
+ Unit, Integration. The scale and the number of sub-components of the project limits us to these types of tests.
+ \item
+ Mostly Black box testing, for the input/output of entire games in pgn notation.
+ %TODO: Fix sentence
+ The functions of the library will also be tested using a White box model.
+ \item
+ \begin{enumerate}[a)]
+ \item
+ For test generation of the black box testing, we will use a mixture of error guessing and the parsing of PGN files in a database.
+ White box testing will be done through statement coverage and branch/condition coverage.
+ \item
+ Equivalence partitioning and boundary value analysis is hard to implement given our SUT, given that all possible chess games are nearly impossible to enumerate.
+ Use case testing is also very hard to test, given that Chess.hs is a library, no user will likely every interact with the library directly.
+ Path coverage and condition coverage are not implemented in Quickcheck, making it substantially harder to implement.
+ \end{enumerate}
+\end{enumerate}
+\section{Test Environment}
+\begin{enumerate}
+ \setcounter{enumi}{10}
+ \item
+ A wrapper written by us will be used to interact with the SUT.
+ \item
+ Tests will be automatically performed using a combination of bash and Quickcheck.
+ \item
+ \begin{enumerate}[a)]
+ \item
+ The software environment GHC 8, Quickcheck 2.10, Linux Debian (derived).
+ The hardware environment is a set of three amd64 laptops.
+ \item
+ A Git repository, the results will be stored in individual files.
+ \end{enumerate}
+\end{enumerate}
+\end{document}
diff --git a/src/.gitignore b/src/.gitignore
deleted file mode 100644
index c181314..0000000
--- a/src/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-*.hi
-*.o
-runchess