\documentclass[signature]{deltares_manual}
\usepackage[titletoc]{appendix}
\usepackage{lscape}
\usepackage{wasysym}

\renewcommand\BackgroundPicChapter{
    \put(0,0){
    \parbox[b][\paperheight]{\paperwidth}{%
        \vspace{4\baselineskip}
        \hspace{220mm}
        \includegraphics[width=15mm]{pictures/Ribbon.pdf}%
        \vfill
        }
    }
}

\renewcommand{\contactsalesandsupport}{
	\textbf{Contact:}\\
	\begin{tabular}[t]{@{}p{0.50\textwidth}p{0.50\textwidth}}
	\vspace*{-1.5\baselineskip}
	\begin{tabbing}
	Helpdesk Water  \\
	Rijkswaterstaat WVL \\
	P.O. 2232 \\
	3500 GE Utrecht \\
	The Netherlands \\
	\end{tabbing}
	&
	\vspace*{-1.5\baselineskip}
	\begin{tabbing}
	telephone: \= +31\,88\,797\,7102 \\
	www:       \> http://www.helpdeskwater.nl \\
	\end{tabbing}
	\end{tabular}
}

%
%------------------------------------------------------------------------------
%
\begin{document}
\pagestyle{empty}
\includepdf[pages=1, offset=72 -70]{pictures/D-SoilModel-TestReport.pdf} % links-rechts past precies
\cleardoublepage

\newcommand{\ProgramNamePlusSpace}{D-Soil~Model\xspace}
\newcommand{\ProgramName}{D-Soil~Model}
\newcommand{\OK}{\LARGE \textcolor[rgb]{0.2,0.8,0.2}{\textbf{\smiley}} \normalsize}
\newcommand{\OKbut}{\LARGE \textcolor[rgb]{1,0.68,0.36}{\textbf{\smiley}} \normalsize}
\newcommand{\NotOK}{\LARGE \textcolor[rgb]{1,0,0}{\textbf{\frownie}} \normalsize}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%      IMPORTANT : THE COMMANDS BELOW MUST BE      %%%%%%%%%%%%%
%%%%%%%%%%%%%          UPDATED FOR EACH NEW RELEASE            %%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\VersionNumberPlusSpace}{\VersionNumber\xspace}
\newcommand{\VersionNumber}{16.1.3.718}
\newcommand{\VersionDSLCore}{16.1.3.1188}
\newcommand{\VersionDSLFormsGeo}{16.1.3.1236}
\newcommand{\VersionDSLFormsMap}{16.1.3.1326}
\newcommand{\VersionDSLFormsStandard}{16.1.3.1321}
\newcommand{\VersionDSLGeo}{16.1.3.1301}
\newcommand{\VersionDSLGeographic}{16.1.3.1207}
\newcommand{\VersionDSLGeoIO}{16.1.3.1313}
\newcommand{\VersionDSLProba}{16.1.3.1205}
\newcommand{\VersionDGSGef}{16.1.1.3}
\newcommand{\VersionGefTwee}{3.1.2.1002}
\newcommand{\VersionDevExpress}{12.2.13.0}
\newcommand{\VersionDotSpatial}{1.8.0.0}

\newcommand{\DirectoyPDFTestDocument}{../../../test/DSoilModel-TestDocumenten}
\newcommand{\FileNamePDFTestDocument}{Testdocument_DSoilModel_16_1_3_718.pdf}



\title{\ProgramName}
\subtitle{}
\manualtype{Test Report for version \VersionNumber}
\version{1.0}
\date{Augustus 2016}


\client{RWS}
\projectnumber{1230088-026}
\reference{1230088-026-DSC-0006}
\classification{-}

\keywords{WTI2017, Stochastic subsoil schematization, soil profile, soil properties, macro stability, piping, flow slide}

%\references{Refer to \autoref{chp:References}.}
\references{}

