Finalize thesis report and fix grammar mistakes
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Signed-off-by: Severin Kaderli <severin@kaderli.dev>
This commit is contained in:
parent
77fbdd194f
commit
10bf9ebf44
21 changed files with 2716 additions and 211 deletions
|
@ -1,9 +1,9 @@
|
|||
\chapter{Testing}
|
||||
\section{Devices}
|
||||
The following devices were used for the development and testing of MagSend. While theoretically MagSend should work on other Laptops and Smartphones I have only tested in on specified devices. For each device the most important specifications are listed.
|
||||
The following devices were used for the development and testing of MagSend. While theoretically MagSend should work on other laptops and smartphones, I have only tested in on specified devices. For each device, the most important specifications are listed.
|
||||
|
||||
\subsection{Laptop}
|
||||
The laptop was used as the sending device for MagSend. The Website was run using the Firefox browser and the laptop was always plugged in to the power grid to ensure that CPU doesn't throttle.
|
||||
The laptop was used as the sending device for MagSend. The Website was run using the Firefox browser and the laptop was always plugged in to the power grid to ensure that CPU, doesn't throttle.
|
||||
|
||||
\begin{table}[H]
|
||||
\begin{reqTblr}{l p{11.0cm}}
|
||||
|
@ -33,13 +33,13 @@ The smartphone was used as the receiving device for MagSend. The app was run nor
|
|||
|
||||
|
||||
\section{Test Cases}
|
||||
The following test cases are all structured in the same way. The table lists the related requirements from \autoref{chapter:requirements} and describes the test case briefly. Then the expected result row lists the steps and endresult that should happen for the test case to be successful. The last row describes the actual result from testing.
|
||||
The following test cases are all structured in the same way. The table lists the related requirements from \autoref{chapter:requirements} and describes the test case briefly. Then the expected result row lists the steps and the result that should happen for the test case to be successful. The last row describes the actual result from testing.
|
||||
|
||||
\begin{table}[H]
|
||||
\begin{reqTblr}{l p{10.5cm}}
|
||||
ID & T01 \\
|
||||
Related Requirement & F01 \\
|
||||
Description & The user is provided with the option the start calibration on the website. \\
|
||||
Description & The user is provided with the option to the start calibration on the website. \\
|
||||
Expected Result &
|
||||
\begin{enumerate}
|
||||
\item{The user opens the website in a web browser}
|
||||
|
@ -53,7 +53,8 @@ The following test cases are all structured in the same way. The table lists the
|
|||
\end{table}
|
||||
|
||||
\begin{figure}[H]
|
||||
\includegraphics[width=0.5\linewidth]{test_cases/t1.png}
|
||||
\centering
|
||||
\fbox{\includegraphics[width=0.65\linewidth]{test_cases/t1.png}}
|
||||
\caption{Test Case 01 - Start Calibration Button on Website}
|
||||
\label{figure:t01}
|
||||
\end{figure}
|
||||
|
@ -68,26 +69,28 @@ The following test cases are all structured in the same way. The table lists the
|
|||
\begin{enumerate}
|
||||
\item{The user opens the website in a web browser}
|
||||
\item{The user clicks on the "Start Calibration" button}
|
||||
\item{The calibration process is started and the user is notified about it}
|
||||
\item{During calibration the CPU is periodically stressed}
|
||||
\item{The calibration process is started, and the user is notified about it}
|
||||
\item{During calibration, the CPU is periodically stressed}
|
||||
\end{enumerate} \\
|
||||
Actual Result &
|
||||
When the user starts the calibration process the "Start Calibration" button changes to "Stop Calibration" and a message appears that indicates that calibration is in process (see \autoref{figure:t02}).
|
||||
When the user starts the calibration process, the "Start Calibration" button changes to "Stop Calibration" and a message appears that indicates that calibration is in process (see \autoref{figure:t02}).
|
||||
|
||||
While calibrating the CPU is periodically stressed as seen in the CPU utilization graph (see \autoref{figure:t02_2}).
|
||||
While calibrating, the CPU is periodically stressed as seen in the CPU utilization graph (see \autoref{figure:t02_2}).
|
||||
\\
|
||||
\end{reqTblr}
|
||||
\caption{Test Case 02}
|
||||
\end{table}
|
||||
|
||||
\begin{figure}[H]
|
||||
\includegraphics[width=0.5\linewidth]{test_cases/t2.png}
|
||||
\centering
|
||||
\fbox{\includegraphics[width=0.65\linewidth]{test_cases/t2.png}}
|
||||
\caption{Test Case 02 - Calibration in Process on Website}
|
||||
\label{figure:t02}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[H]
|
||||
\includegraphics[width=0.5\linewidth]{test_cases/t2_2.png}
|
||||
\centering
|
||||
\includegraphics[width=\linewidth]{test_cases/t2_2.png}
|
||||
\caption{Test Case 02 - CPU Utilization}
|
||||
\label{figure:t02_2}
|
||||
\end{figure}
|
||||
|
@ -104,10 +107,10 @@ The following test cases are all structured in the same way. The table lists the
|
|||
\item{The user opens the website in a web browser}
|
||||
\item{The user clicks on the "Start Calibration" button}
|
||||
\item{The user then clicks on the new "Stop Calibration" button}
|
||||
\item{The calibration is stopped and the CPU should not be utilized anymore}
|
||||
\item{The calibration is stopped, and the CPU should not be utilized anymore}
|
||||
\end{enumerate} \\
|
||||
Actual Result &
|
||||
When the user clicks on the "Stop Calibration" button, the message about the calibration disappears and the button switches back to "Start Calibration" and the website should look like if it just has been opened.
|
||||
When the user clicks on the "Stop Calibration" button, the message about the calibration disappears and the button switches back to "Start Calibration" and the website should look like if it has just opened.
|
||||
|
||||
After stopping the calibration, the CPU utilization also goes back down to normal levels (see \autoref{figure:t03_2}).
|
||||
\\
|
||||
|
@ -116,7 +119,8 @@ The following test cases are all structured in the same way. The table lists the
|
|||
\end{table}
|
||||
|
||||
\begin{figure}[H]
|
||||
\includegraphics[width=0.5\linewidth]{test_cases/t3_2.png}
|
||||
\centering
|
||||
\includegraphics[width=\linewidth]{test_cases/t3_2.png}
|
||||
\caption{Test Case 03 - CPU Utilization after Stopping the Calibration}
|
||||
\label{figure:t03_2}
|
||||
\end{figure}
|
||||
|
@ -126,7 +130,7 @@ The following test cases are all structured in the same way. The table lists the
|
|||
\begin{reqTblr}{l p{10.5cm}}
|
||||
ID & T04 \\
|
||||
Related Requirement & F02 \\
|
||||
Description & The user is provided with the option the start calibration in the app.\\
|
||||
Description & The user is provided with the option to start calibration in the app.\\
|
||||
Expected Result &
|
||||
\begin{enumerate}
|
||||
\item{The user opens the app}
|
||||
|
@ -151,14 +155,15 @@ The following test cases are all structured in the same way. The table lists the
|
|||
\item{The user is shown the current measured magnetic field strength as well as a chart of the historical values}
|
||||
\end{enumerate} \\
|
||||
Actual Result &
|
||||
After starting the calibration in the app the user can see the magnetic field strength and historical data in a chart. (see autoref{figure:t05}).
|
||||
After starting the calibration in the app, the user can see the magnetic field strength and historical data in a chart. (see autoref{figure:t05}).
|
||||
\\
|
||||
\end{reqTblr}
|
||||
\caption{Test Case 05}
|
||||
\end{table}
|
||||
|
||||
\begin{figure}[H]
|
||||
\includegraphics[width=0.5\linewidth]{test_cases/t5.jpg}
|
||||
\centering
|
||||
\fbox{\includegraphics[width=0.4\linewidth]{test_cases/t5.jpg}}
|
||||
\caption{Test Case 05 - Calibrate Screen in the App}
|
||||
\label{figure:t05}
|
||||
\end{figure}
|
||||
|
@ -172,11 +177,11 @@ The following test cases are all structured in the same way. The table lists the
|
|||
\begin{enumerate}
|
||||
\item{The user opens the app}
|
||||
\item{The user clicks on the "Calibrate" button}
|
||||
\item{While on the calibration screen the user clicks on the back arrow in the upper left corner}
|
||||
\item{While on the calibration screen, the user clicks on the back arrow in the top left corner}
|
||||
\item{The user should be back on the home screen of the app}
|
||||
\end{enumerate} \\
|
||||
Actual Result &
|
||||
After clicking the back arrow inside the calibration screen the user arrives back on the home screen and can choose again between "Receive" and "Calibrate".
|
||||
After clicking the back arrow inside the calibration screen, the user arrives back on the home screen and can choose again between "Receive" and "Calibrate".
|
||||
\\
|
||||
\end{reqTblr}
|
||||
\caption{Test Case 06}
|
||||
|
@ -194,7 +199,7 @@ The following test cases are all structured in the same way. The table lists the
|
|||
\item{The user can enter any text between 0 and 16 characters}
|
||||
\end{enumerate} \\
|
||||
Actual Result &
|
||||
The user can enter any character in the input they want but they are not able to enter more than 16 characters (see \autoref{figure:t07}).
|
||||
The user can enter any character in the input they want, but they unable to enter more than 16 characters (see \autoref{figure:t07}).
|
||||
\\
|
||||
\end{reqTblr}
|
||||
\caption{Test Case 07}
|
||||
|
@ -202,7 +207,7 @@ The following test cases are all structured in the same way. The table lists the
|
|||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=0.75\linewidth]{test_cases/t7.png}
|
||||
\fbox{\includegraphics[width=0.65\linewidth]{test_cases/t7.png}}
|
||||
\caption{Test Case 07 - Entering Text on the Website}
|
||||
\label{figure:t07}
|
||||
\end{figure}
|
||||
|
@ -218,27 +223,29 @@ The following test cases are all structured in the same way. The table lists the
|
|||
\item{The user clicks into the text input}
|
||||
\item{The user enters any text between 0 and 16 characters}
|
||||
\item{The user clicks on "Start Sending"}
|
||||
\item{When the user hasn't entered any text or the text contains non-ASCII characters a fitting message is displayed and the sending process is not started.}
|
||||
\item{When the user hasn't entered any text or the text contains non-ASCII characters, a fitting message is displayed, and the sending process is not started.}
|
||||
\end{enumerate} \\
|
||||
Actual Result &
|
||||
When the user attempts to start sending when they haven't entered any text, a message is displayed (see \autoref{figure:t08}).
|
||||
|
||||
When the user attempts to start sending when they have entered any non-ASCII characters, a message is diplayed. (see \autoref{figure:t08_2}).
|
||||
|
||||
In both cases the sending process is not started.
|
||||
In both cases, the sending process is not started.
|
||||
\\
|
||||
\end{reqTblr}
|
||||
\caption{Test Case 08}
|
||||
\end{table}
|
||||
|
||||
\begin{figure}[H]
|
||||
\includegraphics[width=0.5\linewidth]{test_cases/t8.png}
|
||||
\centering
|
||||
\fbox{\includegraphics[width=0.65\linewidth]{test_cases/t8.png}}
|
||||
\caption{Test Case 08 - Validation of Empty Input}
|
||||
\label{figure:t08}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[H]
|
||||
\includegraphics[width=0.5\linewidth]{test_cases/t8_2.png}
|
||||
\centering
|
||||
\fbox{\includegraphics[width=0.65\linewidth]{test_cases/t8_2.png}}
|
||||
\caption{Test Case 08 - Validation of Invalid Characters}
|
||||
\label{figure:t08_2}
|
||||
\end{figure}
|
||||
|
@ -257,7 +264,7 @@ The following test cases are all structured in the same way. The table lists the
|
|||
\item{The user is notified that the sending has started and the text that was entered is sent using the MagSend protocol by stressing the CPU according to the payload}
|
||||
\end{enumerate} \\
|
||||
Actual Result &
|
||||
When the user starts the sending process the "Start Sending" button changes to "Stop Sencing" and a message appears that indicates that the sending is is in process (see \autoref{figure:t09}).
|
||||
When the user starts the sending process, the "Start Sending" button changes to "Stop Sencing" and a message appears that indicates that the sending is in process (see \autoref{figure:t09}).
|
||||
|
||||
In the CPU utilization during the sending, the structure of the preamble and the packet itself can be seen (see \autoref{figure:t09_2}).\\
|
||||
\end{reqTblr}
|
||||
|
@ -265,13 +272,15 @@ The following test cases are all structured in the same way. The table lists the
|
|||
\end{table}
|
||||
|
||||
\begin{figure}[H]
|
||||
\includegraphics[width=0.5\linewidth]{test_cases/t9.png}
|
||||
\centering
|
||||
\fbox{\includegraphics[width=0.65\linewidth]{test_cases/t9.png}}
|
||||
\caption{Test Case 09 - Website when Sending a Message}
|
||||
\label{figure:t09}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[H]
|
||||
\includegraphics[width=0.5\linewidth]{test_cases/t9_2.png}
|
||||
\centering
|
||||
\includegraphics[width=\linewidth]{test_cases/t9_2.png}
|
||||
\caption{Test Case 09 - CPU Utilization when Sending a Message}
|
||||
\label{figure:t09_2}
|
||||
\end{figure}
|
||||
|
@ -286,10 +295,10 @@ The following test cases are all structured in the same way. The table lists the
|
|||
\item{The user opens the website in a web browser}
|
||||
\item{The user clicks on the "Start Sending" button}
|
||||
\item{The user then clicks on the new "Stop Sencding" button}
|
||||
\item{The sending is stopped and the CPU should not be utilized anymore}
|
||||
\item{The sending is stopped, and the CPU should not be utilized anymore}
|
||||
\end{enumerate} \\
|
||||
Actual Result &
|
||||
When the user clicks on the "Stop Sending" button, the message about the sending disappears and the button switches back to "Start Sending" and the website should look like if it just has been opened.
|
||||
When the user clicks on the "Stop Sending" button, the message about the sending disappears and the button switches back to "Start Sending" and the website should look like if it has just been opened.
|
||||
|
||||
After stopping the sending, the CPU utilization also goes back down to normal levels (see \autoref{figure:t10}).
|
||||
\\
|
||||
|
@ -298,7 +307,8 @@ The following test cases are all structured in the same way. The table lists the
|
|||
\end{table}
|
||||
|
||||
\begin{figure}[H]
|
||||
\includegraphics[width=0.5\linewidth]{test_cases/t10.png}
|
||||
\centering
|
||||
\includegraphics[width=\linewidth]{test_cases/t10.png}
|
||||
\caption{Test Case 10 - CPU Utilization after Stopping the Sending}
|
||||
\label{figure:t10}
|
||||
\end{figure}
|
||||
|
@ -314,10 +324,10 @@ The following test cases are all structured in the same way. The table lists the
|
|||
\item{The user puts the smartphone on the laptop}
|
||||
\item{The user clicks on the "Receive" button}
|
||||
\item{The user starts the sending process on the website}
|
||||
\item{The app will start the receive process and will indicate if the preamble was detected, the length of the received payload, and if the checksum is valid. The received text is also displayed.}
|
||||
\item{The app will start the reception process and will indicate if the preamble was detected, the length of the received payload, and if the checksum is valid. The received text is also displayed.}
|
||||
\end{enumerate} \\
|
||||
Actual Result &
|
||||
When the users starts the receiving process they are informed about the current process of the receive status. They are informed whether the preamble was detected, the length of the payload and if the checksum is valid. They can also see the currently received text at all times (see \autoref{figure:t11}).
|
||||
When the users starts the reception process they are informed about the current process of the receive status. They are informed whether the preamble was detected, the length of the payload and if the checksum is valid. They can also see the currently received text at all times (see \autoref{figure:t11}).
|
||||
|
||||
When the checksum is invalid the user is informed about it (see \autoref{figure:t11_2}).
|
||||
\\
|
||||
|
@ -326,22 +336,26 @@ The following test cases are all structured in the same way. The table lists the
|
|||
\end{table}
|
||||
|
||||
\begin{figure}[H]
|
||||
\includegraphics[width=0.5\linewidth]{test_cases/t11.jpg}
|
||||
\caption{Test Case 11 - Receive Process without any Errors}
|
||||
\label{figure:t11}
|
||||
\begin{minipage}{.5\textwidth}
|
||||
\centering
|
||||
\fbox{\includegraphics[width=0.8\linewidth]{test_cases/t11.jpg}}
|
||||
\caption{Test Case 11 - Reception Process without any Errors}
|
||||
\label{figure:t11}
|
||||
\end{minipage}
|
||||
\begin{minipage}{.5\textwidth}
|
||||
\centering
|
||||
\fbox{\includegraphics[width=0.8\linewidth]{test_cases/t11_2.jpg}}
|
||||
\caption{Test Case 11 - Reception Process with Invalid Checksum}
|
||||
\label{figure:t11_2}
|
||||
\end{minipage}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[H]
|
||||
\includegraphics[width=0.5\linewidth]{test_cases/t11_2.jpg}
|
||||
\caption{Test Case 11 - Receive Process with Invalid Checksum}
|
||||
\label{figure:t11_2}
|
||||
\end{figure}
|
||||
|
||||
\begin{table}[H]
|
||||
\begin{reqTblr}{l p{10.5cm}}
|
||||
ID & T12 \\
|
||||
Related Requirement & F05 \\
|
||||
Description & The user can restart the receive process.\\
|
||||
Description & The user can restart the reception process.\\
|
||||
Expected Result &
|
||||
\begin{enumerate}
|
||||
\item{The user opens the app}
|
||||
|
@ -349,10 +363,10 @@ The following test cases are all structured in the same way. The table lists the
|
|||
\item{The user clicks on the "Receive" button in the app}
|
||||
\item{The user starts the sending process on the website}
|
||||
\item{The user clicks on the "Restart" button in the app}
|
||||
\item{The app should reset the receive progress to a clean state}
|
||||
\item{The app should reset the reception progress to a clean state}
|
||||
\end{enumerate} \\
|
||||
Actual Result &
|
||||
When the user clicks on the "Restart" button the received text gets removed and all status informations are reset to their default state.
|
||||
When the user clicks on the "Restart" button, the received text gets removed and all status information is reset to their default state.
|
||||
\\
|
||||
\end{reqTblr}
|
||||
\caption{Test Case 12}
|
||||
|
@ -362,17 +376,17 @@ The following test cases are all structured in the same way. The table lists the
|
|||
\begin{reqTblr}{l p{10.5cm}}
|
||||
ID & T13 \\
|
||||
Related Requirement & F05 \\
|
||||
Description & The user can stop the receive process.\\
|
||||
Description & The user can stop the reception process.\\
|
||||
Expected Result &
|
||||
\begin{enumerate}
|
||||
\item{The user opens the app}
|
||||
\item{The user puts the smartphone on the laptop}
|
||||
\item{The user clicks on the "Receive" button in the app}
|
||||
\item{While on the receive screen the user clicks on the back arrow in the upper left corner}
|
||||
\item{While on the reception screen, the user clicks on the back arrow in the top left corner}
|
||||
\item{The user should be back on the home screen of the app}
|
||||
\end{enumerate} \\
|
||||
Actual Result &
|
||||
After clicking the back arrow inside the receive screen the user arrives back on the home screen and can choose again between "Receive" and "Calibrate".
|
||||
After clicking the back arrow inside the reception screen, the user arrives back on the home screen and can choose again between "Receive" and "Calibrate".
|
||||
\\
|
||||
\end{reqTblr}
|
||||
\caption{Test Case 13}
|
||||
|
@ -393,14 +407,15 @@ The following test cases are all structured in the same way. The table lists the
|
|||
\item{The app should still be able to receive messages over MagSend}
|
||||
\end{enumerate} \\
|
||||
Actual Result &
|
||||
Even in airplane mode the app can still receive data over MagSend as this process doesn't use any connectivity but only the inbuilt sensors of the smartphone (see \autoref{figure:t14}).
|
||||
Even in airplane mode, the app can still receive data over MagSend as this process doesn't use any connectivity but only the inbuilt sensors of the smartphone (see \autoref{figure:t14}).
|
||||
\\
|
||||
\end{reqTblr}
|
||||
\caption{Test Case 14}
|
||||
\end{table}
|
||||
|
||||
\begin{figure}[H]
|
||||
\includegraphics[width=0.5\linewidth]{test_cases/t14.jpg}
|
||||
\centering
|
||||
\includegraphics[width=0.4\linewidth]{test_cases/t14.jpg}
|
||||
\caption{Test Case 14 - Receive Process in Airplane Mode}
|
||||
\label{figure:t14}
|
||||
\end{figure}
|
||||
|
@ -419,10 +434,8 @@ The following test cases are all structured in the same way. The table lists the
|
|||
\item{The transfer speed between laptop and smartphone should at least be \SI{1}{\bit\per\second}}
|
||||
\end{enumerate} \\
|
||||
Actual Result &
|
||||
The clock speed of the transmitted signal is 500ms. As the MagSend payload is encoded using a manchester code, which doubles to data size, this means every second 1 bit gets transmitted. For more information about data rate benchmarks please refer to \autoref{chapter:benchmarking}.
|
||||
The clock speed of the transmitted signal is 500ms. As the MagSend payload is encoded using a manchester code, which doubles the data size, this means every second 1 bit gets transmitted. For more information about data rate benchmarks, please refer to \autoref{chapter:benchmarking}.
|
||||
\\
|
||||
\end{reqTblr}
|
||||
\caption{Test Case 15}
|
||||
\end{table}
|
||||
|
||||
// TODO: Fix up sizing of images
|
||||
|
|
Reference in a new issue