<commit_before>\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[ngerman]{translator}
\usepackage[T1]{fontenc}
\usepackage{enumitem}
\usepackage{graphicx}
\usepackage{geometry}
\usepackage{float}
\usepackage{url}
\usepackage[bottom]{footmisc}
\usepackage{hyperref}
\usepackage[nonumberlist, section=subsection]{glossaries}
\usepackage{tabularx}

\usepackage{pifont}
\newcommand{\cmark}{\ding{51}}

\title{\textbf{Validierungsphase} \\ Cryptographics}
\author{}
\date{\today}

%Glossar-Befehle anschalten
\makeglossaries
% \newglossaryentry{identifier}{name={Name}, description={Description}}

\begin{document}

% The cover page.
\maketitle
\begin{table}[b]
  \begin{tabular}{| l | l | l |}
    \hline
    \textbf{Phase} & \textbf{Verantwortlicher} & \textbf{Email} \\ \hline
    Pflichtenheft & <NAME> & <EMAIL> \\ \hline
    Entwurf & <NAME> & <EMAIL> \\
            & <NAME> & <EMAIL> \\ \hline
    Implementierung & <NAME> & <EMAIL> \\ \hline
    Qualitätssicherung & <NAME> & <EMAIL> \\ \hline
    Präsentation & <NAME> & <EMAIL> \\ \hline
    \end{tabular}
\end{table}
\thispagestyle{empty}
\newpage

% Table of contents page.
\tableofcontents
\newpage

% Start of the actual document.
\section{Einleitung}
text here

\section{Testszenarien}
  Die folgenden Testszenarien sind bereits im Pflichtenheft im Kapitel 8 ``Testszenarien'' spezifiziert. Hier
  findet sich nur eine tabellarische Darstellnug derselben, um Funktionen, die im Fließtext beschrieben werden,
  einzeln verifizieren zu können.
  
  \subsection{Szenario 1}
    \begin{table}[H]
      \begin{tabularx}{\textwidth}{| >{\raggedright\arraybackslash}X | c |}
        \hline
        \textbf{Funktion} & \textbf{Erfüllt?} \\
        \hline
        Startbildschirm wird angezeigt & \cmark \\
        \hline
        Zeitleiste wird angezeigt & \cmark \\
        \hline
        Verfahren werden auf Zeitleiste dargestellt & \cmark \\
        \hline
        Verfahren sind farblich gekennzeichnet & \cmark \\
        \hline
        Caesar-Verfahren kann ausgewählt werden & \cmark \\
        \hline
        Popover mit Zusammenfassung wird dargestellt & \cmark \\
        \hline
        Verfahren kann gestartet werden & \cmark \\
        \hline
        Verfahren erlaubt mehrschrittige Navigation & \cmark \\
        \hline
        Verfahren enthält Einleitung & \cmark \\
        \hline
        Selbstversuch zur Verschlüsselung funktioniert & \cmark \\
        \hline
        Selbstversuch zur Entschlüsselung funktioniert & \cmark \\
        \hline
        Rückkehr zum Startbildschirm ist möglich & \cmark \\
        \hline
        Auswahl eines anderen Verfahrens ist möglich & \cmark \\
        \hline
        Am Ende des Verfahrens werden weitere Informationen sowie QR-Code dargestellt & \cmark \\
        \hline
        QR-Code enthält Link zu weiteren Informationen & \cmark \\
        \hline
      \end{tabularx}
    \end{table}

  \subsection{Szenario 2}
    \begin{table}[H]
      \begin{tabularx}{\textwidth}{| >{\raggedright\arraybackslash}X | c |}
        \hline
        \textbf{Funktion} & \textbf{Erfüllt?} \\
        \hline
        Zufällige Eingabe bringt das Programm nicht zum Abstürzen & \cmark \\
        \hline
        Verfahren kann ausgewählt werden & \cmark \\
        \hline
        Programm hat jederzeit einen Button um zum Startbildschirm zurückzukehren & \cmark \\
        \hline
      \end{tabularx}
    \end{table}

  \subsection{Szenario 3}
    \textit{Hinweis: Die Variablen x und y richten sich nach der aktuellen Konfiguration des Programmes. Hierbei
      ist x der Wert des Parameters \texttt{idleTimeout} sowie y der Wert des Parameters \texttt{resetTimeout}.}
    \newline

    \begin{table}[H]
      \begin{tabularx}{\textwidth}{| >{\raggedright\arraybackslash}X | c |}
        \hline
        \textbf{Funktion} & \textbf{Erfüllt?} \\
        \hline
        Verfahren kann ausgewählt werden & \cmark \\
        \hline
        Programm erkennt fehlende Eingabe nach x Sekunden & \cmark \\
        \hline
        Programm zeigt Warnhinweis, dass sich das Programm in y Sekunden zurücksetzen wird, dar & \cmark \\
        \hline
        Nach y Sekunden kehrt das Programm automatisch zum Startbildschirm zurück & \cmark \\
        \hline
      \end{tabularx}
    \end{table}

  \subsection{Szenario 4}

    \begin{table}[H]
      \begin{tabularx}{\textwidth}{| >{\raggedright\arraybackslash}X | c |}
        \hline
        \textbf{Funktion} & \textbf{Erfüllt?} \\
        \hline
        Programm läuft im Vollbildmodus & \cmark \\
        \hline
        Programm hat keine Möglichkeit um per Touchscreen-Eingabe zum Betriebssystem zurückzukehren & \cmark \\
        \hline
        Programm kann mithilfe einer angeschlossenen Hardwaretastatur beendet werden & \cmark \\
        \hline
      \end{tabularx}
    \end{table}

