\section{Testing strategy}

\subsection{Unit tests}

Testing will follow the bottom-up testing strategy. That is, the phases of the testing process are:

\begin{enumerate}
\item Test the data structures
\item Test the FortranWriter
\item Test the ComputationalModelParser
\item Assume that the Parser and the FortranWriter work correctly and use them when testing other Generator classes
\end{enumerate}

The Parser's unit tests are automated. They can be run with the ParserUnitTest class found in the tests package. 

Unit test results for most of the generator classes (package PIANOS.generator) can not be validated automatically. In these cases, the Fortran code written by the classes is inspected instead. 

Code coverage of all the tests can be found in a report on the PIANOS CD-ROM. This report is compiled by running the MasterTest class and the PIANOS Generator with a single file parameter and eight separate files. See the PIANOS manual for details on running the Generator, See Appendix 1. for a summary of the code coverage report.

\subsection{Integration tests}

The Parser is tested to produce data structures with valid information. This can be proved by unit tests of the Parser that use the data structures, and system tests that use the parser.

Because most of the generator parts function independently integration tests for them are deemed unnecessary. System and unit tests verify their correctness.

\subsection{System tests}

System tests are run with these models:

\begin{enumerate}
\item the simple bird model
\item the simple bird model with spatial dependence
\item the lip cancer model
\item the bird model
\end{enumerate}


Simulations on these models have been run. It is difficult to determine whether the results are correct since previous results for the models on the used algorithm don't exist or are difficult to obtain. See the next chapter for details.

