summaryrefslogtreecommitdiff
path: root/30-qualitaetsheft/sections/coverage.tex
diff options
context:
space:
mode:
Diffstat (limited to '30-qualitaetsheft/sections/coverage.tex')
-rw-r--r--30-qualitaetsheft/sections/coverage.tex59
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