\section{Coverage-Tests}
text here
  % They devide it like this on their table of contents,
  % but since we only have juint test cases, this might be 
  % senseless?
  \subsection{Abdeckung der JUnit-Testfälle}
    \subsubsection{Klasse ABC}
    \subsubsection{Klasse XYZ}
  \subsection{Abdeckung aller Testfälle}

\section{Regressionstests}
text here

\section{Beschreibung der Fehler}
text here

% We may need this, or not...
\section{Anhang}
text here

\section{Glossar}
text here

 \restoregeometry
<commit_msg>Added the discription of the usability bugs in Caesar to the 'Validierungsheft'.<commit_after>\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[ngerman]{translator}
\usepackage[T1]{fontenc}
\usepackage{enumitem}
\usepackage{graphicx}
\usepackage{geometry}
\usepackage{float}
\usepackage{url}
\usepackage[bottom]{footmisc}
\usepackage{hyperref}
\usepackage[nonumberlist, section=subsection]{glossaries}
\usepackage{tabularx}

\usepackage{pifont}
\newcommand{\cmark}{\ding{51}}

\title{\textbf{Validierungsphase} \\ Cryptographics}
\author{}
\date{\today}

%Glossar-Befehle anschalten
\makeglossaries
% \newglossaryentry{identifier}{name={Name}, description={Description}}

\begin{document}

% The cover page.
\maketitle
\begin{table}[b]
  \begin{tabular}{| l | l | l |}
    \hline
    \textbf{Phase} & \textbf{Verantwortlicher} & \textbf{Email} \\ \hline
    Pflichtenheft & <NAME> & <EMAIL> \\ \hline
    Entwurf & <NAME> & <EMAIL> \\
            & <NAME> & <EMAIL> \\ \hline
    Implementierung & <NAME> & <EMAIL> \\ \hline
    Qualitätssicherung & <NAME> & <EMAIL> \\ \hline
    Präsentation & <NAME> & <EMAIL> \\ \hline
    \end{tabular}
\end{table}
\thispagestyle{empty}
\newpage

% Table of contents page.
\tableofcontents
\newpage

% Start of the actual document.
\section{Einleitung}
text here

