diff options
Diffstat (limited to '30-qualitaetsheft/sections/coverage.tex')
-rw-r--r-- | 30-qualitaetsheft/sections/coverage.tex | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/30-qualitaetsheft/sections/coverage.tex b/30-qualitaetsheft/sections/coverage.tex new file mode 100644 index 0000000..b8ba635 --- /dev/null +++ b/30-qualitaetsheft/sections/coverage.tex @@ -0,0 +1,59 @@ +\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.
\ No newline at end of file |