diff options
Diffstat (limited to 'assignments')
-rw-r--r-- | assignments/assignment1.tex | 93 |
1 files changed, 93 insertions, 0 deletions
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} |