%&tex
\subsection{Test Protocol}
\label{sec:test_protocol}
    The last step of the preparation phase is to implement a test protocol.
    The tests are designed to validate if the system meets its requirements.
    While defining the tests, it became clear that part of the requirements was not sufficiently defined.
    The current requirements apply to the complete system and is not updated for the design choices made in the initial design.
    If the tests are made based on the current requirements, they can only be performed when the complete design is implemented.
    To create tests that apply to specific features or compoments, the requirements had to be updated.
    This update adds order of operations and additional requirements and is explained in the following two sections.
    The third section explains how the tests are formed based on the up-to-date requirements.
    
    %%% Reviewed tot hier.

    \subsubsection{Defining the Order of Operation}
    There are two modes of operation: writing and erasing.
    Defining the order of operation also distributes the responsibility between the different components.
    The writing operation consists of performing the following steps:
    \begin{order}{Writing}
        \emph{Precondition:} Marker as tool in end-effector.
        \begin{enumerate}
            \item Move \ac{cdc} to position of characters.
            \item Write three characters with the \ac{scara}.
            \item Repeat step 1 and 2 untill the Tweet is on the board.
            \item Move \ac{cdc} away from the text on the board.
        \end{enumerate}
    \end{order}

    The second order of operation is about the erasing.
    Removing text from the board is done by the following steps:
    \begin{order}{Erasing}
        \emph{Precondition:} Wiper as tool in end-effector.
        \begin{enumerate}
            \item Move \ac{cdc} to position of characters.
            \item Clear the area in reach of the \ac{scara}.
            \item Repeat step 1 and 2 till the Tweet is removed from on the board.
        \end{enumerate}
    \end{order}

    A possible third order of operation can be defined for tool switching.
    This order of operation depends on how end-effector grabs and releases the tools.
    At this point, the design of the end-effector is not definitive enough to determine an order of operation.
    Additionally, not having an order of operation for the end-effector did not hinder the definition of tests.

    \subsubsection{Improving Requirements}
    Based on the order of operations, the following requirements were added to the lists in \autoref{sec:specifications}:
    \begin{specification}
        \begin{enumerate}
            \setcounter{enumi}{12}
                \input{content/input/speclistc.tex}
        \end{enumerate}
    \end{specification}
    These additional requirements take into account that the current design consists of a \ac{scara}, end-effector and \ac{cdc}.
    Where each of these components have a different role and thus a different responsibility in the system.

    \subsubsection{Setting up the tests}
    Using the updated requirements, set of test cases is created.
    In total there are five small and five large test cases.
    The small tests cover a single compoment or feature and the large tests combine multiple features.
    Each test specifies for which requirements they apply and include a description that explains the test.
    The smaller test cases also indicate on which feature or component they apply.
    All ten tests are included in \autoref{app:test_specification}.
    The following is a small and a large test case from these ten.

    One of the small tests focusses on the speed and range requirements of the \ac{scara}:
    \setcounter{testcounter}{0}
    \begin{test}{Small rectangle}
    \input{content/input/systemtest1.tex}
    \end{test}
    Repeatability is tested in one of the large system wide tests:
    \setcounter{testcounter}{5}
    \begin{test}{Repeatability}
    \input{content/input/systemtest6.tex}
    \end{test}

    \subsubsection{Evaluation}
        This step was completed without many difficulties.
        Which includes the revision of the earlier requirements and definition of orders of operation.
        Indicating that I overlooked details while defining the requirements in \autoref{sec:specifications}.
        According to the design plan as described in \autoref{chap:analysis}, I have to go back and review those requirements.
        Followed by reviewing all steps after the requirements.
        However, this complete review is not practical and extremely time consuming.
        The point here is, looking at the evaluations of this and previous steps, that chosen design strategy is not feasible, especially as a novice designer.
        In \autoref{chap:case_evaluation} I evaluate this with more detail.

        During the analysis, I expected more specific tests.
        Each test can then be used as a milestone during the development of the system.
        Every time detail is added, an additional test passes.
        Or a test fails, notifying that something went wrong and has to be investigated.
        Creating such specific tests relies on the details in the design of the system.
        The current design is basic and these details are added during the feature implementation.
        Nevertheless, this step resulted in a set of tests that cover all requirements and features that are specified in this preparation phase.
        When all the tests pass, the system should meet all the requirements.

