+ \item Checksum: valid, invalid.
+ \item Header: valid, even or odd number of bits corrupted.
+ \item Payload: valid, even or odd number of bits corrupted.
+\end{enumerate}
+
+\subsubsection{Test environment and automatization}
+\label{section:testenv}
+All the tools we are going to use together with the SUT gives us the following
+collection of software
+
+\begin{itemize}
+ \item Windows\footnote{\url{http://www.microsoft.com/en-us/windows}}, used
+ as a host OS.
+ \item Ubuntu\footnote{\url{http://www.ubuntu.com}}, used as the guest OS
+ running the SUT.
+ \item VirtualBox\footnote{\url{https://www.virtualbox.org/}}, used to run
+ the guest OS containing the SUT.
+ \item Wireshark\footnote{\url{https://www.wireshark.org/}}, used on the
+ guest OS in order to capture and analyze network traffic.
+ \item Bit-Twist\footnote{\url{http://bittwist.sourceforge.net/}}, used to
+ prepare network packets.
+ \item Java\footnote{\url{http://www.java.com}} TCP driven echo server.
+\end{itemize}
+
+\begin{figure}[H]
+ \label{fig:sut}
+ \centering
+ \includegraphics[width=0.5\linewidth]{SUTsetup.eps}
+ \caption{Test environment}
+\end{figure}
+
+
+All test will be conducted in a virtual environment. We will use VirtualBox to
+run a Linux distribution with the product installed. The Linux distribution in
+question is Ubuntu. All the tests are performed from within the VirtualBox
+environment. When testing network transmissions we will only analyze the
+packets sent/received to/from the SUT. The host system is disconnected from the
+Internet or any other network in order to prevent unnecessary traffic.
+% Dit is niet nodig omdat het via loopback gaat
+% Zeker weten? de SUT ontvangt ook niet loopback packets toch?
+% Ja maar we geven de host gewoon geen interface?
+
+For each test case (except for the \emph{manual tests}) a file containing
+previously captured network traffic will be replayed using Wireshark and sent
+to the \emph{Java TCP driven echo server}. We will use Bit-Twist to update the
+prepared packets with the MAC address of the guest network adapter and provide
+them with a valid source address. This updating step is needed because the
+kernel would otherwise reject the packets and prevent them from reaching the
+SUT. The response packets sent by the \emph{Java TCP driven echo server} and
+passing trough the SUT will be recorded, analyzed and validated according to
+the \textit{RFC793} specification. The valid packets are build manually from
+the \textit{RFC793} specification. Invalid packets are generated from this
+valid traffic using Bit-Twist. The boundary values for the different
+parameters (fields in packets) are determined by hand. Automated scripts are
+used in order to generate packets with some fields replaced with these
+\emph{boundary values}.