\section{Testszenarien}
  Die folgenden Testszenarien sind bereits im Pflichtenheft im Kapitel 8 ``Testszenarien'' spezifiziert. Hier
  findet sich nur eine tabellarische Darstellnug derselben, um Funktionen, die im Fließtext beschrieben werden,
  einzeln verifizieren zu können.
  
  \subsection{Szenario 1}
    \begin{table}[H]
      \begin{tabularx}{\textwidth}{| >{\raggedright\arraybackslash}X | c |}
        \hline
        \textbf{Funktion} & \textbf{Erfüllt?} \\
        \hline
        Startbildschirm wird angezeigt & \cmark \\
        \hline
        Zeitleiste wird angezeigt & \cmark \\
        \hline
        Verfahren werden auf Zeitleiste dargestellt & \cmark \\
        \hline
        Verfahren sind farblich gekennzeichnet & \cmark \\
        \hline
        Caesar-Verfahren kann ausgewählt werden & \cmark \\
        \hline
        Popover mit Zusammenfassung wird dargestellt & \cmark \\
        \hline
        Verfahren kann gestartet werden & \cmark \\
        \hline
        Verfahren erlaubt mehrschrittige Navigation & \cmark \\
        \hline
        Verfahren enthält Einleitung & \cmark \\
        \hline
        Selbstversuch zur Verschlüsselung funktioniert & \cmark \\
        \hline
        Selbstversuch zur Entschlüsselung funktioniert & \cmark \\
        \hline
        Rückkehr zum Startbildschirm ist möglich & \cmark \\
        \hline
        Auswahl eines anderen Verfahrens ist möglich & \cmark \\
        \hline
        Am Ende des Verfahrens werden weitere Informationen sowie QR-Code dargestellt & \cmark \\
        \hline
        QR-Code enthält Link zu weiteren Informationen & \cmark \\
        \hline
      \end{tabularx}
    \end{table}

  \subsection{Szenario 2}
    \begin{table}[H]
      \begin{tabularx}{\textwidth}{| >{\raggedright\arraybackslash}X | c |}
        \hline
        \textbf{Funktion} & \textbf{Erfüllt?} \\
        \hline
        Zufällige Eingabe bringt das Programm nicht zum Abstürzen & \cmark \\
        \hline
        Verfahren kann ausgewählt werden & \cmark \\
        \hline
        Programm hat jederzeit einen Button um zum Startbildschirm zurückzukehren & \cmark \\
        \hline
      \end{tabularx}
    \end{table}

  \subsection{Szenario 3}
    \textit{Hinweis: Die Variablen x und y richten sich nach der aktuellen Konfiguration des Programmes. Hierbei
      ist x der Wert des Parameters \texttt{idleTimeout} sowie y der Wert des Parameters \texttt{resetTimeout}.}
    \newline

    \begin{table}[H]
      \begin{tabularx}{\textwidth}{| >{\raggedright\arraybackslash}X | c |}
        \hline
        \textbf{Funktion} & \textbf{Erfüllt?} \\
        \hline
        Verfahren kann ausgewählt werden & \cmark \\
        \hline
        Programm erkennt fehlende Eingabe nach x Sekunden & \cmark \\
        \hline
        Programm zeigt Warnhinweis, dass sich das Programm in y Sekunden zurücksetzen wird, dar & \cmark \\
        \hline
        Nach y Sekunden kehrt das Programm automatisch zum Startbildschirm zurück & \cmark \\
        \hline
      \end{tabularx}
    \end{table}

  \subsection{Szenario 4}

    \begin{table}[H]
      \begin{tabularx}{\textwidth}{| >{\raggedright\arraybackslash}X | c |}
        \hline
        \textbf{Funktion} & \textbf{Erfüllt?} \\
        \hline
        Programm läuft im Vollbildmodus & \cmark \\
        \hline
        Programm hat keine Möglichkeit um per Touchscreen-Eingabe zum Betriebssystem zurückzukehren & \cmark \\
        \hline
        Programm kann mithilfe einer angeschlossenen Hardwaretastatur beendet werden & \cmark \\
        \hline
      \end{tabularx}
    \end{table}

\section{Coverage-Tests}
text here
  % They devide it like this on their table of contents,
  % but since we only have juint test cases, this might be 
  % senseless?
  \subsection{Abdeckung der JUnit-Testfälle}
    \subsubsection{Klasse ABC}
    \subsubsection{Klasse XYZ}
  \subsection{Abdeckung aller Testfälle}

\section{Regressionstests}
text here

