59 lines
2.5 KiB
TeX
59 lines
2.5 KiB
TeX
\section{Codeabdeckung}
|
|
|
|
\subsection{Einleitung}
|
|
|
|
Die Codeabdeckung ist eine Methodik den Code weitflächig zu durchlaufen, um eine korrekte Verhaltensweise des Synchronisationsservers sicherzustellen.
|
|
Die Knotenabdeckung stellt hierbei sicher, dass möglichst jede Instruktion im Code von mindestens einem Test durchlaufen wird.
|
|
Die Zweigabdeckung stellt sicher, dass möglichst jeder Zweig (bspw. bei Verzweigungen) von mindestens einem Test durchlaufen wird.
|
|
Schließlich gibt es noch die Pfadabdeckung, die sicherstellt, dass möglichst jeder Pfad von mindestens einem Test durchlaufen wird.
|
|
|
|
In diesem Fall liegt der Fokus auf den ersten beiden Abdeckungen.
|
|
Um die Codeabdeckung zu messen und zu dokumentieren, wurde das Tool JaCoCo verwendet.
|
|
Viele Klassen des Projekts sind lediglich Model-Klassen oder dienen
|
|
ausschließlich als Schicht zur Weiterleitung von Daten, weshalb
|
|
diese bereits implizit abgedeckt sind.
|
|
|
|
Zusätzlich werden durch das Tool Lombok, dem Framework Spring oder den JPA Repositories
|
|
Methoden implizit eingebunden, welche dadurch nicht selbst implementiert werden müssen
|
|
und bereits ausgiebig getestet sind.
|
|
Dadurch ist eine explizite Abdeckung all dieser Methoden überflüssig,
|
|
weshalb die Codeabdeckung nicht sonderlich hoch erscheint.
|
|
|
|
In den Klassen erzielt, deren Funktionalität von Hand implementiert worden sind, ergibt sich wiederum mit den Tests eine hohe Codeabdeckung.
|
|
|
|
\subsection{Insgesamte Abdeckung}
|
|
\begin{figure}[h]
|
|
\centering
|
|
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{assets/coverage/server.png}
|
|
\end{figure}
|
|
Model-Paket und Controller-Klassen sind implizit durch ServiceTests
|
|
abgedeckt.
|
|
|
|
|
|
\subsection{Authentication Service}
|
|
\begin{figure}[h]
|
|
\centering
|
|
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{assets/coverage/authenticationService.png}
|
|
\end{figure}
|
|
|
|
|
|
\subsection{Subscriptions Service}
|
|
\begin{figure}[h]
|
|
\centering
|
|
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{assets/coverage/subscriptionsService.png}
|
|
\end{figure}
|
|
|
|
\subsection{EpisodeAction Service}
|
|
\begin{figure}[h]
|
|
\centering
|
|
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{assets/coverage/episodeActionService.png}
|
|
\end{figure}
|
|
|
|
|
|
\subsection{Util Paket}
|
|
\begin{figure}[h]
|
|
\centering
|
|
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{assets/coverage/util.png}
|
|
\end{figure}
|
|
UpdateUrlsWrapper ist lediglich ein Platzhalter für die leere UpdateUrls Liste,
|
|
welche zurückgeben wird, da diese Funktion nicht unterstützt wird. |