Add explenation on randomisation
[tt2015.git] / a2 / 1cases.tex
index 1bfdc39..69f8168 100644 (file)
@@ -89,13 +89,14 @@ a feasible test suite the tests are divided into equivalence partitions. Below
 these partitions are given.
 
 \begin{enumerate}
 these partitions are given.
 
 \begin{enumerate}
-       \item \emph{Number of packets} in request~\footnote{A request is considered
-               establishing a connection (handshake) and a number of payload packets}
+       \item \emph{Number of segments} in request~\footnote{A request is
+               considered establishing a connection (handshake) and a number of
+               payload segments}
                \begin{enumerate}
                \begin{enumerate}
-                       \item 0 payload packets
-                       \item 1 payload packet
-                       \item n=small payload packets
-                       \item n=big payload packets
+                       \item 0 payload segments
+                       \item 1 payload segments
+                       \item n=small payload segments
+                       \item n=big payload segments
                \end{enumerate}
        \item \emph{source port}
                \begin{enumerate}
                \end{enumerate}
        \item \emph{source port}
                \begin{enumerate}
@@ -107,18 +108,18 @@ these partitions are given.
                        \item Correct
                        \item Incorrect
                \end{enumerate}
                        \item Correct
                        \item Incorrect
                \end{enumerate}
-       \item Bits flipped in \emph{payload}
+       \item Bit errors in \emph{payload}
                \begin{enumerate}
                        \item Correct payload
                \begin{enumerate}
                        \item Correct payload
-                       \item Payload with bit flips 
-                       \item Payload with odd number of bits flipped
+                       \item Payload with bit flips that do not show in checksum
+                       \item Payload with bit flips that do show in checksum
                \end{enumerate}
        \item \emph{checksum}
                \begin{enumerate}
                        \item Correct
                        \item Incorrect
                \end{enumerate}
                \end{enumerate}
        \item \emph{checksum}
                \begin{enumerate}
                        \item Correct
                        \item Incorrect
                \end{enumerate}
-       \item Packet order
+       \item \emph{Packet order}
                \begin{enumerate}
                        \item Correct
                        \item Out of order
                \begin{enumerate}
                        \item Correct
                        \item Out of order
@@ -129,24 +130,31 @@ these partitions are given.
 These partitions were chosen since they correspond to key parts of the TCP
 specification. 
 
 These partitions were chosen since they correspond to key parts of the TCP
 specification. 
 
-TCP segments are send over a TCP connection from a \emph{source} to a \emph{destination port}. Therefore segments which are received which have a 
+TCP segments are send over a TCP connection from a \emph{source} to a \emph{destination port}. Therefore segments which are received that have a 
 source or destination port set to an incorrect value should not be regarded
 source or destination port set to an incorrect value should not be regarded
-as segments belonging to the connection. 
+as segments belonging to the connection by the SUT
 
 TCP uses a \emph{checksum} to catch any error introduced in headers, when this
 
 TCP uses a \emph{checksum} to catch any error introduced in headers, when this
-checksum does not match the actual computed checksum the packet should be
-disregarded.
+checksum does not match the actual computed checksum the SUT should
+disregard the received segment.
 
 The TCP checksum is also an inherently weak one, as it is simply the 
 
 The TCP checksum is also an inherently weak one, as it is simply the 
-bitwise negation of the addition in ones complement arithmetic 
+bitwise negation of the addition, in ones complement arithmetic, 
 of all 16 bit words in the header and data of the segment (excluding the
 of all 16 bit words in the header and data of the segment (excluding the
-header). Therefore any bit error where the ones complement value of one word
+checksum itself). Therefore any \emph{bit error} where the ones complement value
+of one word
 increases by one, and the value of another decreases by one, is undetected. 
 The SUT should exhibit the same behavior and accept packets where these type
 increases by one, and the value of another decreases by one, is undetected. 
 The SUT should exhibit the same behavior and accept packets where these type
-of bit error occur.
+of bit errors occur.
+
+TCP guarantees that segments are delivered \emph{in order}
+,even when they are received
+out of order and that missing segments are resend. The SUT should
+exhibit the same behavior. If segments are received out of order it should
+either reassemble them when the missing packet has arrived or request them to
+be resend when the  Missing segments should be re-requested (by ACK-ing
+the correct sequence number).  
 
 
-\textbf{hier iets over waarom deze partities relevant zijn! Waarom odd en 
-even number of bits flipped bijv interessant?}
 \bigskip
 
 Partitions 2 to 6 are tested using pairwise testing to keep the number of test
 \bigskip
 
 Partitions 2 to 6 are tested using pairwise testing to keep the number of test