\section{Beschreibung der Fehler}
  Die meisten Bugs kamen aus der Sparte \textbf{Usability}. Vieles war in der Implementierungsphase nicht zu entdecken, da man damit beschäftigt
  war die UI überhaupt zum funktionieren zu bringen. Die meisten Schwierigkeiten machte da der \textbf{Layoutmanager}, der für uns oft nicht
  nachvollziehbare Reaktionen auf die Auslegung unsere UI-Elemente zeigte.\newline 
  Dies erschwerte beträchtlich die Auslegung einer \textbf{benutzerfreundlichen UI} und führte zu vielen Mängel, die man
  nur sehr spät entdeckt hatte. Somit sind in der Qualitätssicherung hauptsächlich usability Bugs ausgebessert worden. 
  Man hat Feedback zur UI unter anderem auch von unabhängigen Personen herangezogen und sich anhand dessen orientiert. 
  
  \subsection{Usability Bugs}
    \subsubsection{Caesar}
     \begin{enumerate}
      \item Das größte Problem bei der Caesar-UI waren die \textbf{springenden} UI-Elemente, die an ihrem ursprünglichen Ort hätten bleiben sollen.
            Wenn allerdings ein neuer UI-Element erschienen ist oder ein alter verschwunden, beispielweise ein Button, dann hat der Layoutmanager kurzerhand auch alle anderen
            Elemente nach seinem Belieben ausgerichet. Dies führte oft zu zufälligen Ergebnissen, die nicht nachvollzierbar waren. Manchmal sogar nicht reproduzierbar.
            Nichtsdestotrotz konnte man nicht alle Fehler dieser Art beseitigen, da man den Ursprung nicht finden konnte.\newline 
            Es wäre zwar möglich die UI von einem anderen Layoutmanager auslegen zu lassen, jedoch hätte das den Zeitrahmen gesprengt, da die UI
            auf den \textbf{GridBagLayoutManager} ausgerichtet war. Das hätte ein völliges Neuschreiben der UI bedeutet. 
            
      \item Auch ein Problem waren die \textbf{Erklärungen}. Es hat sich herausgestellt, dass diese größtenteils sehr {unintuitiv} waren.
            Viele der Testpersonen haben sehr große Schwierigkeiten gehabt, da die Texte anfangs größer waren und eine kleinere Schrift hatten.
            Das erzeugte viel Mühseligkeit und war alles andere als \textbf{benutzerfreundlich}.\newline
            Auch wenn das nix zur Logik des Programms beigetragen hat, so hat es die \textbf{Benutzerfreundlichkeit} erheblich verbessert. 
            Schriftart wurde größer gesetzt und die Zeichen dick dargestellt, damit diese die \textbf{Aufmerksamkeit} des Users als erste auffangen.
            
      \item Viele \textbf{Unklarheiten} kamen mit der UI einher. Vor allem die Funktionalität mancher UI-Elemente war nicht auf einen Blick ersichtlich.
            Das erschwerte die Visualisierung, da der User die meiste Zeit damit beschäftigt war sich mit der UI rumzuschlagen. Es bestand die Gefahr, dass
            der Inhalt der UI in den Hintergrund gerückt wird und bei dem User \textbf{Frust} aufkommen könnte.\newline
            Das beste Beispiel war das \textbf{Alphabet} in der Demonstration des Verfahrens. Der Sinn dessen war für den User nicht ersichtlich.
            So kam es dazu, dass der User versucht hat vergeblich das Alphabet \textbf{anzuklicken}. Dies führte zu \textbf{Irritationen}. Folgedessen wurde das Alphabet 
            in der Demonstration \textbf{entfernt}.\newline
            Ein anderes Beispiel ist das ``Brute Force'' Experiment. Dieses leidete unter \textbf{mehreren} Mängeln. Die \textbf{ganze} UI war irritierend und unintuitiv.
            Viele der Testpersonen waren damit deutlich überfordert. Selbst die Erklärungen haben nicht deutlich machen können, was zu tun ist. 
            Man musste sich vieles selbst zusammenreimen. Die ganze UI wurde dann unter Usablity-Bugs eingestuft und musste überarbeitet werden.
            \begin{itemize}
             \item Als erstes wurde die \textbf{Farbe} des ``brute force'' Kastens zu \textbf{blau} umgestellt. Dies dient der Einheitlichkeit, da die ganze UI einen blauen 
                   Ton hat. Mehrere Testpersonen haben positiv drauf reagiert.
             
             \item Die eigentliche Erklärung der ``brute force'' Methode wurde in den Kasten verlagert. Und eine andere Erklärung drunter um die die Bedeutung
                   des Buttons zur den Histogrammen zu verdeutlichen. Früher stand dieser ohne viel Erklärung rum und führte zu vielen Beschwerden.
                   
             \item Der Button, der zu den Histogrammen führt wurde ganz nach unten verlagert, damit er die \textbf{Aufmerksamkeit} nicht fängt.
% 
             \item Ein letztes großes Problem dieses Experiments war, dass beim Finden des richtigen Schlüssels der Kasten \textbf{grün blieb} und die Glückwunsch Meldung
                   \textbf{nicht verschwand} auch wenn man weitere Schlüssel durchprobiert habe. Dies führte dazu, dass der User in vielen Fällen einen \textbf{Fehler} im Programm
                   angenommen hat. Dies wurde ausgebessert, sodass sich die Meldungen und der Kanten des Kastens dem aktuellen Schlüssel anpassen.
            \end{itemize}
     \end{enumerate}


% We may need this, or not...
\section{Anhang}
text here

\section{Glossar}
text here

 \restoregeometry

{'fraction_non_alphanumeric': 0.08471361739790112, 'fraction_numerical': 0.0011379441143001643, 'mean_word_length': 2.8026442307692307, 'pattern_counts': {'":': 0, '<': 27, '<?xml version=': 0, '>': 35, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 1, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3214705', 'n_tokens_mistral': 5020, 'n_tokens_neox': 5156, 'n_words': 1505}