From: mart Date: Wed, 11 Nov 2015 08:58:35 +0000 (+0100) Subject: Merge branch 'master' of https://github.com/dopefishh/tt2015 X-Git-Url: https://git.martlubbers.net/?a=commitdiff_plain;h=9d533c0f740c7f826b75286f309be9f7f3a3674d;hp=-c;p=tt2015.git Merge branch 'master' of https://github.com/dopefishh/tt2015 Conflicts: a2/1cases.tex --- 9d533c0f740c7f826b75286f309be9f7f3a3674d diff --combined a2/1cases.tex index 71b630c,172ad03..18420a7 --- a/a2/1cases.tex +++ b/a2/1cases.tex @@@ -1,96 -1,121 +1,120 @@@ - \pagebreak \subsection{Preflight checklist} - Before actual certification is commenced we perform a manual test using a checklist. If any of the checks fail we immediately reject the product. - The checklist is given in the table below. + The checklist is given in the table below. All commands in \texttt{monospace} + are to be run in a terminal. Commands prefixed with a \texttt{\#} should be run + with root permissions. Commands prefixed with a \texttt{\$} should be run with + user permissions. - \begin{table} - \begin{tabularx}{\linewidth}{| l | X|} + \begin{table}[H] + \begin{tabularx}{\linewidth}{|l|X|} + \hline + Check 1 & Get the SUT in a workable state. \\ + \hline + Course of action & + \begin{enumerate} + \item Import the VirtualBox image into VirtualBox. + \item Boot the vm. + \item Verify the SUT booted successfully and the network modules + are loaded. + \end{enumerate}\\ + \hline Passed & \textit{Yes/No} \\ + \hline\hline + Check 2 & Verify the SUT is complete. \\\hline + Course of action & + \begin{enumerate} + \item Boot the SUT as in \emph{Check 1}. + \item Verify the loopback device exists by running + \texttt{\$ ifconfig}. + \item Verify the \emph{echo-server} is present on the system. + \item Verify \emph{Scapy} is present on the system by running + \texttt{\$ scapy}. + \item Verify all scripts used for testing are present on the + system. + \end{enumerate}\\ + \hline + Passed & \textit{Yes/No}\\ + \hline \hline + Check 3 & Initialize the testing environment.\\ + \hline + Course of action & + \begin{enumerate} + \item Boot the SUT as in \emph{Check 1}. + \item Setup iptables by executing + \texttt{\# code/iptables.sh}~\footnote{ The IPTables script + ensures that the OS does not drop packets due to an the + unknown source.} + \item Navigate to the working directory by running + \texttt{\$ cd /home/student/tt2015} + \item Compile the echo server by running + \texttt{\# cd code/server \&\& make \&\& cd -} + \item Start the echo server by running + \texttt{\# cd code/server \&\& java Main} + \end{enumerate}\\ + \hline + Passed & \textit{Yes/No}\\ + \hline\hline + Check 4 & Test the tool environment.\\ + \hline + Course of action & + \begin{enumerate} + \item Initialize the SUT as in \emph{Check 3} + \item Execute the test script by running + \texttt{\# code/client/helloworld.py}. + \item Verify the console displays a success message. + \end{enumerate}\\ + \hline + Passed & \textit{Yes/No}\\ + \hline\hline + Check 5 & All test inputs and scripts are present. \\\hline + % DIT MOET NOG EVEN ANDERS + Course of action & + \begin{enumerate} + \item Boot the SUT as in \emph{Check 1}. + \item Execute the command \texttt{ls scripts/tests} + \item Verify that there is a file named case$X$ for each test case $X$ + \item Use \emph{ls packets} + \item Verify that there is a file named \texttt{single.pcap} and + \texttt{multi.pcap}. + \end{enumerate}\\ + \hline + Passed & \textit{Yes/No}\\ \hline - Check 1 & Get the SUT in a workable state. \\\hline - Course of action & \begin{enumerate} - \item Import the VirtualBox image into VirtualBox. - \item Boot the vm. - \item Verify the SUT booted succesfully and the network module(s) are loaded. - \end{enumerate} \\\hline - Passed & \textit{Yes/No} \\\hline \hline - Check 2 & Verify the SUT is complete. \\\hline - Course of action & \begin{enumerate} - \item Use the course of action for \emph{Check 1} in order to boot the SUT. - \item Verify the loopback device exists using \emph{ifconfig} - \item Verify the \emph{echo-server} is present on the system. - \item Verify \emph{Scrappy} is present on the system. - \item Verify all scripts used for testing are present on the system. - \end{enumerate} \\\hline - Passed & \textit{Yes/No} \\\hline \hline - Check 3 & Initialize the testing environment. \\\hline - Course of action & \begin{enumerate} - \item Boot the SUT (see \emph{Check 1}). - \item Setup iptables by executing \emph{./scripts/setup/iptables.sh} - \item Setup ... by executing \emph{./scripts/setup/...} - \end{enumerate} \\\hline - Passed & \textit{Yes/No} \\\hline - \end{tabularx} - \end{table} - - \begin{table} - \begin{tabularx}{\linewidth}{| l | X |} - \hline - Check 4 & Test the tool environment. \\\hline - Course of action & \begin{enumerate} - \item Boot and initialize the SUT (see \emph{Check 4}) - \item Execute the \emph{./scripts/tests/case0-helloworld.sh} script. - \item Execute the command \emph{cat logs/case0.log}. - \item Verify the console displays a success message. - \end{enumerate} \\\hline - Passed & \textit{Yes/No} \\\hline \hline - Check 5 & All test inputs and scripts are present. \\\hline - Course of action & \begin{enumerate} - \item Boot the SUT (see \emph{Check 1}) - \item Execute the command \emph{ls scripts/tests} - \item Verify that there is a file named case$X$ for each test case $X$ - \item Use \emph{ls packets} - \item Verify that there is a file named \emph{single.pcap} and \emph{multi.pcap}. - \end{enumerate} \\\hline - Passed & \textit{Yes/No} \\\hline \end{tabularx} \end{table} \newpage \subsection{Testing of SUT} - - The SUT is a series of services for other computer programs with no end-user - facing - interface. Therefore the SUT will be tested solely by calling it's services - through various automated scripts. An automated test suite will be available - which executes all these automated scripts and aggregates their results to - asses whether or not the SUT has passed the test. + The SUT is a series of services for other computer programs with no end-user + facing interface. Therefore the SUT will be tested solely by calling it's + services through various automated scripts. An automated test suite will be + available which executes all these automated scripts and aggregates their + results to asses whether or not the SUT has passed the test. The implementation of the SUT is tested using black box testing techniques. A series of tests asses the correctness of the implementation with regards to the TCP specification. These tests are specified in Table~\textbf{referentie naar - tests-tabel}. The test cases aim to cover the most interesting parts of the - TCP specification. + tests-tabel}. The test cases aim to cover the most interesting parts of the TCP + specification. To cover the TCP specification as complete as possible while still maintaining a feasible test suite the tests are divided into equivalence partitions. Below these partitions are given. \begin{enumerate} - \item \emph{Number of packets} in request\footnotemark - \footnotetext{A request is considered establishing a connection - (handshake) and any n number of payloadpackts} + \item \emph{Number of packets} in request~\footnote{A request is considered + establishing a connection (handshake) and a number of payload packets} \begin{enumerate} \item 0 payload packets \item 1 payload packet \item n=small payload packets \item n=big payload packets \end{enumerate} - \item Correct or Incorrect \emph{source port} - \item Correct or Incorrect \emph{Destination port} - \item Bits flipped in \emph{Payload} + \item Correct or incorrect \emph{source port} + \item Correct or incorrect \emph{destination port} + \item Bits flipped in \emph{payload} \begin{enumerate} \item Correct payload \item Payload with even number of bits flipped @@@ -111,18 -136,19 +135,19 @@@ to do so) tested with the different req This is expressed in Table~\ref{table:testpairs}. \begin{table} - \begin{tabular} {p{2cm} | l | p{2cm} | l | p{1cm} || c | c | p{1.3cm} | p{1.3cm}} - \textbf{Payload} & \textbf{checksum} & \textbf{destination port} & \textbf{order} & \textbf{source port} & \textbf{payload 0} & \textbf{payload 1} & \textbf{payload small} & \textbf{payload big} \\ \hline \hline - Correct & Correct & Correct & In order & Correct & \cmark & \cmark & \cmark & \cmark \\ \hline - Correct & Incorrect & Incorrect & Missing packet & Incorrect & \xmark & \xmark & \cmark & \cmark \\ \hline - odd\# of bits flipped & Correct & Incorrect & Out of order & Incorrect & \xmark & \xmark & \cmark & \cmark \\ \hline - odd\# of bits flipped & Incorrect & Correct & Missing packet & Correct & \xmark & \xmark & \cmark & \cmark \\ \hline - even\# of bits flipped & Correct & Incorrect & Missing packet & Correct & \xmark & \xmark & \cmark & \cmark \\ \hline - even\# of bits flipped & Incorrect & Correct & Out of order & Incorrect & \xmark & \xmark & \cmark & \cmark \\ \hline - odd\# of bits flipped & Incorrect & Incorrect & In order & Incorrect & \cmark & \cmark & \cmark & \cmark \\ \hline - even\# of bits flipped & Incorrect & Incorrect & In order & Incorrect & \cmark & \cmark & \cmark & \cmark \\ \hline - Correct & Incorrect & Incorrect & Out of order & Correct & \xmark & \xmark & \cmark & \cmark \\ - \end{tabular} + % DIT MAAK IK NOG EVEN MOOI + \begin{tabularx}{\linewidth}{p{2cm} | l | p{2cm} | l | p{1cm} || c | c | p{1.3cm} | p{1.3cm}} + \textbf{Payload} & \textbf{checksum} & \textbf{destination port} & \textbf{order} & \textbf{source port} & \textbf{payload 0} & \textbf{payload 1} & \textbf{payload small} & \textbf{payload big} \\ \hline \hline + Correct & Correct & Correct & In order & Correct & \checkmark & \checkmark & \checkmark & \checkmark \\ \hline + Correct & Incorrect & Incorrect & Missing packet & Incorrect & \xmark & \xmark & \checkmark & \checkmark \\ \hline + odd\# of bits flipped & Correct & Incorrect & Out of order & Incorrect & \xmark & \xmark & \checkmark & \checkmark \\ \hline + odd\# of bits flipped & Incorrect & Correct & Missing packet & Correct & \xmark & \xmark & \checkmark & \checkmark \\ \hline + even\# of bits flipped & Correct & Incorrect & Missing packet & Correct & \xmark & \xmark & \checkmark & \checkmark \\ \hline + even\# of bits flipped & Incorrect & Correct & Out of order & Incorrect & \xmark & \xmark & \checkmark & \checkmark \\ \hline + odd\# of bits flipped & Incorrect & Incorrect & In order & Incorrect & \checkmark & \checkmark & \checkmark & \checkmark \\ \hline + even\# of bits flipped & Incorrect & Incorrect & In order & Incorrect & \checkmark & \checkmark & \checkmark & \checkmark \\ \hline + Correct & Incorrect & Incorrect & Out of order & Correct & \xmark & \xmark & \checkmark & \checkmark \\ + \end{tabularx} \caption{Combinations of test cases} \label{table:testpairs} \end{table} @@@ -163,47 -189,47 +188,47 @@@ covered and the number of individual te % wat ik ook probeer ik krijg de eerste collum % zijn tekst niet verticaal gecentered % - \begin{table} \subsection{Test cases} - \begin{tabularx}{\linewidth}{| l | X|} - \hline - Nr & 1 \\\hline - Title & Single valid request. \\\hline - Input & Pcap file with prerecorded valid packets. \\\hline - Expected output & Pcap file with valid response to request. \\\hline - Course of action & \begin{enumerate} - \item Execute \emph{./scripts/tests/case1-single-valid.sh} - \item Load \emph{output/case1.pcap} with ... - \end{enumerate} \\\hline - Valid trace & \begin{enumerate} - \item \textbf{Hier packets benoemen?} - \end{enumerate} \\\hline - \end{tabularx} - - \begin{tabularx}{\linewidth}{| l | X|} - \hline - Nr & 2 \\\hline - Title & Single request with corrupted checksum. \\\hline - Input & Pcap file used as \emph{test-case 1} input. \\\hline - Expected output & No response from SUT, logs with rejected packets. \\\hline - Course of action & \begin{enumerate} - \item Load input pcap file into .... - \item Corrupt checksum of loaded packets. - \item Save resulting packets as pcap file. - \item Load new pcap file into ... - \item Replay new pcap file. - \item Record SUT response using... - \item Extract log with rejected packets. - \item Save recorded packets as a pcap file. - \item Analyze packets in resulting file. - \end{enumerate} \\\hline - Valid trace & \begin{enumerate} - \item \textbf{Aangeven welke packets corrupted zijn?} - \end{enumerate} \\\hline - \end{tabularx} - \end{table} + %\begin{table} + %\begin{tabularx}{\linewidth}{| l | X|} + %\hline + %Nr & 1 \\\hline + %Title & Single valid request. \\\hline + %Input & Pcap file with prerecorded valid packets. \\\hline + %Expected output & Pcap file with valid response to request. \\\hline + %Course of action & \begin{enumerate} + % \item Execute \emph{./scripts/tests/case1-single-valid.sh} + % \item Load \emph{output/case1.pcap} with ... + %\end{enumerate} \\\hline + %Valid trace & \begin{enumerate} + % \item \textbf{Hier packets benoemen?} + %\end{enumerate} \\\hline + %\end{tabularx} + % + %\begin{tabularx}{\linewidth}{| l | X|} + % \hline + % Nr & 2 \\\hline + %Title & Single request with corrupted checksum. \\\hline + % Input & Pcap file used as \emph{test-case 1} input. \\\hline + % Expected output & No response from SUT, logs with rejected packets. \\\hline + % Course of action & \begin{enumerate} + % \item Load input pcap file into .... + % \item Corrupt checksum of loaded packets. + % \item Save resulting packets as pcap file. + % \item Load new pcap file into ... + % \item Replay new pcap file. + % \item Record SUT response using... + % \item Extract log with rejected packets. + % \item Save recorded packets as a pcap file. + % \item Analyze packets in resulting file. + % \end{enumerate} \\\hline + % Valid trace & \begin{enumerate} + % \item \textbf{Aangeven welke packets corrupted zijn?} + % \end{enumerate} \\\hline + %\end{tabularx} + %\end{table} \newpage