mentioned in Section~\ref{sec:risks} extra emphasis should be placed on
testing \emph{Functional Correctness} as recovery from Failures in
computer-to-computer systems is problematic.
+ \item \textbf{Performance efficiency} \label{sec:perf_eff}\\
+ As the SUT runs as a service on a system with other programs it must have
+ efficient \emph{resouce utilisation}. It can not contain any memory leaks
+ or use other resources more than necessary.
+ \item \textbf{Compatibility}\\
+ \emph{Interoperability} is the key feauture of the SUT as it's purpose is to
+ communicate with other systems implementing the TCP protocol. Therefore
+ it is of vital importance that the SUT impements the TCP procotol correctly.
+ Furthermore it is very important that the SUT can \emph{co-exist} with other
+ programs on the system it runs on, since it is used as a service by those
+ programs. This means that the SUT has to handle preemption as well as having
+ multiple programs requesting it's services at once.
+ \item \textbf{Reliability}\\
+ As stated before, the SUT is used as a core service, this means it has to be
+ very \emph{mature}. It needs to behave as expected under normal working
+ conditions. As it can continually be requested the SUT needs to have
+ constant
+ \emph{availibility}. As the SUT relies on an (potentially) unreliable
+ channel to send and receive data it needs to be \emph{fault tolerant}. The
+ SUT needs to properly handle errors in received data or complete
+ unavailibilty of the underlying channel.
+ \item \textbf{Security}\\
+ \emph{Confidentiliality} is an important aspect for the SUT. Received
+ data should only be delivered to the program to which it is adressed.
\end{itemize}
+This leaves three categories which are not relevant the SUT. Below we will
+shortly discuss per categorie why these are not relevant. \emph{Maintainability}
+is an important aspect of any software system, however for the SUT it is not a
+core aspect, as it is first and foremost of importance that the implementation
+is correct, furthermore TCP does not change often. \emph{Usability} isn't a core
+aspect either, as the SUT is not used directly by humans, but is a service which
+is adressed when another program needs it. \emph{Portability} isn't either as
+the SUT is installed on a system once and intended to work on that system.
\subsubsection{Quality in use}
+Quality in use is dived into five subcategories. Below we will discuss the
+categories which are relevant to the SUT.
+\begin{itemize}
+ \item \textbf{Effectiveness}\\
+ This is the core aspect of the SUT, users (other programs) need to be able
+ to effectively use the SUT to send and receive data.
+ \item \textbf{Efficiency}\\
+ This issue has already been covered above under
+ ``performance efficiency''~\ref{sec:perf_eff}.
+ \item \textbf{Satisfaction}\\
+ It is important that programs using the SUT can \emph{trust} that the SUT
+ provides the promised services. This means that data is send and received
+ reliably and the SUT provides clear and unambigious errors when this service
+ can not be provided.
+ \item \textbf{Context Coverage}\\
+ The SUT needs to behave as expected in all specified contexts
+ (\emph{context completeness}).
+\end{itemize}
+This leaves \emph{freedom from risk}, which we consider not relevant as the
+SUT itself does not pose any risks, and correct implementation (which is covered
+in the other categories) gives clear guarantees to programs using the services
+of the SUT.
\subsection{Levels and types of testing} \label{levels}