\summary{This document contains the test report for \ProgramNamePlusSpace \VersionNumber. All the unit tests performed for the validation of \ProgramNamePlusSpace pass and cover 67.4\% of the code, so more than the minimum required code coverage of 60\% for Delta Shell Light products. All the features of \ProgramNamePlusSpace were tested during the user interface testing (using test scripts) and work as expected. All the `must-have' and `non-functional' requirements are implemented and met. The functioning of \ProgramNamePlusSpace as described in the Functional Design is therefore  ensured.

\textbf{\footnotesize{Samenvatting}} \newline
Dit document bevat het test rapport voor \ProgramNamePlusSpace \VersionNumber. Alle uitgevoerde 'unit tests' voor de validatie van \ProgramNamePlusSpace slagen en dekken 67.4\% van de code, dus meer dan de minimaal vereiste code dekking van 60\% voor Delta Shell Light producten. Alle functionaliteit van \ProgramNamePlusSpace werd getest tijdens de 'user interface' testen (met behulp van testscripts) en werkt zoals verwacht. Alle `must-have' en `niet-functionele' requirements zijn geimplementeerd en voldoen. De werking van \ProgramName, zoals beschreven in het functioneel ontwerp, is daarom gewaarborgd.}

\authori{dr. V. Trompille}
\revieweri{dr.ir. J.G. van \newline Putten}
\approvali{ir. J. Icke}
\versioni{1.0}
\datei{Aug. 2016}

\status{final}

\deltarestitle

%------------------------------------------------------------------------------
\chapter{Introduction} \label{chapter1}

\section{Purpose and scope of this document} \label{sec:1.1}

This document contains the Test Report for \ProgramName. 

The document will not give any background on the context of the WTI project. For this purpose the reader is referred to the WTI2017 and to its supporting technical reports and their background reports underneath (\autoref{sec:1.2}). 

This document will not describe how the requirements of the functional design are implemented in the program.

This document describes the results of the tests that must take place before the program can be released. The tests must ensure that all the requirements are fulfilled with and that the quality of the program is sufficient. This document reports the success or failure of the relevant tests.

\section{Other system documents} \label{sec:1.2}

The full documentation on the program comprises the following documents.

\begin{table}[H]
%\caption{xxx}
%\label{xxx}
\begin{tabular}{|p{46mm}|p{\textwidth-46mm-24pt}|} \hline 
\textbf{Title} & \textbf{Content} \\ \hline
Functional Design \newline \citep{DSoilModel_FunctionalDesign} & Description of the requirements and functional design of \ProgramName. \\ \hline
Technical Design \newline \citep{DSoilModel_TechnicalDesign} & Description of the implementation of the technical design of \ProgramName. \\ \hline
Programmers documentation & Description of the arguments and usage of different software components, generated from in-line comment with Doxygen. \\ \hline
Test Plan \newline \citep{DSoilModel_TestPlan} & Description of the different regression and acceptation tests, including target values.  \\ \hline
Test Report \newline (this document) & Description of the test results (incl. test scripts). \\ \hline
User Manual \newline \citep{DSoilModel_Manual} & Description of the different functionalities available in the \textit{User Interface} and background information. \\ \hline
\end{tabular}
\end{table}


\section{Requirements} \label{sec:1.3}

\subsection{Non-functional requirements}

In \autoref{tab:NFREQs}, the non-functional requirements of \ProgramNamePlusSpace are enumerated. Note that only the requirements applicable to the testing of the program are listed. The full description of non-functional requirements of \ProgramNamePlusSpace can be found in the Functional Design of \ProgramNamePlusSpace \citep{DSoilModel_FunctionalDesign}.

\begin{table}[H]
\caption{Non-functional requirements \ProgramNamePlusSpace applicable to testing} \label{tab:NFREQs} 
\begin{tabular}{|p{15mm}|p{\textwidth-15mm-24pt}|} \hline 
\rowcolor[gray]{.8}\textbf{Nr.} & \textbf{Description requirement} \\ \hline
%NFR 2 & The regular conventions, standards, tools and libraries for Deltares Systems software will be used. (must have).
%NFR & Data definitions will follow existing and emerging standards such as IRIS as much as possible. (must have). Where possible emerging standards will be followed. For geometry a format has been used since the start of the development of Ringtoets which remained unchanged. \\ \hline
%NFR 12 & The user-interface may not cause crashes during regular usage. (must have) \\ \hline
%NFR 14 & Consistency between the input data and the output data must be guaranteed. (must have) \\ \hline
%NFR 15 & ''De generieke code coverage wordt gesteld op 80\%, met uitzondering van de Delta Shell Light componenten, waarvoor een code coverage van 60\% zal worden gehanteerd.'' \\ \hline
R13 & Software product wordt getest conform test afspraken (dus inhoudelijke test en acceptatietest). Er is voor elke productie stap een helder testplan, in de testen wordt aangetoond dat de functionaliteit is gerealiseerd. \\ \hline 
U124 & De WTI Software moet robuust zijn voor kleine variaties in de invoer. Onder 'robuust' wordt verstaan: nooit een software crash. Dus: ofwel een melding dat invoer onjuist is, ofwel een melding dat een som niet convergeert, ofwel een antwoord retourneert. \\ \hline
U131 & Om de bibliotheken te kunnen testen levert elke bibliotheek testsoftware mee in de vorm van unit tests. \\ \hline 
U133 & De WTI tools worden standaard alleen uitgeleverd met een Nederlandstalige UI en met Nederlandstalige meldingen en rapportages. \\ \hline 
\end{tabular}
\end{table}


\subsection{Functional requirements}

In \autoref{tab:REQs}, the functional requirements of \ProgramNamePlusSpace are ranked from must-have to won't-have. The full description of the requirements can be found in the Functional Design of \ProgramNamePlusSpace \citep{DSoilModel_FunctionalDesign}.

\begin{longtable}{|p{20mm}|p{1.05\textwidth-40mm-36pt}|p{20mm}|}
\caption{Functional requirements of \ProgramNamePlusSpace} \label{tab:REQs} \\ \hline 
\rowcolor[gray]{.8}\textbf{Nr.} & \textbf{Description requirement} & \textbf{MoSCoW} \\ \hline
REQ 3.1 & Import data. & must-have \\ \hline
REQ 3.3 & Select relevant SOS information for project & must-have \\ \hline
REQ 5.1 & Supply the subsoil schematization  and -parameters  for the WTI macro stability kernel & must-have \\ \hline
REQ 5.2 & Supply the subsoil schematization and -parameters for the WTI piping kernel. & must-have \\ \hline
REQ 5.4 & All relevant subsoil information & must-have \\ \hline
REQ 6.1 & Stochastic characterization of the variables & must-have \\ \hline
REQ 6.3 & Separate segments for each failure mechanism & must-have \\ \hline
REQ 6.4 & Definition of the location of the 1D profile for Piping and DFlowSlide & must-have \\ \hline
REQ 6.5 & Profile properties & must-have \\ \hline
REQ 6.6 & Layer properties & must-have \\ \hline
REQ 7.1 & Stochastic subsoil information & must-have \\ \hline
REQ 8.2 & Table view for soil parameters & must-have \\ \hline
REQ 8.4 & Profile view to modify soil profiles & must-have \\ \hline
REQ 8.6 & Show segments with labels & must-have \\ \hline
REQ 8.10 & 1D Scenario overview & must-have \\ \hline
REQ 8.13 & Show SOS scenario's in 2D profiles & must-have \\ \hline
REQ 9.1 & Name soil materials & must-have \\ \hline
REQ 9.2 & Edit the chances of a SOS scenario & must-have \\ \hline
REQ 9.3 & Turn a 1D profile into a 2D profile & must-have \\ \hline
REQ 9.4 & Draw 2D sti files & must-have \\ \hline
REQ 9.5 & Have reference points to draw surface lines on 2D profiles & must-have \\ \hline
REQ 9.7 & Define soil layers & must-have \\ \hline
REQ 9.8 & Allocate soil material to layer & must-have \\ \hline
REQ 9.9 & Define layer as aquifer or aquitard & must-have \\ \hline
REQ 9.10 & Enter yield stresses for macro stability & must-have \\ \hline
REQ 9.12 & Modify the location of de borehole or CPT in the 2D profile. & must-have \\ \hline
REQ 9.14 & Minimal validity check on the data & must-have \\ \hline
REQ 9.18(a) & Add another 1D profile to an existing 2D profile & must-have \\ \hline
REQ 9.20 & Incorporate settlements underneath an embankment & must-have \\ \hline
REQ 9.23 & Import soil area's and segments & must-have \\ \hline
REQ 3.2 & Import and view all SOS data & should-have \\ \hline
REQ 3.4 & Import relevant reference data & should-have \\ \hline
REQ 7.2 & Allocation of CPT's and boreholes to a segment & should-have \\ \hline
REQ 7.3 & Overview of all available borings and CPT's in a segment or cross section & should-have \\ \hline
REQ 7.4 & Overview of all available SOS scenario's in a segment & should-have \\ \hline
REQ 8.7 & Show all soil investigation with labels in map view & should-have \\ \hline
REQ 8.8 & Visualize the surface lines with their characteristic points & should-have \\ \hline
REQ 8.12 & Show data from AHN or a WMS server, or other shape files & should-have \\ \hline
REQ 8.14 & Draw SOS profiles in one segment on the same height for comparison & should-have \\ \hline
REQ 8.15 & Show ground investigation simultaneously to REQ 39 at the same reference level & should-have \\ \hline
REQ 8.16 & Compatibility between different views & should-have \\ \hline
REQ 8.17 & Visibility of yield stress & should-have \\ \hline
REQ 9.11 & Copy/ paste segments for one failure mechanism to the next & should-have \\ \hline
REQ 9.21 & Visualize minimum and maximum of layer boundaries from the SOS data & should-have \\ \hline
REQ 9.24 & Table import/export & should-have \\ \hline
REQ 5.3 & Supply the subsoil schematization and -parameters for the WTI flow slide kernel. & nice-to-have \\ \hline
REQ 6.2 & Determination of soil parameters & nice-to-have \\ \hline
REQ 8.1 & Reference line & nice-to-have \\ \hline
REQ 8.3 & Map view for soil area's & nice-to-have \\ \hline
REQ 8.5 & Automatically project boreholes and CPT onto a cross section & nice-to-have \\ \hline
REQ 8.11 & View Gef files with GefPlotTool & nice-to-have \\ \hline
REQ 9.6 & Interpretation tools & nice-to-have \\ \hline
REQ 9.13 & Logging of all changes to the database & nice-to-have \\ \hline
REQ 9.15 & Extensive validity check on the data for Ringtoets & nice-to-have \\ \hline
REQ 9.16 & Define n and gamma per material parameter for determination of design values & nice-to-have \\ \hline
REQ 9.17 & Store lab data & nice-to-have \\ \hline
REQ 9.18(b) & The user must be able to build a 2D schematization based on multiple 1D profiles. & nice-to-have \\ \hline
REQ 9.19 & Draw a new subsoil configuration & nice-to-have \\ \hline
REQ 9.22 & Longitudinal cut based on dike material & nice-to-have \\ \hline
REQ 4.1 & Existing M-Soil Base functionality & won't have \\ \hline
\end{longtable}

\section{Libraries}

\ProgramNamePlusSpace version \VersionNumberPlusSpace was released with the following libraries:
\begin{itemize}
	\item Delta Shell Light libraries:
		\begin{itemize}
			\item DSL--Core \VersionDSLCore
			\item DSL--FormsGeo \VersionDSLFormsGeo
			\item DSL--FormsMap \VersionDSLFormsMap
			\item DSL--FormsStandard \VersionDSLFormsStandard
			\item DSL--Geo \VersionDSLGeo
			\item DSL--Geographic \VersionDSLGeographic
			\item DSL--GeoIO \VersionDSLGeoIO
			\item DSL--Probabilistic \VersionDSLProba
	\end{itemize}
	\item Other Deltares libraries:
	\begin{itemize}
		\item DGS Gef \VersionDGSGef
		\item Gef 2 \VersionGefTwee
	\end{itemize}
	\item Other libraries:
		\begin{itemize}
			\item Dev Express \VersionDevExpress
			\item Dot Spatial \VersionDotSpatial
	\end{itemize}
\end{itemize}

%------------------------------------------------------------------------------
\chapter{Component and Integration Testing} \label{chapter2}

The tests on code level are the unit tests. For each relevant function, a unit test is defined within the C\# solution. A relevant function is a function that actually performs part of the calculation, validation or I/O of the core. Properties and purely administrational functions do not have unit tests.

The tests on functional level are the integration tests. These types of tests combine multiple functions in the kernel to prove that high level functionality works. For this, a unit test is defined within the C\# solution for each method with high level functionality.

To obtain a single code coverage, it is convenient to combine unit and integration tests, 98 in total. For these tests, see the C\# solution or the build server.

These tests are considered to be ok when the unit tests pass and when the code coverage of those tests is more than 60\%, as prescribed in \cite{OverallTestPlanWTI} for Delta Shell Light products.


\section{Number of unit/integration tests and status} \label{sec:2.1}

Different unit tests exist as reported in the table below. All unit/integration tests succeed.

\begin{table}[H]
\caption{Overview of the unit tests and integration tests for \ProgramName}
\label{tab:2-1}
\renewcommand{\arraystretch}{1.3}
\begin{tabular}{|p{\textwidth-40mm-36pt}|p{20mm}|p{20mm}|} \hline
\rowcolor[gray]{.8}\textbf{Class name} & \textbf{Number} & \textbf{Failed} \\ \hline
\multicolumn{3}{|p{120mm}|}{\textbf{\textit{Namespace: Deltares.DSoilModel.Data.Tests}}} \\ \hline
SosSoilLayer1DTest & 5 & 0 \\
DSoilModelIOTest & 22 & 0 \\
CenterCrestLocationTest & 2 & 0 \\
SosSoilProfilesImporterTests &  7 & 0 \\ 
DSoilModelDataSourceRedirestorTests & 19 & 0 \\ 
DSoilModelProjectTest & 46 & 0 \\ \hline
DSoilModelTransformerTests & 7 & 0 \\ \hline
\multicolumn{3}{|p{120mm}|}{\textbf{\textit{Namespace: Deltares.DSoilModel.Forms.Tests}}} \\ \hline
DSoilModelPluginTests & 13 & 0 \\
DSoilModelGeometryEditorTests & 28 & 0 \\
DSoilModelContextTest & 49 & 0 \\
DSoilModelSegmentGeometryEditorTests & 15 & 0 \\
BoringControlTests & 3 & 0 \\
SegmentControlTests & 3 & 0 \\
FilmStripTest & 4 & 0 \\
BoringLookup1DControlTests & 3 & 0 \\
SosSoilProfile1DControlTest & 4 & 0 \\
SoilProfile1DLookup2DControlTest & 3 & 0 \\
BoringLookup2DControlTest & 3 & 0 \\
SosSoilLayer1DControlTests & 4 & 0 \\
CptLookup2DControlTests & 3 & 0 \\
CptLookup1DControlTests & 3 & 0 \\
CptControlTests & 3 & 0 \\
PreconsolidationStressControlTests & 3 & 0 \\
SpecificMechanismPointLocationControlTests & 3 & 0 \\
CenterCrestLocationPropertyControlTest & 3 & 0 \\
SoilSegmentSplitLocationControlTests & 3 & 0 \\ \hline
\textbf{Total} & \textbf{261} & \textbf{0} \\ \hline
\end{tabular}
\end{table}


\section{Code coverage of the unit/integration tests} \label{sec:CodeCoverage}

To determine what proportion of the code is actually being tested by coded tests such as unit tests or integration tests, the code coverage feature of Visual Studio is used. The results of this tool are displayed on the Deltares build server called TeamCity (see appendix \autoref{app:CodeCoverage}). An overview is given in \autoref{tab:2-2} showing the percentage of the code that was tested for each class, method and statement for each of the different assemblies. 

\begin{table}[H]
\caption{Code coverage of the unit tests and integration tests for \ProgramName} 
\label{tab:2-2}
\renewcommand{\arraystretch}{1.3}
\begin{tabular}{|p{\textwidth-83mm-36pt}|p{23mm}|p{28mm}|p{32mm}|} \hline
\rowcolor[gray]{.8} Namespace & \textbf{Class} & \textbf{Method} & \textbf{Statement} \\ \hline
Deltares.DSoilModel.Data \newline (see \autoref{fig:TestCoverageData}) & 100\% (10/10) & 87.4\% (125/143) & 82.6\% (848/1027) \\ \hline
Deltares.DSoilModel.Forms \newline (see \autoref{fig:TestCoverageForms}) & 84.4\% (27/32) & 51.4\% (288/560) & 64.3\% (3158/4910) \\ \hline
\textbf{Total} & \textbf{88.1\% (37/42)} & \textbf{58.7\% (413/703)} & \textbf{67.5\% (4006/5937)}\\ \hline
\end{tabular}
\end{table}


The code coverage of \ProgramNamePlusSpace (\textbf{67.5\%}) is more than the minimum required code coverage of 60\% prescribed in \cite{OverallTestPlanWTI}.





%------------------------------------------------------------------------------
\chapter{System testing (Test Scripts)}  \label{chapter3}

The tests on this level are to provide proof of the fact that the functionalities of the \textit{User Interface} listed in the requirements (\Sref{sec:1.3}) are present and work properly.

The test of the \textit{User Interface} has been executed by a tester using \textit{Test Script(s)}. All the \textit{Test Scripts} are part of the \textit{Test Document}, joined in appendix \autoref{app:TestDocument} at the end of this Test Report. 

\section{Testing of the 'must-have' functional requirements}

In \autoref{tab:OverviewTests}, the 'must-have' functional requirements of \ProgramNamePlusSpace are compared to the user-interface features that were tested. Refer to the Functional Design of \ProgramNamePlusSpace \citep{DSoilModel_FunctionalDesign} for a complete description of the requirements. 


The legend of \autoref{tab:OverviewTests} is: \\
\begin{tabular}{p{\textwidth}}
\OK $=$ Test-script passes \\
\OKbut $=$ Test-script passes, but some inconveniences were found \\
\NotOK $=$ Test-script fails \\
\end{tabular}

\renewcommand{\arraystretch}{1.1}

\begin{longtable}{|p{20mm}|p{\textwidth-50mm-48pt}|p{15mm}|p{15mm}|} 
\caption{Overview of the 'must-have' requirements and their corresponding test-scripts} \label{tab:OverviewTests} \\ \hline
\rowcolor[gray]{.8} \textbf{REQ} & \textbf{Description} & \multicolumn{2}{c|}{\textbf{Test script(s)}} \\ 
\rowcolor[gray]{.8} &  & \multicolumn{2}{c|}{\textbf{in appendix \autoref{app:TestDocument}}} \\ \cline{3-4}
\rowcolor[gray]{.8} &  & \textbf{nr.} & \textbf{Status} \\ \hline
\textbf{REQ 3.1} & \textbf{Import data:} & & \\
& \quad -- materials (MDB files)							& 7.02	& \OK \\ 
& \quad -- 1D profiles (CSV files)						& 7.03	& \OK \\ 
& \quad -- 2D profiles (STI files)						& 7.04	& \OK \\ 
& \quad -- 2D profiles (GEO files)						& 7.05	& \OK \\ 
& \quad -- surface lines (CSV files)					& 7.06	& \OK \\ 
& \quad -- characteristic points (CSV files)	& 7.07	& \OK \\ 
& \quad -- segments (CSV files)								& 7.08	& \OK \\
& \quad -- segments (shape files)							& 7.09	& \OK \\ 
& \quad -- CPT's (GEF-CPT files)							& 7.10	& \OKbut \\
& \quad -- Borings (GEF-Boring files)					& 7.11	& \OKbut \\ \hline

\textbf{REQ 3.3} 	& \textbf{Select relevant SOS information for project:} & & \\
& \quad -- selection of segment from a list:		& 7.09d 	& \OK \\
& 																							& 7.09e 	& \OK \\
& 																							& 7.09g 	& \OK \\ 
& \quad -- definition of failure mechanism location:	& \multicolumn{2}{l|}{See REQ	6.4} \\ \hline

\textbf{REQ 5.1} & \textbf{Supply the subsoil schematization and parameters for the WTI macro stability kernel:} & & \\
&	\quad -- one or more soil segments:															& 39.02 	& \OK \\ % Tabellen >> Segmenten
&																																	& 41.01		& \OK \\ % Dwarsdoorsnede >> Segmenten
&																																	& 42.01c	& \OK \\ % Kaart >> Segmenten
& \quad -- one (stochastic) soil profile schematization per segment 	& \multicolumn{2}{l|}{See REQ	7.1} \\ 
& \quad -- profile properties (i.e yield stress)											& \multicolumn{2}{l|}{See REQ	6.5} \\ 
& \quad -- layer properties (i.e. aquifer) 														& \multicolumn{2}{l|}{See REQ	6.6} \\ 
& \quad -- per soil layer, one soil material													& 23.02f & \OK \\ % 1D profile - Material field
& 																																		& 23.02s & \OK \\ % 1D profile - Drop-down list
& 																																		& 30.03c & \OK \\ % 2D profile - Material field
& 																																		& 30.03m & \OK \\ % 2D profile - Drop-down list
& \quad -- per soil material, soil properties for failure mechanism macrostability:	& & \\
&																																										& 12.03a	& \OK \\
&																																										& 12.03b	& \OK \\ 
&																																										& 12.03c	& \OK \\ 
&																																										& 12.03d	& \OK \\ 
&																																										& 12.03e	& \OK \\ 
&																																										& 12.03f	& \OK \\ 
&																																										& 12.03g	& \OK \\ 
&																																										& 12.03h	& \OK \\ 
&																																										& 12.03i	& \OK \\ 
&																																										& 12.03j	& \OK \\ 
&																																										& 12.03k	& \OK \\ 
&																																										& 12.03l	& \OK \\ 
&																																										& 12.03m	& \OK \\ 
&																																										& 12.03n	& \OK \\ 
&																																										& 12.03o	& \OK \\ 
&																																										& 12.03p	& \OK \\ 
&																																										& 12.03q	& \OK \\ 
&																																										& 12.03r	& \OK \\ 
&																																										& 12.03s	& \OK \\ 
&																																										& 12.03t	& \OK \\ 
&																																										& 12.03an	& \OK \\ % editable
&																																										& 12.05a	& \OK \\ % filter
&																																										& 12.05b	& \OK \\ 
&																																										& 12.05c	& \OK \\ 
&																																										& 12.05d	& \OK \\ 
&																																										& 12.05e	& \OK \\ 
&																																										& 12.05f	& \OK \\ 
&																																										& 12.05q	& \OKbut \\ 
&																																										& 12.05r	& \OKbut \\ \hline
\textbf{REQ 5.2} & \textbf{Supply the subsoil schematisation and parameters for the WTI piping kernel:} & & \\
&	\multicolumn{3}{l|}{\quad -- for soil segments, soil profile schematisation, 1D/2D soil profiles } \\
&	\multicolumn{3}{l|}{\quad scenario's and soil layer, see REQ 5.1.} \\
& \quad -- per soil material, soil properties for failure mechanism piping:					& 12.03a	& \OK \\
&																																										& 12.03b	& \OK \\ 
&																																										& 12.03c	& \OK \\ 
&																																										& 12.03d	& \OK \\ 
&																																										& 12.03g	& \OK \\ % gamma sat
&																																										& 12.03h	& \OK \\ % gamma sat (S)
&																																										& 12.03u	& \OK \\ % D70
&																																										& 12.03v	& \OK \\ 
&																																										& 12.03w	& \OK \\ % permeability
&																																										& 12.03x	& \OK \\
&																																										& 12.03an	& \OK \\ % editable
&																																										& 12.05g	& \OK \\ % filter
&																																										& 12.05h	& \OK \\ 
&																																										& 12.05i	& \OK \\ 
&																																										& 12.05j	& \OK \\ 
&																																										& 12.05k	& \OK \\ 
&																																										& 12.05l	& \OK \\ 
&																																										& 12.05s	& \OKbut \\ 
&																																										& 12.05t	& \OKbut \\ \hline
\textbf{REQ 5.4} & \textbf{All relevant subsoil information}		&	&  \\
&	\multicolumn{3}{l|}{See '\textit{per soil material, soil properties}' in REQ 5.1 for macrostability } \\
&	\multicolumn{3}{l|}{mechanism and REQ 5.2 for piping mechanism. } \\ \hline

\textbf{REQ 6.1} & \textbf{Stochastic characterization of the variables} & 12.04 & \OK \\ \hline

\textbf{REQ 6.3} & \textbf{Separate segments for each failure mechanism}: 	&	& \\
&	\quad -- selection of soil segments									& 43.03b 	& \OK \\ 
& \quad -- splitting soil segments 										& 43.03a 	& \OK \\ % paragraph 2.3.2
& \quad -- deleting soil segments 										& 40.01b 	& \OK \\ % paragraph 2.3.3
& 																										& 41.03b 	& \OK \\ 
& \quad -- select a mechanism per segment							& 6.02 		& \OK \\ 
&																											& 40.02b 	& \OK \\
&																											& 40.05  	& \OK \\
&																											& 43.05  	& \OK \\ \hline

\textbf{REQ 6.4} & \textbf{Definition of the location of the 1D profile } 	& 34 			& \OK \\
&	\textbf{for Piping and D-Flow Slide}																			& 35.02a	& \OK \\
&																																						& 35.04a	& \OK \\
&																																						& 35.04f	& \OK \\ \hline

\textbf{REQ 6.5} & \textbf{Profile properties (i.e. yield stresses)} & 30 & \OK  \\ \hline

\textbf{REQ 6.6} & \textbf{Layer properties (i.e. is aquifer)} & & \\
& \quad -- for 1D profile:		& 24.02j & \OK \\
& 														& 24.02p & \OK \\ % is editable
& 														& 24.03  & \OK \\ 
& 														& 25.03e & \OK \\
& 														& 25.03k & \OK \\ % is editable
& 														& 27.04g & \OK \\ % synchronisation
& 														& 27.04h & \OK \\ % synchronisation
& \quad -- for 2D profile:		& 31.03b & \OK \\
& 														& 31.03j & \OK \\ % is editable
& 														& 31.04  & \OK \\  \hline

\textbf{REQ 7.1} & \textbf{Stochastic subsoil information} 	& 41.01d	& \OK \\ % Table Profielen - Kans 
& 																				 									& 41.01e 	& \OK \\ % Table Profielen - Profiel 

\textbf{REQ 8.2} & \textbf{Table view for soil parameters} 	& 12.01 & \OK \\ % Icons in table
&																														& 12.03 & \OK \\ % Names of soil parameters
&																														& 13    & \OK \\ \hline % Property window

\textbf{REQ 8.4} & \textbf{Profile view to modify soil profiles} & & \\
&	\quad -- drawing and modification of 1D soil profiles	& 23 & \OK \\ % Tables >> 1D profielen
&																												& 24 & \OK \\ % Property view >> 1D profielen
&																												& 25 & \OK \\ % Property view >> Layer
&																												& 26 & \OK \\ % Dwarsdoorsnede view >> 1D profielen
&																												& 27 & \OK \\ % 1D profielen - Synchronistion of views
&	\quad -- drawing and modification of 2D soil profiles	& 28 & \OK \\ % Tables >> 2D profielen
&																												& 29 & \OK \\ % Property view >> 2D profielen
&																												& 31 & \OK \\ % Property view >> Gebied
&																												& 35 & \OK \\ \hline % Dwarsdoorsnede view >> 2D profielen

\textbf{REQ 8.6} & \textbf{Show segments with labels} & 40.02a & \OK \\ % Table >> Segmenten - Naam
&																											&	43.02c & \OK \\ \hline % Kaart >> Segmenten - Label

\textbf{REQ 8.10} & \textbf{Overview of soil profile scenarios} & 42.02		& \OK \\ \hline % view filmstrip

\textbf{REQ 8.13} & \textbf{Show SOS scenario's in 2D profiles} 	& 40.04 & \OK \\ % visiblity of button 'Convert 1D to 2D'
&																																	& 41.02 & \OK \\ \hline % Correct functionning of 'Convert 1D to 2D'

\textbf{REQ 9.1} & \textbf{Name soil materials} 	& 12.03a & \OK \\ % Soil parameter Name in Table
&																									& 12.05  & \OK \\ % filters in Table >> Materials
&																									& 14.04  & \OK \\ \hline % synchronistion with 1D and 2D profiles

\textbf{REQ 9.2} & \textbf{Edit the chances of a SOS scenario} & 41.01k  & \OK \\ % editable
&																											&	41.04 	& \OK \\ % total probability must be 100%			
& 																										& 41.05 	& \OK \\ \hline % probability of a soil profile can be 0\%			

\textbf{REQ 9.3} & \textbf{Turn a 1D profile into a 2D profile} & 26.03e & \OK \\ \hline

\textbf{REQ 9.4} & \textbf{Draw 2D geometry so as in D-Geo Stability} & 35.03 & \OK \\ \hline % geometry editor

\textbf{REQ 9.5} & \textbf{Reference lines to draw surface lines on } & 28.03b 	& \OK \\ % Table >> 2D Profiles
& \textbf{2D profiles}																								& 33			& \OK \\ % Eigenschappen - Referentielijn
&																																			& 35.02h	& \OK \\ % selection and move object
&																																			& 34.04a	& \OK \\ % Delete reference line
&																																			& 34.04g	& \OK \\ % Add reference line via right-mouse option
&																																			& 35.05a	& \OK \\ % Synchronisation
&																																			& 35.05b	& \OK \\ % Synchronisation

\textbf{REQ 9.7} & \textbf{User can draw 2D soil layers} & 35.03 & \OK \\ \hline % geometry editor

\textbf{REQ 9.8} & \textbf{Allocate soil material to layer} 	& 24.02v & \OK \\ % One 1D profile with layers using the same material
&																										& 24.02w & \OK \\ % Several 1D profiles using the same material
& 																									&	31.03n & \OK \\ % One 2D profile with layers using the same material
&																										& 31.03o & \OK \\ \hline % Several 2D profiles using the same material

\textbf{REQ 9.9} & \textbf{Define layer as aquifer or aquitard} & \multicolumn{2}{l|}{See REQ 6.6}  \\ \hline

\textbf{REQ 9.10} & \textbf{Enter yield stresses for macro stability} & 12.03m & \OK \\
&																																			& 12.03n & \OK \\
&																																			& 12.03o & \OK \\
&																																			& 12.03p & \OK \\
&																																			& 12.03q & \OK \\
&																																			& 12.03r & \OK \\
&																																			& 12.03s & \OK \\
&																																			& 12.03t & \OK \\
& \multicolumn{3}{l|}{See also REQ 6.6 for yield stress measurements per 2D profiles.}  \\ \hline

\textbf{REQ 9.12} & \textbf{Modify the location of the borehole or CPT in } & 35.02d & \OK \\ % Selection / move CPT
& \textbf{the 2D profile}																										& 35.02e & \OK \\ % Selection / move boring
&																																						& 35.04a & \OK \\ % Delete object
&																																						& 35.05d & \OK \\ % Synchro CPT
&																																						& 35.05e & \OK \\ 
&																																						& 35.05f & \OK \\ % Synchro boring
&																																						& 35.05g & \OK \\ \hline

\textbf{REQ 9.14} & \textbf{Minimal validity check on the data} & 2.01e & \OK \\ 
&	$^{\text{(a)}}$	\textit{See Min and Max checks	}							& 4.01  & \OK \\
&																																& 4.02  & \OK \\
&																																& 9.01d & \OK \\
&																															  & 12.03$^{\text{(a)}}$ & \OK \\
&																																& 12.06  & \OK \\
&																																& 23.03$^{\text{(a)}}$  & \OK \\
&																																& 41.03e & \OK \\
&																																& 41.04  & \OK \\ \hline

\textbf{REQ 9.18(a)} & \textbf{Add another 1D profile to an existing 2D profile} & 35.04e & \OK \\ \hline

\textbf{REQ 9.20} & \textbf{Incorporate settlements underneath an embankment} & 35.03 & \OK \\ \hline

\textbf{REQ 9.23} & \textbf{Import soil area's and segments} & 44 & \OK \\ \hline
\end{longtable}







\section{Testing of the 'should-have' functional requirements}

\begin{longtable}{|p{20mm}|p{\textwidth-50mm-48pt}|p{15mm}|p{15mm}|} 
\caption{Overview of the 'should-have' requirements and their corresponding test-scripts} \label{tab:OverviewTestsShouldHave} \\ \hline
\rowcolor[gray]{.8} \textbf{REQ} & \textbf{Description} & \multicolumn{2}{c|}{\textbf{Test script(s)}} \\ 
\rowcolor[gray]{.8} &  & \multicolumn{2}{c|}{\textbf{in appendix \autoref{app:TestDocument}}} \\ \cline{3-4}
\rowcolor[gray]{.8} &  & \textbf{nr.} & \textbf{Status} \\ \hline

\textbf{REQ 3.2} & \textbf{Import and view all SOS data} & \multicolumn{2}{l|}{Idem as REQ 3.1} \\ \hline

\textbf{REQ 3.4} & \textbf{Import relevant reference data:} & & \\
& \quad -- Surface lines					& 7.06 & \OK \\
& \quad -- Characteristic points	& 7.07 & \OK \\
& \quad -- Outside water level 		& \multicolumn{2}{l|}{not implemented} \\
& \quad -- PL-lines						 		& \multicolumn{2}{l|}{not implemented} \\
& \quad -- Polder water level 		& \multicolumn{2}{l|}{not implemented} \\ \hline

\textbf{REQ 7.2} & \textbf{Allocation of CPT's and boreholes to }	& 42.04c & \OK \\ 
&		\textbf{a segment	}																						& 42.04d & \OK \\ 
&																																	& 43.04d & \OK \\ \hline % Koppel aan dichtsbijzijnde ondergrondsegment

\textbf{REQ 7.3} & \textbf{Overview of all available borings and CPT's}	& 44.01 & \OK \\
& \textbf{in a segment or cross section} 																& 44.02 & \OK \\ \hline

\textbf{REQ 7.4} & \textbf{Overview of all available SOS scenario's } 	& 44.03 & \OK \\ 
&			\textbf{in a segment}																							& 44.04 & \OK \\ \hline 

\textbf{REQ 8.7} & \textbf{Show all soil investigation with labels in }	& 43.01 & \OK \\
&	\textbf{map view}																											& 43.02 & \OK \\ \hline

\textbf{REQ 8.8} & \textbf{Visualize the surface lines with their characteristic points} 	& 7.07d & \OK \\\
& View surface lines with characteristic points on top of a 2D profile										& \multicolumn{2}{l|}{not implemented} \\ \hline

\textbf{REQ 8.12} & \textbf{Show data from :} & & \\
& -- \quad AHN or a WMS server 		& \multicolumn{2}{l|}{not implemented} \\
& -- \quad or other shape files 	& 7.09 & \OK \\ \hline

\textbf{REQ 8.14} & \textbf{Draw SOS profiles in one segment on the same height for comparison} & 42.02 & \OK \\ \hline

\textbf{REQ 8.15} & Show ground investigation simultaneously  & 26.03c & \OK \\
& \textbf{to REQ 39 at the same reference level}							& 26.03d & \OK \\ 
&																															& 44.03  & \OK \\ \hline

\textbf{REQ 8.16} & \textbf{Compatibility between different views} & 45 & \OK \\ \hline

\textbf{REQ 8.17} & \textbf{Visibility of yield stress} & 30. 03 & \OK \\ \hline

\textbf{REQ 9.11} & \textbf{Copy/ paste segments for one failure mechanism to the next} & 40.01c & \OK \\ 
&																																												& 40.01d & \OK \\ \hline

\textbf{REQ 9.21} & \textbf{Visualize minimum and maximum of layer boundaries from the SOS data} & 42.06 & \OK \\ \hline

\textbf{REQ 9.24} & \textbf{Table import/export}  & & \\
& \quad -- Validation messages (export)						& 4.02b & \OK \\ 
& \quad -- Log messages (export)									& 5.02e & \OK \\
& \quad -- Materials (import)											& 12.01d & \OK \\
& \quad -- Materials (export)											& 12.01g & \OK \\
& \quad -- 1D Profile (import)										& 23.01d & \OK \\
& \quad -- 1D Profile (export)										& 23.01g & \OK \\
& \quad -- 1D Layers (import)											& 24.04d & \OK \\
& \quad -- 1D Layers (export)											& 24.04g & \OKbut \\
& \quad -- 2D Profile (import)										& 28.01d & \OK \\
& \quad -- 2D Profile (export)										& 28.01g & \OK \\
& \quad -- Yield stresses (import)								& 30.01d & \OK \\
& \quad -- Yield stresses (export)								& 30.01g & \OK \\
& \quad -- Geometry point (import)								& 31.05b & \OK \\
& \quad -- Geometry point (export)								& 31.05e & \OK \\
& \quad -- List of surface lines (import)					& 36.01d & \OK \\
& \quad -- List of surface lines (export)					& 36.01f & \OK \\
& \quad -- Surface line (export)									& 37.02f & \OK \\
& \quad -- List of segments (import)							& 40.01d & \OK \\
& \quad -- List of segments (export)							& 40.01g & \OK \\
& \quad -- Stochastic soil profiles (import)			& 41.03d & \OK \\
& \quad -- Stochastic soil profiles (export)			& 41.03g & \OK \\
& \quad -- CPTs for this segment (export)					& 41.07g & \OK \\
& \quad -- Borings for this segment (export)			& 41.09g & \OK \\ \hline
\end{longtable}


\section{Testing of the 'nice-to-have' functional requirements}

The nice-to-have requirements listed in \autoref{tab:REQs} are not implemented, so can't be tested.


\section{Testing of the non-functional requirements}

In \autoref{tab:OverviewTestsNF}, the Non-Functional Requirements of \ProgramNamePlusSpace are compared to the user-interface features that were tested. Refer to the Functional Design of \ProgramNamePlusSpace \citep{DSoilModel_FunctionalDesign} for a complete description of the requirements. 

\renewcommand{\arraystretch}{1.3}

\begin{table}[H]
\caption{Overview of the 'non-functional' requirements and their corresponding test} \label{tab:OverviewTestsNF}
\begin{tabular}{|p{10mm}|p{\textwidth-90mm-48pt}|p{70mm}|p{10mm}|}  \hline
\rowcolor[gray]{.8} \textbf{REQ} & \textbf{Description} & \textbf{Test} & \textbf{OK?} \\ \hline
\textbf{R13} & \textbf{Perform test according to engagement} & A test plan explaining how the program should be tested is available \citep{DSoilModel_TestPlan} and this document (Test Report) shows that all the functionalities of the program are implemented and tested.   &  \quad \quad \OK \\ \hline
\textbf{U124} & \textbf{No crash} & Test-script nr. 47 of the Test Document (see appendix \autoref{app:TestDocument}) attests that no crash occured when performing all test-scripts listed in the Test Document (which represents about 8 hours working with \ProgramName), proving that this requirement is met.  & \quad \quad \OK \\ \hline
\textbf{U131} & \textbf{Unit tests} & See \autoref{sec:2.1} for an overview of the unit tests. &  \quad \quad \OK \\ \hline
\textbf{U133} & \textbf{UI (incl. messages) in Dutch language} & All the test-scripts of the Test Document (see appendix \autoref{app:TestDocument}) checks that the name, hint and unit of each UI field and also all validation and log messages are in Dutch. Only few missing translations have been found in some testscripts. &  \quad \quad \OK \\ \hline 
\end{tabular}
\end{table}

\section{Conclusion}

All the '\textit{must-have}' requirements have been implemented. 

Almost all the '\textit{should-have}' requirements are implemented except three of them which are only partly implemented(\autoref{tab:OverviewTestsShouldHave}):
\begin{itemize}
	\item \textbf{\textsl{REQ 3.4}}: Outside water level, PL-lines and Polder water level are not available in \ProgramName
	\item \textbf{\textit{REQ 8.8}}: It is not possible to view surface lines with characteristic points on top of a 2D profile
	\item \textbf{\textit{REQ 8.12}}: Segment shapes from AHN or a WMS server can't be imported in \ProgramName. The user must convert them into shapes files to be able to import them.
\end{itemize}

All the non-functional requirements that are suitable for reporting in test reports such as this report are met (\autoref{tab:OverviewTestsNF}).

All the test scripts pass. However, few discrepancies were found on different levels and reported in the Deltares issue tracker tool called JIRA:
\begin{itemize}
	\item \href{https://issuetracker.deltares.nl/browse/DSB-684}{DSB-684}: The Warning message in dialog 'Herstel Alles' is not completely correct;
	\item \href{https://issuetracker.deltares.nl/browse/DSB-698}{DSB-698}: Log table -  Paste and Edit button are available but should not
	\item \href{https://issuetracker.deltares.nl/browse/DSB-755}{DSB-755}: Import D-GeoStability STI files: for materials with a default shear strength, the shear strength model after importation is always 'Geen'
	\item \href{https://issuetracker.deltares.nl/browse/DSB-601}{DSB-601}: After import of a GEF-CPT file, the imported information is not always correct or relevant
	\item \href{https://issuetracker.deltares.nl/browse/DSB-604}{DSB-604}: After import of a GEF-Boring file, the imported information is not always correct or relevant
	\item \href{https://issuetracker.deltares.nl/browse/DSB-569}{DSB-569}: The visibility of parameters POP, S and m should depends on the shear strength model
	\item \href{https://issuetracker.deltares.nl/browse/DSB-729}{DSB-729}: Min and Max values of some parameters are not in accordance with FO
	\item \href{https://issuetracker.deltares.nl/browse/DSB-652}{DSB-652}: In Materials table, the number of decimals of the different parameters is inconsistent
	\item \href{https://issuetracker.deltares.nl/browse/DSB-694}{DSB-694}: In Materials table, only the first stochast (Unstaured unit weight) has hints (for Mean, Std deviation....) but not the others stochast
	\item \href{https://issuetracker.deltares.nl/browse/DSB-693}{DSB-693}: The choice between ``Geen, Piping and Stabiliteit'' in the faalmechanisme filter of toolbar should not have an influence on the Material filter
	\item \href{https://issuetracker.deltares.nl/browse/DSB-683}{DSB-683}: Show legend of CPT cross section
	\item \href{https://issuetracker.deltares.nl/browse/DSB-735}{DSB-735}: 1D-Profile - Property window: when table ``Lagen'' is exported, 'Is Aquifer' is not correctly translated
	\item \href{https://issuetracker.deltares.nl/browse/DSB-744}{DSB-744}: Missing (or not translated) hints
	\item \href{https://issuetracker.deltares.nl/browse/DSB-713}{DSB-713}: Eigenschappen - Hoogtegeometrie: unit of Z should be [m NAP] not [m]
	\item \href{https://issuetracker.deltares.nl/browse/DSB-611}{DSB-611}: Missing translations for a number of labels
	\item \href{https://issuetracker.deltares.nl/browse/DSB-675}{DSB-675}: When Tabellen-Segmenten and Dwarsdoorsnede windows are combined, the content of the right-hand mouse options menu is incorrect	
\end{itemize}



The errors listed above are absolutely not blocking for the use of \ProgramNamePlusSpace within
WTI 2017. All those issues should be fixed in a future release of the program.




%------------------------------------------------------------------------------
\chapter{Conclusion}

\renewcommand{\arraystretch}{1.2}

All the unit and integration tests performed for the validation of \ProgramNamePlusSpace pass and cover 67.5\% of the code, so more than the minimum required code coverage of 60\% prescribed in \cite{OverallTestPlanWTI}. 

A complete test of the User Interface has been performed by means of test scripts (see appendix \autoref{app:TestDocument}). Almost all of the test scripts pass; however, a few minor inconveniences were found and reported in the \textit{Known Issues} list.

However, the discrepancies listed above are not blocking for the use of \ProgramNamePlusSpace version \VersionNumberPlusSpace within WTI 2017, and will be reported in the list of \textit{Known Issues} delivered with the application.

All the '\textit{must-have}' functional requirements and non-functional requirements listed in the Functional Design of \ProgramNamePlusSpace are implemented and met. Only three of the '\textit{should-have}' requirements are not completely implemented (REQ 3.4, REQ 8.8 and REQ 8.12). None of the '\textit{nice-to-have}' requirements have been implemented, but this will be done in future development of the application.
\\
\\
\\
To conclude, the correct functioning of the User Interface of \ProgramNamePlusSpace version \VersionNumberPlusSpace is ensured; the program can therefore be handed over to the client.





%------------------------------------------------------------------------------
\chapter{References} \label{chp:References}

\bibliography{../WTI_references/wti_references}


%------------------------------------------------------------------------------
\begin{appendices}


\chapter{Overview of the Code Coverage of \ProgramNamePlusSpace \VersionNumberPlusSpace on build server TeamCity} \label{app:CodeCoverage}

An overview of the code coverage of \ProgramNamePlusSpace \VersionNumberPlusSpace is available on the build server TeamCity which displays the percentage of the code that was tested in method, class, and statement for each assembly.


\begin{landscape}

\begin{figure}[H]
\centering
		\includegraphics[width=1.4\textheight]{pictures/TestCoverageAll.png}
	\caption{Overall code coverage of \ProgramName}
	\label{fig:TestCoverageAll}
\end{figure}

\begin{figure}[H]
	\centering
		\includegraphics[width=1.4\textwidth]{pictures/TestCoverageData.png}
	\caption{Overview of the code coverage of Deltares.DSoilModel.Data}
	\label{fig:TestCoverageData}
\end{figure}

\begin{figure}[H]
	\centering
		\includegraphics[width=1.4\textwidth]{pictures/TestCoverageFormsAll.png}
		\includegraphics[width=1.4\textwidth]{pictures/TestCoverageForms.png}
	\caption{Overview of the code coverage of Deltares.DSoilModel.Forms}
	\label{fig:TestCoverageForms}
\end{figure}


\end{landscape}


\chapter{Test Document \ProgramNamePlusSpace } \label{app:TestDocument}

The test-scripts part of the Test Document hereafter have been first performed during the development of \ProgramName, using versions 16.1.3.618, 16.1.3.634 and 16.1.3.647 so versions prior to version \VersionNumber. Because the test document contains about 1200 questions, more than one day is needed to answer all the questions. By lack of time, only the failing tests were performed with version \VersionNumber. A risk exists therefore that a test-script passing with previous versions does not pass anymore with version \VersionNumber. However such a risk is very low because the program is developed in a continuous integration way, which means that an improvement in a feature leading to a failure of an other feature is immediately detected by the build server (via the unit tests) and therefore fixed by the developer.


\includepdf[pages=1, offset=-20 -20, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=2, offset=20 -20, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=3, offset=-20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=4, offset=20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=5, offset=-20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=6, offset=20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=7, offset=-20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=8, offset=20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=9, offset=-20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=10, offset=20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=11, offset=-20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=12, offset=20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=13, offset=-20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=14, offset=20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=15, offset=-20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=16, offset=20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=17, offset=-20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=18, offset=20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=19, offset=-20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=20, offset=20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=21, offset=-20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=22, offset=20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=23, offset=-20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=24, offset=20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=25, offset=-20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=26, offset=20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=27, offset=-20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=28, offset=20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=29, offset=-20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=30, offset=20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=31, offset=-20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=32, offset=20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=33, offset=-20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=34, offset=20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=35, offset=-20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=36, offset=20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=37, offset=-20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=38, offset=20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=39, offset=-20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=40, offset=20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=41, offset=-20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=42, offset=20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=43, offset=-20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=44, offset=20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=45, offset=-20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=46, offset=20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=47, offset=-20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=48, offset=20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=49, offset=-20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}
\includepdf[pages=50, offset=20mm -20mm, angle=90]{\DirectoyPDFTestDocument/\FileNamePDFTestDocument}


\end{appendices}



%------------------------------------------------------------------------------
\cleardoublepage

\pagestyle{empty}
\cleardoublepage
\mbox{}
\includepdf[pages=2, offset=72 -70]{pictures/D-SoilModel-TestReport.pdf} % links-rechts past precies


\end{document}