@@ -155,6 +163,9 @@ to do so) tested with the different request sizes of partition 1.
 
 This is expressed in Table~\ref{table:testpairs}.
 
 
 This is expressed in Table~\ref{table:testpairs}.
 
+\newcounter{TCC}
+\setcounter{TCC}{1}
+\newcommand{\doTCC}{\theTCC \stepcounter{TCC}}
 \begin{table}[H]
        \centering
        \begin{tabular}{|l|l|l|l|l|l|l|l|l|l|l|}
 \begin{table}[H]
        \centering
        \begin{tabular}{|l|l|l|l|l|l|l|l|l|l|l|}
@@ -164,15 +175,15 @@ This is expressed in Table~\ref{table:testpairs}.
                & \# & 4 & 5 & 3 & 6 & 2 & 1a & 1b & 1c & 1d\\
                \hline\hline
                \multirow{9}{*}{Instance} 
                & \# & 4 & 5 & 3 & 6 & 2 & 1a & 1b & 1c & 1d\\
                \hline\hline
                \multirow{9}{*}{Instance} 
-               & 1 & a & a & a & a & a & \checkmark & \checkmark & \checkmark & \checkmark\\
-               & 2 & a & b & b & c & b & \xmark & \xmark & \checkmark & \checkmark\\
-               & 3 & c & a & b & a & b & \xmark & \xmark & \checkmark & \checkmark\\
-               & 4 & c & b & a & c & a & \xmark & \xmark & \checkmark & \checkmark\\
-               & 5 & b & a & b & c & a & \xmark & \xmark & \checkmark & \checkmark\\
-               & 6 & b & b & a & b & b & \xmark & \xmark & \checkmark & \checkmark\\
-               & 7 & c & b & b & a & b & \checkmark & \checkmark & \checkmark & \checkmark\\
-               & 8 & b & b & b & a & b & \checkmark & \checkmark & \checkmark & \checkmark\\
-               & 9 & a & b & b & b & a & \xmark & \xmark & \checkmark & \checkmark\\
+               & 1 & a & a & a & a & a & \doTCC & \doTCC & \doTCC & \doTCC\\
+               & 2 & a & b & b & c & b & \xmark & \xmark & \doTCC & \doTCC\\
+               & 3 & c & a & b & a & b & \xmark & \xmark & \doTCC & \doTCC\\
+               & 4 & c & b & a & c & a & \xmark & \xmark & \doTCC & \doTCC\\
+               & 5 & b & a & b & c & a & \xmark & \xmark & \doTCC & \doTCC\\
+               & 6 & b & b & a & b & b & \xmark & \xmark & \doTCC & \doTCC\\
+               & 7 & c & b & b & a & b & \xmark & \doTCC & \doTCC & \doTCC\\
+               & 8 & b & b & b & a & b & \xmark & \doTCC & \doTCC & \doTCC\\
+               & 9 & a & b & b & b & a & \xmark & \xmark & \doTCC & \doTCC\\
                \hline
 \end{tabular}
 \caption{Combinations of test cases}
                \hline
 \end{tabular}
 \caption{Combinations of test cases}
@@ -203,7 +214,14 @@ test suite can be clearly assessed.
 
 As always, $100\%$ completeness is not feasible, therefore test cases are
 carefully selected to cover the most interesting parts of the TCP specification
 
 As always, $100\%$ completeness is not feasible, therefore test cases are
 carefully selected to cover the most interesting parts of the TCP specification
-to ensure a test suite.
+to ensure a complete but feasible test suite.
+
+To further increase the coverage of the test suites tests are randomized. The
+tests which test the handling of \emph{bit errors}, changes in the \emph{packet
+order} and \emph{dropped packets} randomize where they introduce an error. The
+test suite runs these tests multiple times to increase the likelihood that they
+discover a fault which is only present when an error occurs in a certain
+position. 
 
 To further decrease the number of tests needed test cases are divided into
 equivalence partitions and the combination of cases as described in 
 
 To further decrease the number of tests needed test cases are divided into
 equivalence partitions and the combination of cases as described in