From 7b22070562b2655bbd67a44e63554691ce81d7db Mon Sep 17 00:00:00 2001 From: "M.Scholz" Date: Thu, 8 Dec 2011 15:32:14 +0100 Subject: [PATCH] Latex QS und User Stories --- .gitignore | 6 + ws2011/BP/QS-Dokument/QS-Dokument.pdf | Bin 69649 -> 79757 bytes ws2011/BP/QS-Dokument/QS-Dokument.tex | 85 +- ws2011/BP/User Stories/userStories.pdf | Bin 22138 -> 62873 bytes ws2011/BP/User Stories/userStories.tex | 411 ++--- ws2011/BP/alte BPs Unterlagen/Dave/Qdoc.tex | 1505 +++++++++++++++++++ 6 files changed, 1721 insertions(+), 286 deletions(-) create mode 100644 ws2011/BP/alte BPs Unterlagen/Dave/Qdoc.tex diff --git a/.gitignore b/.gitignore index be8e2ba8..965140db 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,9 @@ ws2011/BP/User Stories/userStories.synctex.gz ws2010/.DS_Store ws2010/se/.DS_Store ws2011/BP/alte BPs Unterlagen/.DS_Store + +ws2011/BP/QS-Dokument/QS-Dokument.syg + +ws2011/BP/QS-Dokument/QS-Dokument.glo + +ws2011/BP/QS-Dokument/QS-Dokument.ist diff --git a/ws2011/BP/QS-Dokument/QS-Dokument.pdf b/ws2011/BP/QS-Dokument/QS-Dokument.pdf index 6ac876b82dc973f3374d01adc45f7ebf2c14b6b9..5126a4980607608512bc8d9ba8ec66dd6ad27a59 100644 GIT binary patch delta 38030 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 C{}-$P diff --git a/ws2011/BP/QS-Dokument/QS-Dokument.tex b/ws2011/BP/QS-Dokument/QS-Dokument.tex index f4c0e5cd..a5965740 100644 --- a/ws2011/BP/QS-Dokument/QS-Dokument.tex +++ b/ws2011/BP/QS-Dokument/QS-Dokument.tex @@ -2,10 +2,29 @@ \usepackage[latin9]{inputenc} %unter Linux muss latin9 durch utf8 ersetzt werden!! \usepackage[ngerman]{babel} \usepackage{enumitem} -\usepackage[pdftitle={Qualitätssicherungsdokument}] -{hyperref} +%\usepackage[style=long,hyper=true,number=page]{glossary} +\usepackage{glossaries} +\usepackage[pdftitle={Qualitätssicherungsdokument}]{hyperref} +\makeglossary +% % GLOSSAR % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % +%\storeglosentry{CO} +%{name=CO, +%description={Kohlenstoffmonoxid (chemische Verbindung)}, +%sort=CO +%} + + + +%\storeglosentry {WebApp} {name={WebApp}, description={der Name, unter dem die Software entwickelt wird} } + + +\newglossaryentry{CO2} +{name=CO2, +description={Kohlenstoffdioxid (chemische Verbindung)} +} + \begin{document} \title{Qualitätssicherungsdokument\\ @@ -16,9 +35,11 @@ Wintersemester 2011/2012} Gruppe 1b: Murat Batu, Ulf Gebhardt, Lulzim Murati, Michael Scholz\\ Teamleiter: Dominik Fischer } +\subsubtitle{Verison: 0.0.1} + +\author{Murat Batu, Ulf Gebhardt, Lulzim Murati, Michael Scholz} \maketitle - %Inhaltsverzeichnis anzeigen \tableofcontents @@ -43,7 +64,7 @@ Da das Projekt auf insgesamt drei Gruppen aufgeteilt wurde, werden in diesem Dok \section{Qualitätsziele} \subsection{Code} -codequalität +Hier ein zitat mit verweis: >>Damit nur hochwertiges Wissen erzeugt und als Grundlage für weitere Arbeiten nutzbar gemacht wird, gibt es internationale Standards für wissenschaftliche Qualität<< \cite[S.9]{bss+:2008} \subsection{Dokumente} dokumentqulität @@ -81,43 +102,35 @@ ma \section{Versionshistorie} Für eine bessere Nachvollziehbarkeit sind die Änderungen in diesem Dokument tabellarisch festgehalten. - -\begin{tabular}{ || l | p{12cm} || } - +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Noch eine version & test \\ +\hline \rule[-2ex]{0pt}{5.5ex} test & hier soll ein Link zu \glossary{CO} und \glossary{CO2} stehen \\ +\hline \rule[-2ex]{0pt}{5.5ex} test & dies soll nur ein langer sinnloser text werden, damit man überprüfen kann, ob auch der zeilenumbruch in der tabelle funktioniert.\\ +\hline \rule[-2ex]{0pt}{5.5ex} v. 0.0.0 - 01.12.2011 - MS & Dokument angelegt\\ \hline -v. 0.0.0 - 01.12.2011 - MS & Dokument angelegt -\\ \hline -test & dies soll nur ein langer sinnloser text werden, damit man überprüfen kann, ob auch der zeilenumbruch in der tabelle funktioniert. -\\ \hline -test & test2 -\\ \hline -test & test2 -\\ \hline -test & test2 -\\ \hline -test & test2 -\\ \hline -test & test2 -\\ \hline -test & test2 -\\ \hline -test & test2 -\\ \hline -test & test2 -\\ \hline -test & test2 -\\ \hline -test & test2 -\\ \hline +\end{tabular} +\end{tabbing} + +\newpage +%fügt elemenmte dem toc hinzu +\addcontentsline{toc}{section}{Glossar} +\printglossary + + + -\end{tabular} \newpage -\addsec{Glossar} %keine Nummerierung im Inhaltsverzeichnis einfügen - -\newpage -\addsec{Literatur} %keine Nummerierung im Inhaltsverzeichnis einfügen +%fügt elemenmte dem toc hinzu +\addcontentsline{toc}{section}{Literatur} +\begin{thebibliography}{------} + \bibitem[BSS+2008]{bss+:2008} Helmut Balzert, Christian Schäfer, Marion Schröder, Uwe Kern. \emph{Wissenschaftliches Arbeiten - Wissenschaft, Quellen, Artefakte, Organisation, Präsentation}, Witten: W3L, 2008 + \bibitem[ISO9126]{iso:9126} International Organization for Standardization.\emph{ISO/IEC 9126} + \bibitem[ISO9001]{iso:9001} International Organization for Standardization. \emph{ISO 9001}, 12.2008 + \bibitem[WIKI2011]{wiki:2011} Wikipedia, die freie Enzyklopädie. \emph{WIKIPEDIA}, Stand: 26.02.2011 +\end{thebibliography} %neue Seite \newpage diff --git a/ws2011/BP/User Stories/userStories.pdf b/ws2011/BP/User Stories/userStories.pdf index 49a6d1d97a602a82b1c9eb24dc53bc9d54922c53..0e424896f6c7a09dac677c799bdd7180a2656982 100644 GIT binary patch delta 52156 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

tO{AOo- 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 Vq9`?u%go5c!jwx@)z#mP3jiM`iCzEz delta 11233 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 +%\setinstitutionlogo[width | height]{} +%\sponsor{Gruppe: DDHV} + + +%SOLL soll dem IST weichen + +\begin{document} + +\bibliographystyle{alphadin} + +\maketitle + +\tableofcontents +\newpage + +\storeglosentry{WebApp}{name={WebApp},description={der Name, unter dem die Software entwickelt wird}} +\storeglosentry{StartUp}{name={StartUp},description={neu gestartete Unternehmen}} +\storeglosentry{SpinOff}{name={SpinOff},description={ein gestartetes Unternehmen, das z.B. gewonnene Erkenntnisse einer Studienarbeit an der Uni als Geschäftsbasis nutzt}} +\storeglosentry{AJAX}{name={AJAX},description={AJAX steht im Kontext für ,,Asynchronous JavaScript and XML'' und ermöglicht die asynchrone Dateiübertragung zwischen Browser und Server. Viele Anwendungen nutzen diese Technik, um ein flüssigeres Antwortverhalten bei Webanwendungen zu ermöglichen}} +\storeglosentry{GANTT}{name={GANTT},description={ein nach Henry L. Gantt benanntes Instrument für Projektmanagement und stellt die zeitliche Abfolge von Aufgaben als Balken auf einer Zeitachse dar}} +\storeglosentry{Browser}{name={Browser},description={Ein Programm zur Darstellung von Webseiten}} +\storeglosentry{Submitbutton}{name={Submitbutton},description={Ein anklickbarer Knopf, der eine Aktion auslöst}} +\storeglosentry{Checkbutton}{name={Checkbutton},description={siehe Checkbox.}} +\storeglosentry{Checkbox}{name={Checkbox},description={Ein Feld, welches ,,angekreuzt'' werden kann}} +\storeglosentry{Modul}{name={Modul},description={ein Teilstück}} +\storeglosentry{WYSIWYG}{name={WYSIWYG},description={steht für ,,What You See Is What You Get'' und bedeutet innerhalb der Applikation, dass der Nutzer kein HTML programmieren muss um z.B. einen Text ,,fett'' darzustellen}} +\storeglosentry{HTML}{name={HTML},description={HyperText Markup Language ist eine Auszeichnungssprache zur Gestaltung von Dokumenten}} +\storeglosentry{Radiobutton}{name={Radiobutton},description={Ein anklickbares rundes Feld. Es steht in der Regel nicht allein und wird genutzt um bei Merhfachauswahl nur eine Antwort zu ermöglichen}} +\storeglosentry{Piechart}{name={Piechart},description={Eine Diagrammform, die Anteile prozentual auf eine Kreisfläche umlegt und i.d.R. entweder durch Farbe oder Kontur visualisiert}} +\storeglosentry{Treeview}{name={Treeview},description={eine Ansichtsform für Dateistrukturen, z.B. im ,,Explorer'' unter Windows}} +\storeglosentry{Parent-Folder}{name={Parent-Folder},description={Parent-Folder Beschreibung}} +\storeglosentry{Tag}{name={Tag},description={kleine Notiz, die an ein beliebiges Element geheftet werden kann}} +\storeglosentry{Indikator}{name={Indikator},description={Indikator Beschreibung}} +\storeglosentry{Fileview}{name={Fileview},description={Fileview Beschreibung}} +\storeglosentry{Etherpad}{name={Etherpad},description={Ein webbasierter Editor zur gemeinsamen Bearbeitung von Texten in Echtzeit}} +\storeglosentry{JUnit}{name={JUnit},description={ein Framework zum Testen von Java-Programmen für automatisierte Tests einzelner Klassen oder Methoden}} +\storeglosentry{Selenium}{name={Selenium},description={ein Framework zum Testen von Webanwendungen}} +\storeglosentry{Benutzeroberfläche}{name={Benutzeroberfläche},description={der Teil der Software, der mit dem Benutzer vornehmlich auf dem Bildschirm interagiert}} +\storeglosentry{Extreme Programming}{name={Extreme Programming},description={Methode zur Softwareentwicklung, die das Lösen einer Programmieraufgabe in den Vordergrund stellt und dabei formalem Vorgehen weniger Gewichtung gibt}} +\storeglosentry{Pair Programming}{name={Pair Programming},description={Arbeitstechnik bei der zwei Programmierer an einem Rechner am Code arbeiten, um die Softwarequalität zu steigern. Ein Programmierer schreibt Code, während der andere gedanklich die Problemstellung und den Code verfolgt und ihm auffallende Probleme sofort anspricht}} +\storeglosentry{Refactoring}{name={Refactoring},description={bezeichnet die Umgestaltung von Code zur Strukturverbesserung ohne Änderung am eigentlichen Funktionsumfang}} +\storeglosentry{Merging}{name={Merging},description={beschreibt das Zusammenführen mehrerer Versionen zu einer neuen}} +\storeglosentry{Package}{name={Package},description={hier: Ordnerstruktur}} +\storeglosentry{MVC}{name={Model-View-Controller},description={beschreibt eine Softwarearchitektur, die die Software in die drei Einheiten \textit{Daten}, \textit{Steuerung} und \textit{Ansicht} trennt. Ziel ist ein modularer Aufbau, der späteres Wiederverwerten des Programmcodes erleichtern soll}} +\storeglosentry{CamelCase}{name={CamelCase},description={beschreibt eine Schreibweise von Quelltexten, bei der zusammengesetzte Namen durch Großschreiben des ersten Buchstabens die Lesbarkeit verbessert}} +\storeglosentry{SVN}{name={Subversion},description={ein Versionsverwaltungssystem, das es ermöglicht, auf frühere Versionen vom Quelltext zurückzugreifen. Des weiteren sieht man wann, wo, wer und welche Änderungen am Quelltext vorgenommen wurden}} +\storeglosentry{Userstories}{name={Userstories},description={beschreibt den Ablauf einer Aktion, die vom Anwender vorgenommen wird}} +\storeglosentry{Plugin}{name={Plugin},description={Eine Erweiterung zum bestehenden Produkt}} +\storeglosentry{Eclipse}{name={Eclipse},description={Eclipse ist eine Entwicklungsumgebung spezialisiert für die Anwendungsentwicklung unter Java}} +\storeglosentry{Java}{name={Java},description={Java ist eine Objekt-orientierte Programmiersprache}} +\storeglosentry{Opensource}{name={Open Source},description={beschreibt eine Vielzahl von Lizenzen, die es ermöglichen, Quelltexte von Software unter gewissen Voraussetzungen zu veröffentlichen}} +\storeglosentry{Applicationserver}{name={Applicationserver},description={>>Ist im Allgemeinen ein Server im Netzwerk, auf dem Anwendungsprogramme ausgeführt werden<<\cite{wiki:2011}}} +\storeglosentry{Testframework}{name={Testframework},description={beschreibt eine Sammlung von häufig verwendeten Programmteilen, die zum Testen von Software verwendet werden.}} +\storeglosentry{Whiteboxtest}{name={Whiteboxtest},description={beschreibt eine Art von Tests, welche die innere Funktionsweise der Software kennt und diese einzeln abtestet. Es }} +\storeglosentry{Blackboxtest}{name={Blackboxtest},description={beschreibt eine Art von Tests, welche die innere Funktionsweise der Software nicht kennen, und lediglich von außen Eingaben mit erwarteten Ergebnissen vergleichen.}} + + +\section{Einleitung} +In diesem Dokument werden Tests und Prozesse beschrieben, dokumentiert und ausgewertet. Ziel der Qualitätssicherung ist die Sicherstellung sowohl der angestrebten Softwarequalität als auch der Qualität der Prozesse und Dokumente. +%es, zum einen die angestrebte Softwarequalität zum anderen auch die Qualität der Prozesse und Dokumente sicherzustellen. +Dazu werden verschiedene Testmethoden angewandt, um Kernpunkte wie etwa Funktionalität, Richtigkeit und in Teilbereichen auch Interoperabilität zu überprüfen. Des weiteren wird auf die verwendeten Ansätze zur konstruktiven Qualitätssicherung eingegangen. +In den kommenden Kapiteln werden zuerst die zu prüfenden Module von \gls{WebApp} vorgestellt und deren Funktionsweise kurz erläutert. +Im Anschluss wird auf die verwendeten Methoden, Werkzeuge sowie die eigentlichen Prüfprozesse eingegangen. Weiterhin werden die jeweiligen Testspezifikationen dargelegt sowie die Beschreibung der Tests und deren Ergebnisse vorgestellt. + +\subsection{Das Projekt} + +Das Projekt trägt den Namen \gls{WebApp} und soll eine für Gründer geeignete Webplattform zur Projektverwaltung werden. Ziel ist es, im Raum Darmstadt und speziell an der TU Darmstadt Gründer, \gls{StartUp}s und \gls{SpinOff}s zu fördern. Ein wesentlicher Aspekt dabei ist die Kostenfreiheit für den Benutzer, womit eine Alternative zu kommerziellen Anbietern geschaffen werden soll. Gleichzeitig soll der Funktionsumfang den kostenpflichtigen Anbietern aber in nichts nachstehen. Der User soll eine moderne Oberfläche vorfinden, die mittels \gls{AJAX}-Technologien ein flüssiges Arbeiten ermöglicht.\newline +Zu den angestrebten Funktionen der Projektverwaltung gehören u.a. + \begin{itemize} + \setlength{\itemsep}{-2pt} + \item Zeitmanagementsystem + \item Planungssystem inkl. \gls{GANTT} Charts + \item Forenähnliches Frage- und Umfragesystem + \item Projektinterne Kommunikationsverwaltung + \item Dokumentenmanagementsystem + \end{itemize} +Da das Projekt insgesamt auf drei Gruppen aufgeteilt wurde, werden in diesem Dokument ausschließlich die Bereiche der Gruppe DDHV behandelt. Der Themenbereich umfasst die projektinterne Kommunikation und das Dokumentenmanagementsystem. Die projektinterne Kommunikation lässt sich in die zwei Submodule ,,Statusbar'' und ,,Discussion'' aufteilen, ,,Webdoc'' fällt in den Bereich des Dokumentenmanagements. Nachfolgend werden die einzelnen Submodule und der erwartete Funktionsumfang erläutert. + +\subsection{Statusbar} + +Bei der Statusbar handelt es sich um eine Komponente zur Kommunikation zwischen den Nutzern der Plattform. Es ist vorgesehen, dass Mitglieder eines Projektes die Möglichkeit haben, Texte einzugeben und zu versenden. Diese Texte sollen sichtbar sein, sobald man die Statusbar per Klick ausklappt. Die nun angezeigten Nachrichten können als Favorit markiert und über einen Filterbutton ein- und ausgeblendet werden. Eines der Hauptmerkmale ist die Darstellung neuer Mitteilungen in Echtzeit, ähnlich wie in einem Chat. +% einen weiteren Button drückt, der eine Detailansicht aller bisher gesendeten Nachricht anzeigt. Jede dieser Nachrichten hat einen \gls{Checkbutton} der sie als Favorit markiert. Mit einem Klick auf ein Element innerhalb der Leiste ist es möglich nur die Favoriten in der Ansicht darzustellen. Mit einem weiteren Klick auf dieses Element werden wieder alle Nachrichten angezeigt. +Werden Nachrichten geschrieben, während andere Mitglieder des Projektes nicht im System eingeloggt sind, werden diese beim späteren Einloggen als neue Nachrichten angezeigt. + +\begin{figure}[htbp] + \centering + \includegraphics[width=13cm]{Statusleiste_aufgeklappt_cut.png} + \caption{Aufgeklappte Statusleiste - Mockup vom Auftraggeber} + \label{Aufgeklappte Statusleiste - Label} +\end{figure} + +\subsection{Discussion} +Das Discussion-\gls{Modul} dient zur Diskussion und zum Meinungsaustausch. Es ist vorgesehen, dass Mitglieder eines Projektes die Möglichkeit haben, auf einer Seite Fragen oder Umfragen zu erstellen. Bei der Erstellung von Fragen oder Umfragen gibt der Benutzer die zu beantwortende Frage per \gls{WYSIWYG}-Editor in ein Textfeld ein und kann auf diese Weise den Fragetext formatieren. Andere Benutzer können in ihren Antworten mittels \gls{WYSIWYG}-Editor ebenfalls Textformatierung vornehmen. Bei einer Umfrage können Benutzer aus verschiedenen vorgegebenen Antwortmöglichkeiten auswählen. Diese werden bei der Erstellung der Umfrage vom Ersteller angegeben. Es können entweder Umfragen erstellt werden, bei denen jeweils nur eine Antwort gewählt werden kann oder solche, die Mehrfachantworten zulassen. Dies wird ebenfalls beim Erstellen festgelegt. Des weiteren ist es möglich, eine Umfrage als wichtig zu markieren bzw. hervorzuheben. +\newline +Die dem Projekt zugeordneten Fragen und Umfragen werden tabellarisch aufgelistet. Klickt man auf eine Frage oder eine Umfrage, so klappt eine erweiterte Ansicht aus. Diese zeigt die jeweiligen Antworten zu einer Frage an. Bei einer Umfrage werden die Umfrageergebnisse angezeigt und mittels Tortendiagramm visualisiert. +Ist eine Umfrage abgeschlossen oder eine Frage ausreichend beantwortet, kann die Frage oder Umfrage geschlossen werden. + +%Beim Discussion-\gls{Modul} handelt es sich um eine Komponente zur Kommunikation zwischen den Nutzern der Plattform. Es ist vorgesehen, dass Mitglieder eines Projektes die Möglichkeit haben auf einer Seite Fragen oder Umfragen zu erstellen. Bei der Erstellung von Fragen gibt der Benutzer die zu beantwortende Frage in ein Textfeld ein. Bei der Erstellung von Umfragen gibt der Benutzer die zu beantwortende Umfrage in einem Textfeld ein. In einem weiteren kleinerem Textfeld gibt der Benutzer die Antwortmöglichkeit ein. Ist Text in diesem Feld eingegeben erscheint unter dem bereits vorhandenen Textfeld ein weiteres Textfeld in dem man eine weitere Antwortmöglichkeit eingeben kann. Auf diese Art und Weise sind beliebig viele Antwortmöglichkeiten erstellbar. Mit einem \gls{Checkbutton} ist auswählbar, ob Mehrfachantworten möglich sein sollen. Bei beiden Varianten ist es möglich die Frage beziehungsweise Umfrage als wichtig zu markieren. +%\newline +%Auf einer Detailansichtsseite sieht man sämtliche Projektspezifisch gestellten Fragen und Umfragen tabellarisch aufgelistet. Man sieht die Anzahl der abgegebenen Antworten sowie den Ersteller und das Datum. Desweiteren ist sichtbar, ob das Element wichtig oder bereits geschlossen ist. Klickt man auf ein Element sieht man weitere Details. +%Bei einer Frage werden sämtliche zugehörige Antworten aufgelistet und mit Datum und den Benutzer der Antwort gekennzeichnet. Ein \gls{WYSIWYG}-Editor ermöglicht es die Fragen mit \gls{HTML} codiertem Text zu beantworten. +%Bei einer Umfrage werden sämtliche zulässige Antworten gelistet. Je nachdem ob Mehrfachantworten bei der Erstellung der Umfrage zugelassen worden sind, kann man per \gls{Checkbutton} oder \gls{Radiobutton} die Antwortmöglichkeiten auswählen. Neben den Antwortmöglichkeiten ist ein \gls{Piechart} zu sehen der die bereits gegebenen Antworten darstellt. + + +\begin{figure}[htbp] + \centering + \includegraphics[width=17cm]{Discussion_Ansicht_cut.png} + \caption{Discussion Ansicht - Mockup vom Auftraggeber} + \label{Discussion Ansicht - Label} +\end{figure} + +\subsection{Webdoc} + +Das Webdoc-Modul soll die kollaborative Arbeit an Dokumenten ermöglichen. Das Modul ist in zwei vertikale Ansichten getrennt, wovon die linke eine Ordnerstruktur darstellt. Die rechte Spalte enthält eine Detailansicht mit zugeordneten Attributen wie z.B. \gls{Tag}s. Außerdem gib es die Möglichkeit, den Inhalt des Dokuments anzuzeigen und zu editieren. +In der linken \gls{Treeview}-Ansicht soll es außerdem möglich sein, per Rechtsklick je nach Element verschiedene Aktionen wie ,,neuen Ordner erstellen'', ,,umbenennen'' oder ,,Neues Dokument erstellen'' mit Hilfe eines Kontextmenüs auszuführen. Zusätzlich zum Löschen einzelner Elemente sorgt eine Multi-Delete-Funktion dafür, dass man mehrere Elemente im Treeview markieren und löschen kann. Weiterhin soll dem User angezeigt werden, ob ein Dokument, seitdem er es zuletzt betrachtet hat, editiert wurde. + + +\begin{figure}[htbp] + \centering + \includegraphics[width=17cm]{WebDocument_aufgeklappt_cut.png} + \caption{Webdoc Ansicht - Mockup vom Auftraggeber} + \label{Webdoc Ansicht - Label} +\end{figure} + +\newpage +%In der rechten Ansicht zeigt die \gls{Fileview}-Ansicht sämtliche im Ordner enthaltenen Dateien die oben angesprochenen \gls{Tag}s + +% Die Rechte Seite zeigt eine \gls{Fileview}-Ansicht die genauere Details der Elemente anzeigt. Es werden sämtliche im Ordner enthaltende Dateien angezeigt und können nach Name, Autor, Erstellungsdatum, oder der letzten Bearbeitung sortiert werden. Auch in diesem Menu ist es möglich Dateien zu erstellen, löschen, den Ersteller ändern, \gls{Tag}s hinzuzufügen, löschen oder editieren, und die Datei umzubenennen. Mit einem Klick auf die Datei öffnet sich eine \gls{Etherpad}-Instanz die das Dokument bereithält und gemeinsame Arbeit mit anderen Nutzern ermöglicht. + + +%Bei einem Mouse-Over auf ein Element erscheint ein kleines Menü welches die Möglichkeit bietet den Ordner bzw die Datei zu löschen, oder umzubenennen. Handelt es sich dabei um einen Ordner ist es desweiteren möglich eine Datei in diesem Ordner zu erstellen. Handelt es sich jedoch um eine Datei sind im Menü weitere Einträge vorhanden die die Möglichkeit bieten das Element mit \gls{Tag}s auszustatten, diese in einer ausklappbaren Ansicht anzuzeigen oder zu entfernen. + +%Es soll sichtbar gemacht werden falls ein Dokument seit dem letzten anzeigen editiert wurde. Ein Schriftzug welcher neben dem Element platziert ist dient als \gls{Indikator}. + + +%Die Rechte Seite zeigt eine \gls{Fileview}-Ansicht die genauere Details der Elemente anzeigt. Es werden sämtliche im Ordner enthaltende Dateien angezeigt und können nach Name, Autor, Erstellungsdatum, oder der letzten Bearbeitung sortiert werden. Auch in diesem Menu ist es möglich Dateien zu erstellen, löschen, den Ersteller ändern, \gls{Tag}s hinzuzufügen, löschen oder editieren, und die Datei umzubenennen. Mit einem Klick auf die Datei öffnet sich eine \gls{Etherpad}-Instanz die das Dokument bereithält und gemeinsame Arbeit mit anderen Nutzern ermöglicht. + + +%Beim Webdoc-Modul handelt es sich um eine Komponente die den kollaborativen Einsatz an Dateien ermöglichen soll. Das Modul ist in zwei vertikale Ansichten getrennt. + + +% Die linke Seite zeigt eine \gls{Treeview}-Ansicht, die projektspezifischen Dateien in einer Ordnerstruktur zeigt. Um die Ansicht nicht zu überladen sollen nur 12 Elemente in der Ordnerstruktur gezeigt werden. Das 12te Element ist ein eine Verlinkung mit der Aufschrift "show more" verschwindet beim anklicken und es werden sämtliche Elemente des \gls{Parent-Folder}s angezeigt. + +% Bei einem Mouse-Over auf ein Element erscheint ein kleines Menü welches die Möglichkeit bietet den Ordner bzw die Datei zu löschen, oder umzubenennen. Handelt es sich dabei um einen Ordner ist es desweiteren möglich eine Datei in diesem Ordner zu erstellen. Handelt es sich jedoch um eine Datei sind im Menü weitere Einträge vorhanden die die Möglichkeit bieten das Element mit \gls{Tag}s auszustatten, diese in einer ausklappbaren Ansicht anzuzeigen oder zu entfernen. Zusätzlich zum löschen einzelner Elemente ist es vorgesehen, dass es einen Multi-Delete gibt der es ermöglicht mehrere Elemente im Treeview per \gls{Checkbox} zu markieren und löschen. + +% Es soll sichtbar gemacht werden falls ein Dokument seit dem letzten anzeigen editiert wurde. Ein Schriftzug welcher neben dem Element platziert ist dient als \gls{Indikator}. + + +% Die Rechte Seite zeigt eine \gls{Fileview}-Ansicht die genauere Details der Elemente anzeigt. Es werden sämtliche im Ordner enthaltende Dateien angezeigt und können nach Name, Autor, Erstellungsdatum, oder der letzten Bearbeitung sortiert werden. Auch in diesem Menu ist es möglich Dateien zu erstellen, löschen, den Ersteller ändern, \gls{Tag}s hinzuzufügen, löschen oder editieren, und die Datei umzubenennen. Mit einem Klick auf die Datei öffnet sich eine \gls{Etherpad}-Instanz die das Dokument bereithält und gemeinsame Arbeit mit anderen Nutzern ermöglicht. + + + +\section{Qualitätsziele} +Um die Qualität des Produkts zu sichern, werden verschiedene Kriterien betrachtet und entsprechende Methoden zur Überprüfung dieser implementiert. >>Damit nur hochwertiges Wissen erzeugt und als Grundlage für weitere Arbeiten nutzbar gemacht wird, gibt es internationale Standards für wissenschaftliche Qualität<< \cite[S.9]{bss+:2008}. Mit der Überprüfung der Qualität des Produkts soll sichergestellt werden, dass das Produkt den geforderten Funktionalitäten entspricht. Als Orientierung dient dabei die ISO/IEC 9126 und ISO 9001 Norm und wird in einzelnen Punkten umgesetzt. + +%Um die Qualität des Produkts am Ende der Entwicklung zu gewährleisten, gilt es verschiedene Kriterien zu betrachten und entsprechende Methoden zur Überprüfung dieser zu implementieren. >>Damit nur hochwertiges Wissen erzeugt und als Grundlage für weitere Arbeiten nutzbar gemacht wird, gibt es internationale Standards für wissenschaftliche Qualität<< \cite[S.9]{BSS+2008}. Mit der Überprüfung der Qualität des Produkts soll dem Auftraggeber gewährleistet werden, dass das Produkt den geforderten Funktionalitäten entspricht und die Korrektheit der Ausführung bewiesen ist. Folgende Qualitätsmerkmale sollten hierbei berücksichtigt werden. + + +% \begin{itemize} +% \item{\textbf{Richtigkeit:} Die programmierten Funktionen sollen Ergebnisse liefern die in ihrer Genauigkeit nicht von vereinbarten Werten abweichen.} +% \item{\textbf{Interoperabilität:} Die programmierte Endfassung des Produkts soll auf (Das System hier eingeben) laufen.} +% \item{\textbf{Ordnungsmäßigkeit:} Das Produkt soll anwendungsspezifische Normen erfüllen und keine externe Software benutzen deren Lizenzen nicht für das Projekt brauchbar sind.} +% \item{\textbf{Zuverlässigkeit:} Das Produkt soll stabil sein und keine Leistungseinbußen haben.} +% \item{\textbf{Benutzbarkeit:} Das Produkt soll von der angestrebten Benutzergruppe wenig Einarbeitungszeit benötigen und einfach zu bedienen sein.} +% \item{\textbf{Verständlichkeit:} Funktionen sowie die Ansicht des Produkts sollen ohne Aufwand verstanden werden.} +% \item{\textbf{Erlernbarkeit:} Die Module des Projekts sollen so bedienbar sein, dass das erlernen der Software wenig Zeit in Anspruch nimmt.} +% \item{\textbf{Attraktivität:} Das Produkt soll ein Grundkonzept eines Design haben, dass den Nutzer anzieht es zu benutzen.} +% \item{\textbf{Konformität:} Die Software soll Normen und Vereinbarungen erfüllen die in \gls{HTML} ihre Anwendung finden.} +% \item{\textbf{Effizienz:} Die Funktionalität des Produkts soll in einer effizienten Art und Weise umgesetzt sein, die ein gutes \textbf{Zeitverhalten} und gleichermaßen \textbf{Ressourcenverbrauch} gewährleistet. Desweiteren sind auch hier Normen zu betrachten.} +% \item{\textbf{Änderbarkeit:} Das Produkt soll bei Änderungen seiner Funktionalität oder seinem Aussehen wenig Aufwand verursachen. Dabei spielt die \textbf{Analysierbarkeit} des Codes eine wichtige Rolle. Gleichermaßen sollen durchgeführte Änderungen einfach zu überprüfen sein.} +% \item{\textbf{Übertragbarkeit:} Das Produkt soll möglichst einfach in eine andere Umgebung, Software als auch Hardware, übertragen werden können.} +% \item{\textbf{Anpassbarkeit:} Die Software soll möglichst einfach an andere Umgebungen anpassbar sein} +% \item{\textbf{Installierbarkeit:} Der Aufwand die fertiggestellte Software in einer anderen Umgebung zu installieren soll möglichst gering sein} +% \end{itemize} + +\subsection{Code} +Die Qualität des Codes ist dann gewährleistet, wenn die Funktionalitäten gegeben sind und auch andere Entwickler in der Lage sind, diesen zu verstehen. Folgende Qualitätsmerkmale sollten hierbei berücksichtigt werden: + +%-> hier noch ein anderer Satz + +\paragraph{Funktionalität:} Alle Funktionalitäten sollen den mit dem Auftraggeber abgestimmten \gls{Userstories} entsprechend umgesetzt sein. +\paragraph{Interoperabilität:} Das Produkt soll in allen gängigen Browsern (Internet Explorer 7 und 8, Firefox, Chrome und Opera) lauffähig sein. +\paragraph{Übertragbarkeit:} Das Produkt soll auf verschiedenen \gls{Applicationserver}n lauffähig sein. +\paragraph{Konformität:} Funktionen sollen sinnvoll benannt werden. Die Java Coding Standards sollen beachtet werden. +\paragraph{Modularität:} Die Funktionseinheiten sollen voneinander getrennt werden und unabhängig voneinander benutzbar und entwickelbar sein. +\paragraph{Verständlichkeit:} Der Code-Aufbau soll es externen Entwicklern ermöglichen, das Projekt weiterzuentwickeln und damit zu arbeiten. +\paragraph{Nachvollziehbarkeit:} Es soll bei der iterativen Bearbeitung des Projektes zu jeder Zeit nachvollziehbar sein, welche Änderungen wann, wo und von wem am Projekt durchgeführt wurden. +\paragraph{Korrektheit:} Es soll sichergestellt werden, dass Funktionen eine korrekte Arbeitsweise an den Tag legen. + + + +%\begin{itemize} +%\setlength{\itemsep}{0pt} +%\setlength{\parsep}{0pt} +%\item{\textbf{Funktionalität:} Alle Funktionalitäten sollen den \gls{Userstories} entsprechend umgesetzt sein.} +%\item{\textbf{Interoperabilität:} Das Produkt soll in allen gängigen Browsern (Internet Explorer 7 und 8, Firefox und Opera) lauffähig sein.} +%\item{\textbf{Konformität:} Die Struktur des Projekts soll aufgeräumt und gut gegliedert sein. Codeteile die nicht miteinander in Kommunikation sind sollen nicht in einem Verzeichnis stehen, sondern in einem eigenen Verzeichnis stehen. Funktionen sollten sinnvoll benannt werden. Die Java Coding Standards sollen beachtet werden} +%\item{\textbf{Verständlichkeit:} Der Code-Aufbau soll es externen Entwicklern ermöglichen, das Projekt weiterzuentwickeln und damit zu arbeiten.} +%\item{\textbf{Nachvollziehbarkeit:} Es soll bei der iterativen Bearbeitung des Projektes zu jeder Zeit nachvollziehbar sein, welche Änderungen wann, wo und von wem am Projekt durchgeführt wurden.} +%\end{itemize} + + +\subsection{Dokumente} +Die Qualität der Dokumentation ist dann gewährleistet, wenn Standards zur Erstellung dieser Dokumentation eingehalten sind und die Funktionalität des Codes so dokumentiert ist, dass Außenstehende diese nachvollziehen können. Folgende Qualitätsmerkmale sollen hierbei berücksichtigt werden: + +\paragraph{Überprüfbarkeit:} Die aufgeführten Aussagen und Feststellungen müssen auf ihre Korrektheit und den Wahrheitsgehalt hin überprüfbar sein. +\paragraph{Verständlichkeit:} Die Inhalte müssen in ihrer Gliederung und Aussagekraft verständlich dargestellt werden. +\paragraph{Angemessenheit:} Die getroffenen Aussagen und Erkenntnisse müssen für den Auftraggeber und die Betreuer inhaltlich relevant sein. Ihr Informationsgehalt soll entsprechend hoch sein. +% \item{\textbf{Originalität:} >>Wer eine wissenschaftliche Arbeit schreibt, muss eine eigenständige und zugleich originelle Leistung liefern<<\cite[S.37]{BSS+2008}} +\paragraph{Nachvollziehbarkeit:} Änderungen an der Dokumentation müssen dokumentiert werden. Der Entstehungsprozess muss nachvollziehbar sein. +\paragraph{Konformität:} Die Dokumentation soll dem an der TU Darmstadt gängigen Dokumentenstil entsprechen. + +%\begin{itemize} +%\item{\textbf{Korrektheit:} Die aufgeführten Aussagen und Feststellungen müssen auf ihre Korrektheit und den Wahrheitsgehalt hin überprüfbar sein.} +%\item{\textbf{Verständlichkeit:} Die Inhalte müssen in ihrer \textbf{Gliederung} und Aussagekraft verständlich dargestellt werden.} +%\item{\textbf{Angemessenheit:} Die getroffenen Aussagen und Erkenntnisse müssen für den Auftraggeber inhaltlich relevant sein. Ihr Informationsgehalt soll entsprechend hoch sein.} +% \item{\textbf{Originalität:} >>Wer eine wissenschaftliche Arbeit schreibt, muss eine eigenständige und zugleich originelle Leistung liefern<<\cite[S.37]{BSS+2008}} +%\item{\textbf{Nachvollziehbarkeit:} Änderungen an der Dokumentation müssen dokumentiert werden. Der Entstehungsprozess muss nachverfolgbar sein.} +%\end{itemize} + +\subsection{Prozess} +Der in diesem Projekt gewählte Prozess entspricht dem ,,agilen Prozess''. In diesem geht es darum, auf sich ändernde Bedingungen und Anforderungen flexibel einzugehen. Im Verlauf des Prozesses wurden die folgenden Qualitätskriterien als wichtig erachtet. +\paragraph{Kundenorientierung:} Der gewählte Prozess muss es ermöglichen, ein den Kundenwünschen entsprechendes Produkt zu entwickeln und auf geänderte Anforderungen während der Entwicklung einzugehen. +\paragraph{Angemessenheit:} Der genutzte Prozess soll die Entwicklung des zu erstellenden Produktes möglichst weiträumig unterstützen. Die Vorgaben des Auftraggebers sind zu beachten. +\paragraph{Verantwortlichkeit der Führung:} Die Person, die für den Prozess zuständig ist, koordiniert und überwacht dessen Fortschritt und leitet im Problemfall geeignete Maßnahmen zur Lösung des selbigen ein. +\paragraph{Einbeziehung der beteiligten Personen:} Jedes Teammitglied ist am Entwicklungsprozess des Produktes beteiligt und kann Bedenken und Vorschläge frei äußern. +\paragraph{Systemorientierter Managementansatz:} Die Abhängigkeiten der einzelnen Aufgaben sind den Teammitgliedern bekannt. Es wird versucht, die Stärken und Kompetenzen jedes Mitglieds an der effektivsten Stelle einzusetzen. +\paragraph{Nachvollziehbarkeit:} Es soll festgestellt werden können, welches Teammitglied wie lange an welcher Aufgabe gearbeitet hat und welche Arbeitspakete folgen. +\paragraph{Kontinuierliche Verbesserung:} Der Prozess soll regelmäßig neu bewertet und nach Möglichkeit optimiert werden. + +%Iterativ werden auftretende Probleme analysiert und bewertet. Gemeinsam wird an einer Lösung gearbeitet und Maßnahmen abgestimmt. Im Anschluss werden die Maßnahmen nach Effektivität bewertet und umgesetzt. + +%\begin{itemize} +%\item{\textbf{Kundenorientierung:} Der gewählte Prozess muss es ermöglichen, ein den Kundenwünschen entsprechendes Produkt zu entwickeln und auf geänderte Anforderungen während der Entwicklung einzugehen.} +%\item{\textbf{Angemessenheit:} Der genutzte Prozess soll möglichst gut zum zu erstellenden Produkt passen. Die Vorgaben des Auftraggebers sind zu beachten.} +%\item{\textbf{Verantwortlichkeit der Führung:} Die Person, die für den Prozess zuständig ist, koordiniert und überwacht dessen Fortschritt und leitet im Problemfall geeignete Maßnahmen zur Lösung des selbigen ein.} +%\item{\textbf{Einbeziehung der beteiligten Personen:} Jedes Teammitglied ist am Entwicklungsprozess des Produktes beteiligt und kann Bedenken und Vorschläge frei äußern.} +%\item{\textbf{Systemorientierter Managementansatz} Die Abhängigkeiten der einzelnen Aufgaben sind den Teammitgliedern bekannt. Es wird versucht die Stärken und Kompetenzen jedes Mitglieds an der effektivsten Stelle einzusetzen. } +%\item{\textbf{Kontinuierliche Verbesserung} Iterativ werden auftretende Probleme analysiert und bewertet. Gemeinsam wird an einer Lösung gearbeitet und Maßnahmen abgestimmt. Im Anschluss werden die Maßnahmen nach Effektivität bewertet und umgesetzt.} +%\end{itemize} + +\vspace*{2em} +\section{Maßnahmen zum Erreichen der Qualitätsziele} +%Die Qualität der Arbeit soll dadurch gewährleistet werden, dass während des gesamten Prozesses dokumentiert wird, wie Anforderungen mit jeder Iteration hinzukommen oder sich verändern. +Die Qualitätsziele der Arbeit sollen durch Maßnahmen erreicht werden, die einen optimierten Ablauf des Gesamtprozesses ermöglichen. Dadurch soll Fehlern vorgebeugt und ein hoher Qualitätsstandard erzielt werden. +%Die Qualität der Arbeit soll dadurch gewährleistet werden, dass sowohl Code, Dokumentation als auch auch der Prozess durch Maßnahmen gestützt werden, die einen reibungslosen Ablauf ermöglichen der die + +\subsection{Code} +\paragraph{Funktionaliät} Um die Qualität zu überprüfen und die Ergebnisse zu validieren, wurden als Testumgebungen für den Code \gls{JUnit} und \gls{Selenium} ausgewählt. \gls{JUnit} dient dazu, die Funktionalität auf Datenebene zu überprüfen, während \gls{Selenium} die Anbindung der Datenebene an die \gls{Benutzeroberfläche} überprüft. Die einzelnen Tests werden anhand der Userstories implementiert. +\paragraph{Interoperabilität:} Es wird anhand von Seleniumtests geprüft, ob die einzelnen Elemente in den Browsern Firefox, Internet Explorer 7, Internet Explorer 8, Chrome und Opera die gleiche Funktionalität aufweisen, um ein identisches Verhalten in den verschiedenen Browsern sicherzustellen. +\paragraph{Übertragbarkeit:} Da die gesamte Implementierung über JavaEE abgebildet wurde, kann der Code in einer beliebigen JavaEE-Umgebung ausgeführt werden. Durch Einhaltung der JavaEE Standards (Version 6) wird sichergestellt, dass das Produkt in unterschiedlichen zertifizierten Containern wie z.B. Tomcat, Glassfish oder JBOSS lauffähig ist. Es ist weiterhin möglich, die Software auf einer beliebigen Prozessorarchitektur und einem beliebigen Betriebssystem zu betreiben, sofern z.B. Apache Tomcat auf dieser kompiliert werden kann. Die Nutzung von Hibernate als Persistenzschicht für die Datenbank sorgt für weitere Unabhängigkeit, da die Datenbank unterhalb der Hibernateschicht beliebig getauscht werden kann. +\paragraph{Konformität:} Für die Funktionen wurden aussagekräftige Namen gewählt, die Rückschlüsse auf die Funktionalität ermöglichen. Der JavaEE Standard in Version 6 wurde eingehalten. Ebenfalls wurde den Java Coding Standards entsprechend jeweils \gls{CamelCase} verwendet. +\paragraph{Modularität:} Da das Projekt aus insgesamt drei voneinander unabhängigen \gls{Modul}en besteht, sind diese in verschiedene \gls{Package}s unterteilt und unabhängig voneinander implementiert. Zur Trennung der Daten- und Präsentationsebene wurde das \gls{MVC}-Pattern verwendet. Die Struktur des Projekts ist aufgeräumt und gut gegliedert. Codeteile, die nicht miteinander in Korrelation stehen, stehen nicht zusammen in einem Verzeichnis, sondern jeweils in einem eigenen Verzeichnis. +\paragraph{Verständlichkeit:} Sämtliche Funktionen werden kommentiert und mit JavaDoc dokumentiert. +\paragraph{Nachvollziehbarkeit:} Um die Nachvollziehbarkeit von Änderungen zu vereinfachen, wird ein vom Kunden gestellter \gls{SVN}-Server zur Versionsverwaltung verwendet. Auf einen eigenen \gls{SVN} Server wurde verzichtet, da der Kunde im Anschluss an das Projekt das \gls{Refactoring} selbst vornehmen möchte. Auf diese Weise kann der Kunde bereits während des Entwicklungsprozesses den Quelltext im Hinblick auf das geplante \gls{Merging} der drei Projekte betrachten. +\paragraph{Korrektheit:} +\gls{Whiteboxtest}s werden mit \gls{JUnit} abgedeckt und sollen die Richtigkeit der einzelnen Funktionen sicherstellen. Da die Module größtenteils jedoch wenig Logik und Algorithmik benötigen, sondern der Schwerpunkt auf dem Anlegen, Ändern und Löschen von Datensätzen liegt, werden mit gleicher Gewichtung \gls{Blackboxtest}s durchgeführt. Die \gls{Blackboxtest}s werden mit \gls{Selenium} realisiert und sollen sicherstellen, dass zum einen die Oberfläche für den Nutzer korrekt funktioniert, aber auch, dass die \gls{MVC}-Logik korrekt arbeitet. Die korrekte Datenspeicherung wird durch die Einhaltung der Vorgaben von Hibernate sichergestellt. + +%\begin{itemize} +%\item{\textbf{Funktionalität:} Um die Qualität zu überprüfen und die Ergebnisse zu validieren wurden als Testumgebungen für den Code \gls{JUnit} und \gls{Selenium} ausgewählt. \gls{JUnit} dient dazu die Funktionalität auf Datenebene zu überprüfen, während \gls{Selenium} die Anbindung der Datenebene an die \gls{Benutzeroberfläche} überprüft. +%\item{\textbf{Interoperabilität:} Da die gesamte Implementierung über JavaEE abgebildet wurde, kann der Code in einer beliebigen JavaEE Umgebung ausgeführt werden. Dies sorgt für Unabhängigkeit bei der Architekturauswahl der Server, da beispielsweise der Apache Tomcat für x86, Itanium oder andere Architekturen und Betriebssysteme compiliert werden kann. Die Nutzung von Hibernate als Persistentzschicht für die Datenbank sorgt für weitere Unabhängigkeit, da die Datenbank unterhalb der Hibernateschicht beliebig getauscht werden kann.} +%\item{\textbf{Konformität:} Da das Projekt aus insgesamt drei voneinander unabhängigen \gls{Modul}en besteht, sind diese in verschiedenen \gls{Package}s getrennt und unabhängig voneinander implementiert. Zur Trennung der Daten- und Präsentationsebene wurde das \gls{MVC}-Pattern verwendet. Für die Funktionen wurden aussagekräftige Namen gewählt, die Rückschlüsse auf die Funktionalität ermöglichen. Dabei wurde jeweils der Java Coding Standards entsprechend \gls{CamelCase} verwendet.} +%\item{\textbf{Verständlichkeit:} Sämtliche Funktionen werden kommentiert und dokumentiert.} +%\item{\textbf{Nachvollziehbarkeit:} Um die Nachvollziehbarkeit von Änderungen zu vereinfachen wird ein vom Kunden gestellter \gls{SVN} Server verwendet. Auf einen eigenen \gls{SVN} Server wurde verzichtet, da der Kunde im Anschluss an das Projekt das \gls{Refactoring} selbst vornehmen möchte. Auf diese Weise kann der Kunde bereits während des Entwicklungsprozesses den Quelltext im Hinblick auf das geplante \gls{Merging} der drei Projekte betrachten kann.} +%\gls{Whiteboxtest}s werden mit \gls{JUnit} abgedeckt und sollen die Richtigkeit der einzelnen Funktionen sicherstellen. Da jedoch alle Module größtenteils wenig Logik und Algorithmik benötigen, sondern der Schwerpunkt auf dem Anlegen, Ändern und Löschen von Datensätzen liegt werden hauptsächlich \gls{Blackboxtest}s durchgeführt. Die \gls{Blackboxtest}s werden mit \gls{Selenium} realisiert und sollen sicherstellen, dass zum einen die Oberfläche für den Nutzer korrekt funktioniert, aber auch dass die \gls{MVC}-Logik korrekt arbeitet.} +%\end{itemize} +\subsection{Dokumente} +\paragraph{Überprüfbarkeit:} Die im Dokument getroffenen Aussagen können durch Betrachtung des Projektquelltexts auf ihre Korrektheit überprüft werden. +\paragraph{Verständlichkeit:} Um die Inhalte verständlich darzustellen, wird ein Glossar benutzt, das Fachbegriffe erläutert. Des weiteren wird auf Mockupdarstellungen des Auftraggebers zurückgegriffen. +\paragraph{Angemessenheit:} Um die Relevanz der Dokumente so hoch wie möglich zu gestalten, werden nur Zusatzinformationen gegeben, die der Thematik entsprechen. Sämtliche zusätzlichen Inhalte, die nicht der Verständlichkeit Projektarbeit dienen, fließen nicht in die Dokumentation ein. +\paragraph{Nachvollziehbarkeit:} Um die Dokumentation sowie deren Entstehung nachvollziehen zu können, wird eine Änderungstabelle geführt, die mit jeder größeren Änderung am Dokument einen neuen Eintrag erhält. Pflichtangaben sind Datum, Name und ein entsprechender kurzer Text, der die gemachten Änderungen beschreibt. Des weiteren werden Dokumente in einem Unterverzeichnis im \gls{SVN} abgelegt, sodass auch hier die Revisionskontrolle von \gls{SVN} genutzt werden kann. +\paragraph{Konformität:} Um die Dokumentation in einem an der TU Darmstadt üblichen Design zu halten, wurde die vom ,,Referat Kommunikation'' genehmigte Latexvorlage ,,TU Darmstadt - Corporate Design'' des Instituts für Festkörperphysik verwendet. + + + + +%\begin{itemize} +%\item{\textbf{Überprüfbarkeit:} Die im Dokument getroffenen Aussagen können durch Betrachtung des Projektquelltexts auf ihre Korrektheit überprüft werden.} +%\item{\textbf{Verständlichkeit:} Um die Inhalte verständlich darzustellen wird ein Glossar benutzt das Fachbegriffe erläutert.} +%\item{\textbf{Angemessenheit:} Um die Relevanz der Dokumente so hoch wie möglich zu gestalten werden nur Zusatzinformationen gegeben, die der Thematik entsprechen. Sämtliche zusätzlichen Inhalte die nicht der Verständlichkeit Projektarbeit dienen, fließen nicht in der Dokumentation ein.} +%\item{\textbf{Nachvollziehbarkeit:} Um die Dokumentation nachvollziehen zu können, wird eine Änderungstabelle geführt, die mit jeder größeren Änderung am Dokument einen neuen Eintrag erhält. Pflichtangaben sind Datum, Name und ein entsprechender kurzer Text, der die gemachten Änderungen beschreibt. Desweiteren werden Dokumente in einem Unterverzeichnis im \gls{SVN} abgelegt, sodass auch hier die Revisionskontrolle von \gls{SVN} genutzt werden kann.} +%\end{itemize} +\subsection{Prozess} + +%Prozess -> Kundenorientierung +\paragraph{Kundenorientierung:} Da der agile Prozess gewählt wurde, ist es durch ein alle zwei Wochen stattfindendes Treffen mit dem Kunden möglich, dass dieser eng an die Entwicklung des Projekts gebunden wird. Sollten sich beim Kunden Änderungswünsche ergeben, kann das Team flexibel darauf reagieren und die geänderten oder neuen \gls{Userstories} in die nächste Iteration einfließen lassen. +%Prozess -> Angemessenheit +\paragraph{Angemessenheit:} Da es sich um ein Projekt handelt, dessen Anforderungen nicht zu Beginn feststanden und sich im Laufe der Implementierung ändern können, wurde das agile Prozessmodell gewählt. Dieses bietet die nötige Flexibilität, um es dem Auftraggeber zu ermöglichen, auch im Prozess neue Anforderungen und Kriterien festzulegen. + + +%Das Team nutzt beispielsweise \gls{SVN} als Hilfsmittel um den Prozess der Versionierung zu automatisieren. Ein mögliches Rollback zu einer früheren Version von Code ist somit jederzeit möglich. Ebenfalls ermöglicht es verteiltes Arbeiten an unterschiedlichen Orten - bereits für diesen Vorteil steht die Installation eines \gls{Plugin}s für \gls{Eclipse} in keiner Relation zur benötigten Anfahrtszeit für ein Treffen um gleichzeitig an Code zu arbeiten. + +\paragraph{Verantwortlichkeit der Führung:} Da in der Gruppe keine Hierarchie gebildet wurde, trägt jedes Mitglied die Verantwortung für die von ihm übernommenen Tasks und Stories. Die Zuteilung erfolgt bei den wöchentlichen Teamtreffen. Dabei wird für jede Aufgabe diskutiert, wer fachlich und zeitlich für die Bearbeitung der Aufgabe in Frage kommt und die Aufgaben entsprechend verteilt. +\paragraph{Einbeziehung der beteiligten Personen:} Die in einer Iteration zu bearbeitenden \gls{Userstories} werden - je nach Fähigkeit - den einzelnen Teammitgliedern zugewiesen. Um eine Gleichverteilung der Arbeitsbelastung sicherzustellen, wurde eine Tabelle mit den Arbeitszeiten angelegt. Es wird darauf geachtet, dass der Zeitaufwand der einzelnen Teammitglieder annähernd gleich groß ist und keine zu starken Abweichungen voneinander entstehen. Außerdem wird bei den regelmäßigen Treffen der aktuelle Stand und die Implementierung besprochen, so dass jeder einen Überblick über das komplette Projekt hat. +\paragraph{Systemorientierter Managementansatz:} Das Team hat bei zwei Mitgliedern den Schwerpunkt im Bereich ``Entwicklung'' gesetzt, da diese über wesentlich mehr Erfahrung im Umfeld von Webprogrammierung verfügten als die anderen beiden. Ein anderes Mitglied hat Stärken in den Bereichen ``Testing'' und ``Research'' und wurde dort entsprechend eingesetzt. Das vierte Mitglied kümmert sich verstärkt um administrative Aufgaben wie die Installation benötigter Programme. +\paragraph{Nachvollziehbarkeit:} Es wurde eine Tabelle angelegt, in der jedes Mitglied seine jeweilige Arbeitszeit und die bearbeitete Aufgabe einfügt. Zudem wurde das Tool ,,Agile-Zen`` benutzt, bei dem jedes Teammitglied die von ihm bearbeiteten Aufgaben einträgt. +%noch als Ziel definieren. +\paragraph{Kontinuierliche Verbesserung:} Bei den regelmäßigen Teamtreffen werden Probleme angesprochen und Lösungsansätze vorgeschlagen. Diese regelmäßige Retrospektive wird zur Verbesserung des Prozesses genutzt. + + +%\begin{itemize} +%Prozess -> Kundenorientierung +%\item{\textbf{Kundenorientierung:} Da der agile Prozess gewählt wurde, ist es durch ein alle zwei Wochen stattfindendes Treffen mit dem Kunden möglich, dass dieser eng an die Entwicklung des Projekts gebunden wird. Sollten sich beim Kunden Änderungswünsche ergeben, kann das Team flexibel darauf reagieren und die geänderten oder neuen \gls{Userstories} in die nächste Iteration einfließen lassen.} +%Prozess -> Angemessenheit +%\item{\textbf{Angemessenheit:} Da es sich um ein Projekt handelt, dessen Anforderungen nicht zu Beginn feststanden und sich im Laufe der Implementierung ändern können, wurde das agile Prozessmodell gewählt. Dieses bietet die nötige Flexibilität, um es dem Auftraggeber zu ermöglichen auch im Prozess neue Anforderungen und Kriterien festzulegen.} + + +%Das Team nutzt beispielsweise \gls{SVN} als Hilfsmittel um den Prozess der Versionierung zu automatisieren. Ein mögliches Rollback zu einer früheren Version von Code ist somit jederzeit möglich. Ebenfalls ermöglicht es verteiltes Arbeiten an unterschiedlichen Orten - bereits für diesen Vorteil steht die Installation eines \gls{Plugin}s für \gls{Eclipse} in keiner Relation zur benötigten Anfahrtszeit für ein Treffen um gleichzeitig an Code zu arbeiten. +%\item{\textbf{Verantwortlichkeit der Führung:} Da in der Gruppe keine Hierarchie gebildet wurde trägt jedes Mitglied die Verantwortung für die von ihm übernommenen Tasks und Stories. Die Zuteilung erfolgt bei den wöchentlichen Teamtreffen. Dabei wird für jede Aufgabe diskutiert, wer fachlich und zeitlich für die Bearbeitung der Aufgabe in Frage kommt und entsprechend verteilt. } +%\item{\textbf{Einbeziehung der beteiligten Personen:} Die in einer Iteration zu bearbeitenden \gls{Userstories} werden je nach Fähigkeit den einzelnen Teammitgliedern zugewiesen. Um eine Gleichverteilung der Arbeitsbelastung sicherzustellen, wurde eine Tabelle mit den Arbeitszeiten angelegt. Es wird darauf geachtet, dass der Zeitaufwand aller Teammitglieder nicht zu stark voneinander abweicht. Außerdem wird bei den regelmäßigen Treffen der aktuelle Stand und die Implementierung besprochen, so dass jeder einen Überblick über das komplette Projekt hat.} +%\item{\textbf{Systemorientierter Managementansatz:} Das Team hat bei zwei Mitgliedern den Schwerpunkt im Bereich ``Entwicklung'' gesetzt, da diese über wesentlich mehr Erfahrung im Umfeld von Webprogrammierung verfügten als die anderen beiden. Ein anderes Mitglied hat Stärken in den Bereichen ``Testing'' und ``Research'' und wurde dort entsprechend eingesetzt. Das vierte Mitglied kümmert sich verstärkt um administrative Aufgaben wie die Installation benötigter Programme.} +%\item{\textbf{Nachvollziehbarkeit:} Es wurde eine Tabelle angelegt, in der jedes einzelne Mitglied seine Arbeitszeit und die bearbeitete Aufgabe einfügt. Zudem wurde das Tool ,,Agile-Zen`` benutzt, bei dem jedes Teammitglied die von Ihm bearbeiteten Aufgaben einträgt.} +%noch als Ziel definieren. +%\item{\textbf{Kontinuierliche Verbesserung:} Bei den regelmäßigen Teamtreffen werden Probleme angesprochen und Lösungsansätze vorgeschlagen. Die Retrospektive } +%\end{itemize} + + +\vspace*{2em} +\section{Testmethoden} +Zur Durchführung der Tests wurden die zwei \gls{Testframework}s JUnit und Selenium verwendet. +Um die Qualität zu überprüfen und die Ergebnisse zu validieren, wurden als Testumgebungen für den Code \gls{JUnit} und \gls{Selenium} ausgewählt. \gls{JUnit} dient dazu, die Funktionalität auf Controller zu überprüfen, während \gls{Selenium} die Anbindung der Controllerebene an die \gls{Benutzeroberfläche} überprüft. +Es wird versucht, anhand dieser Blackboxtests eine stetige Kontrolle der bereits implementierten Funktionalität durchzuführen, sodass beim Hinzufügen von Funktionen keine Fehler in die bisherige Funktionalität mit einfließen. +Selenium wurde gewählt, um Blackboxtests zu automatisieren. Tests, die nicht über Selenium oder JUnit abgedeckt werden können, werden nach jeder Iteration manuell nach Testplan durchgeführt. + +\subsection{JUnit} +JUnit ist ein \gls{Opensource} Testframework zum automatisierten und wiederholendem Testen einzelner Klassen und Methoden. Es bietet Möglichkeiten, das Verhalten einzelner Methoden mittels ,,Assertions'' auf erwartetes Verhalten hin zu überprüfen. Des weiteren können mit JUnit sog. Testsuites angelegt werden, die bestimmte Testumgebungen abbilden, in welchen unterschiedliche Vorbedingungen gegeben sind. + +\subsection{Umgebung von JUnit} +JUnit wurde als Plugin für Eclipse hinzugefügt. Die einzelnen JUnit Tests werden zusammen mit dem Quelltext der Applikation vorgehalten. Nach einer Änderung am Code wird der JUnitrunner aufgerufen, um die entsprechende Testsuite zu starten. Die Ergebnisse der Tests werden mit ,,passed'' oder ,,failed'' angegeben. Die JUnit Tests werden lokal durchgeführt und manuell gestartet. + +\subsection{Selenium} +Selenium ist eine Toolsuite, die es ermöglicht, speziell das Testen von Webanwendungen zu automatisieren. Durch den modularen Aufbau und den in Java geschrieben Selenium Server kann die Suite auf vielen Plattformen eingesetzt werden. So ist es mit wenig Aufwand möglich, den gleichen Test unter MacOS, Windows oder Linux laufen zu lassen. Die Funktionsweise von Selenium ist mit der eines Videos zu vergleichen - zuerst wird ein Video aufgenommen, das dann beliebig oft abgespielt werden kann. Analog definiert man für Selenium verständlich einen Testfall, indem man Aktionen wie ,,Klicke auf'', ,,Fülle Textbox mit'' und ,,Verifiziere das ein bestimmter Text auf der aktuell geöffneten Seite vorhanden ist'' zu einem Script zusammenfügt. +%Das in Seleniumdialekt geschriebene Script wird bei Ausführung eines Tests an den Remotecontrolserver geliefert, welcher einen Browser kontrolliert und die empfangenen Befehle im Browser ausführt. Das Erstellen eines solchen Testscriptes wird vereinfacht durch das Plugin ,,Selenium IDE'' für den Browser Firefox. +Zur Vereinfachung der Testerstellung wird ein Plugin für Firefox verwendet, welches eine Aufnahme der Nutzerinteraktion innerhalb des Browsers anfertigt und anhand der mitgeschnittenen Aktionen ein Scriptgerüst anfertigt. +Abfragen und Ergebnisse werden vom Seleniumserver an die Testsuite zurückgeliefert. +\newline +\subsection{Umgebung von Selenium} +Im Quelltext der Unittests von Webapp wurden die entsprechenden Treiber auf Javabasis für den Seleniumsserver integriert. Die Treiber ermöglichen die Integration von Seleniumtests in Eclipse als Unittests, sodass die Tests aus Eclipse heraus gestartet werden können, sofern die MySQL Datenbank und der Tomcatserver bereits laufen. + +\subsection{Manuelle Tests} +In einigen Fällen ist es nicht möglich oder zu aufwändig, automatisierte Tests mittels \gls{JUnit} oder \gls{Selenium} durchzuführen. In diesem Fall wurden manuelle Tests durchgeführt. Dabei bekommt das System eine im Testplan spezifizierte Eingabe, die von einer Person per Hand durchgeführt wird. Der Test ist erfolgreich, wenn eine der Programmspezifikation entsprechende Ausgabe folgt. Auch die Ausgabe muss von einer Person ausgelesen und mit dem erwarteten Ergebnis verglichen werden. +\newpage +\section{Testprotokolle} +Auf den folgenden Seiten finden sich die Testprotokolle der einzelnen Tests. Zu jedem Test wird innerhalb dieses Dokuments ein eigenes ,,Sheet'' geführt. +\subsection{Statusbar - JUnit Tests} +\subsubsection{testAddMessage} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 1 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testAddMessage \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 2 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Funktionaler Test \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & JUnit \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & David Kaufmann \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 04.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 04.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Es wird überprüft, wie viele Nachrichten im Message-Service enthalten sind. Danach wird eine Nachricht erstellt und dem Service hinzugefügt. Es wird überprüft, ob der Service nun eine Nachricht mehr enthält und ob eine Nachricht mit den Eigenschaften der hinzugefügten Nachricht im Service existiert. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Die hinzugefügte Nachricht ist im Message-Service vorhanden.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 04.01.2011 - David Kaufmann & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 04.01.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} +\newpage +\subsubsection{testAddFavourite} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 2 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testAddFavourite \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 6 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Funktionaler Test \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & JUnit \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & David Kaufmann \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 04.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 04.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Es wird überprüft, ob eine Nachricht per Aufruf im MessageService als Favorit markiert wird. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Die Nachricht ist ein Favorit.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 04.01.2011 - David Kaufmann & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 04.01.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} + +\newpage +\subsubsection{testDelFavourite} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 3 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testDelFavourite \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 6 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Funktionaler Test \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & JUnit \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & David Kaufmann \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 04.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 04.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Es wird überprüft, ob eine Nachricht, die als Favorit markiert wurde, diesen Status per Aufruf im Message-Service auch wieder zurücksetzen kann.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Die Nachricht ist kein Favorit mehr.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & Die Nachricht muss im Service vorhanden sein als auch den Favoritenstatus haben.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 04.01.2011 - David Kaufmann & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 04.01.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} + +\newpage +\subsubsection{testCountFavourites} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 4 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testCountFavourites \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 6 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Funktionaler Test \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & JUnit \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & David Kaufmann \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 26.02.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 26.02.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Es wird überprüft, wie viele Nachrichten als Favorit markiert wurden. Dann werden zwei Messages erstellt, dem Message-Service hinzugefügt und als Favoriten markiert. Danach wird überprüft, ob zwei Favoriten hinzugekommen sind. Die zweite Nachricht wird als Favorit gelöscht. Es wird nun überprüft, ob sich die Anzahl der vorhandenen Favoriten im Vergleich zum Startwert um eins erhöht hat.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Nach dem Test ist ein Favorit mehr im Message-Service.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 26.02.2011 - David Kaufmann & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 26.02.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} +\newpage +\subsubsection{testNewMessages} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 5 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testNewMessages \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 4 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Funktionaler Test \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & JUnit \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & David Kaufmann \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 04.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 04.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Es wird überprüft, ob die zuletzt gesehene Nachricht einen kleineren ID-Tag hat als eine, die im Nachhinein hinzugefügt wird. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Der ID-Tag der zuletzt gesehenen Nachricht ist kleiner als der ID-Tag der neu erstellten.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & Es muss mindestens eine Nachricht im Service vorhanden sein, die bereits betrachtet wurde.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 04.01.2011 - David Kaufmann & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 04.01.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} + +\newpage +\subsection{Statusbar - Selenium Tests} +Die Tests für Statusbar decken die Funktionalität und Interoperabilität ab. Besonderes Augenmerk erhielt der Test für die Echtzeitanzeige.\\ +\subsubsection{testExternerStringPositiv} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 6 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testExternerStringPositiv \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Positivtest \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & Selenium UI \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & Dennis Werner \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 10.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 10.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Dieser Test dient zur Verifizierung der korrekten Arbeitsweise von Selenium bzw. dem schnellen Prüfen, ob der lokale Tomcat gestartet ist oder sonstige lokale Netzwerkprobleme vorliegen. Es wird eine Webseite von einem externen Server geöffnet und getestet, ob ein bestimmter String auf der Seite vorhanden ist. Es soll sichergestellt werden, dass nur bei einem Positivergebnis der Test als erfolgreich markiert wird. (''VerifyTrue'') \\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Der gesuchte String wird erkannt.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & Eine Internetverbindung muss bestehen \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 10.01.2011 - Dennis Werner & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 10.01.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} +\newpage +\subsubsection{testExternerStringNegativ} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 7 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testExternerStringNegativ \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Negativtest \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & Selenium UI \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & Dennis Werner \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 10.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 10.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Es wird eine Webseite von einem externen Server geöffnet und getestet, ob ein bestimmter String auf der Seite nicht vorhanden ist. Es soll sichergestellt werden, dass nur bei einem Negativergebnis der Test als erfolgreich markiert wird (''VerifyFalse''). Des weiteren ist durch die Nutzung einer externen Seite ersichtlich, ob es sich bei Problemen mit Selenium evtl. um lokale oder globale Netzwerkprobleme handelt \\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Der gesuchte String wird erkannt.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & Eine Internetverbindung muss bestehen \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 10.01.2011 - Dennis Werner & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 10.01.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} +\subsubsection{testStatusBarAddMessage} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 8 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testStatusBarAddMessage \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 1 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Positivtest \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & Selenium UI \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & Dennis Werner \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 10.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 10.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Durch simulierte Eingabe einer Message ,,Selenium Nachricht 001'' und anschließendem Klick auf den Button ,,Senden'' soll eine Testmessage gespeichert werden. Es wird im Anschluss durch Suche nach dem Teststring geprüft, ob die gespeicherte Message korrekt angezeigt wird. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Der eingegebene Messagestring soll in der ausgeklappten Statusbar sichtbar sein\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & Der User muss eingeloggt sein. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 10.01.2011 - Dennis Werner & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 10.01.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} +\newpage +\subsubsection{testMessage001isDeletedAfterReset} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 9 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testMessage001isDeletedAfterReset \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Negativtest \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & Selenium UI \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & Dennis Werner \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 10.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 10.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Die im vorhergehenden Test angelegte Testmessage ,,Selenium Nachricht 001'' wird nun genutzt, um festzustellen, ob die eigens für Seleniumtests geschriebene Resetfunktion funktioniert. Der Test ruft eine URL auf, die einen Reset auslöst und die Datenbank leert. Es dürfen daher keine vorher eingegebenen Messages zurückbleiben.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Der im Test ,,testStatusBarAddMessage'' eingegebene Messagestring soll in der ausgeklappten Statusbar nicht mehr sichtbar sein.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & Der User muss eingeloggt sein. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 10.01.2011 - Dennis Werner & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 10.01.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} +\newpage +\subsubsection{testAddMessage002LiveUpdatecheck} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 10 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testAddMessage002LiveUpdatecheck \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 1 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Positivtest \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & Selenium UI \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & Dennis Werner \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 10.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 10.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Es werden mindestens zwei Browserfenster geöffnet. In einem Browserfenster wird die Nachricht ,,Selenium Nachricht 002'' abgeschickt. Es wird ca. eine Sekunde später geprüft, ob die Nachricht in den anderen Browsern sichtbar geworden ist.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Der String ,,Selenium Nachricht 002'' wird in allen Browsern angezeigt.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & Der User muss eingeloggt sein. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 10.01.2011 - Dennis Werner & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 10.01.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} +\newpage +\subsubsection{testMessageIsMarkedAsNewOnFirstView} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 11 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testMessageIsMarkedAsNewOnFirstView \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 1 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Positivtest \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & Selenium UI \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & Dennis Werner \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 10.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 10.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Es wird eine Nachricht geschrieben und anschließend geprüft, ob diese als ,,neu'' markiert ist.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Die neue Nachricht wird mit einem ,,*NEW*'' markiert.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & Der User muss eingeloggt sein. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 10.01.2011 - Dennis Werner & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 10.01.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} + +\newpage +\subsubsection{testMessageIsNotMarkedAsNewOnSecondView} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 12 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testMessageIsNotMarkedAsNewOnSecondView \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 1 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Negativtest \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & Selenium UI \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & Dennis Werner \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 10.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 10.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Der Browser wird geschlossen und erneut geöffnet. Die im vorherigen Test erzeugte Message soll nun ihre Markierung als ,,*NEW*'' nicht mehr aufweisen.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Der Nachrichtenstring aus Test 6a wird nun ohne ,,*NEW*'' angezeigt.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & Der User muss eingeloggt sein. Test 6a muss aufgerufen worden sein bzw. der Browser zwischenzeitlich geschlossen worden sein. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 10.01.2011 - Dennis Werner & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 10.01.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} + +\newpage +\subsection{Discussion - JUnit Tests} +\subsubsection{testAddPoll} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 13 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testAddPoll \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 12 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Funktionaler Test \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & JUnit \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & David Kaufmann \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 04.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 04.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Eine Umfrage wird erstellt. Es wird überprüf,t ob diese Umfrage im Discussion-Service vorhanden ist.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Die Umfrage ist im Discussion-Service.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 04.01.2011 - David Kaufmann & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 04.01.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} + +\newpage +\subsubsection{testImportantPoll} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 14 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testImportantPoll \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 12 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Funktionaler Test \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & JUnit \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & David Kaufmann \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 04.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 04.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Eine Umfrage wird erstellt und als ,,important'' markiert. Es wird überprüft, ob diese Umfrage im Discussion-Service vorhanden ist und als ,,important'' markiert wurde. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Die Umfrage ist im Discussion-Service und ist als ,,important'' markiert.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 04.01.2011 - David Kaufmann & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 04.01.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} + +\newpage +\subsubsection{testClosePoll} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 15 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testClosePoll \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 8 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Funktionaler Test \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & JUnit \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & David Kaufmann \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 04.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 04.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Eine Umfrage wird erstellt, im Discussion-Service hinzugefügt, und dann ,,geschlossen''. Es wird überprüft, ob diese Umfrage im Discussion-Service vorhanden ist und als ,,geschlossen'' markiert wurde. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Die Umfrage ist im Discussion-Service und als ,,geschlossen'' markiert.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 04.01.2011 - David Kaufmann & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 04.01.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} +\newpage +\subsubsection{testAnswerPossibilitiesToPoll} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 16 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testAnswerPossibilitiesToPoll \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 12 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Funktionaler Test \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & JUnit \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & David Kaufmann \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 04.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 04.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Eine Umfrage mit Antwortmöglichkeiten wird erstellt. Es wird überprüft, ob diese Umfrage im Discussion-Service vorhanden ist und die Antwortmöglichkeiten ihr zugewiesen sind. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Die Umfrage ist im Discussion-Service und die Antwortmöglichkeiten sind der Umfrage zugeordnet.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 04.01.2011 - David Kaufmann & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 04.01.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} +\newpage +\subsubsection{testSingleAnswerToPoll} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 17 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testSingleAnswerToPoll \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 13 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Funktionaler Test \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & JUnit \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & Holger Thies \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 28.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 06.02.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Eine Umfrage mit Antwortmöglichkeiten wird erstellt. Ein Antwort-Objekt wird erstellt und eine Antwort gesetzt. Es wird überprüft, ob diese Umfrage und die zugehörige Antwort im DiscussionService vorhanden ist. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Die Umfrage und die Antwort sind im Discussion-Service.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 28.01.2011 - David Kaufmann & Test implementiert, Funktionalität nicht vorhanden.\\ +\hline \rule[-2ex]{0pt}{5.5ex} 06.02.2011 - Holger Thies & Funktionalität implementiert, Test erfolgreich.\newline +Testende am 06.02.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} +\newpage +\subsubsection{testMultipleAnswersToPoll} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 18 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testMultipleAnswersToPoll \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 13 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Funktionaler Test \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & JUnit \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & David Kaufmann \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 04.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 04.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Eine Umfrage mit Antwortmöglichkeiten wird erstellt. Ein Antwort-Objekt wird erstellt und mehrere Antworten gesetzt. Es wird überprüft, ob diese Umfrage und die zugehörige Antwort im DiscussionService vorhanden ist. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Die Umfrage und die Antwort sind im Discussion-Service.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 28.01.2011 - David Kaufmann & Test implementiert, Funktionalität nicht vorhanden.\\ +\hline \rule[-2ex]{0pt}{5.5ex} 06.02.2011 - Holger Thies & Funktionalität implementiert, Test erfolgreich.\newline +Testende am 06.02.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} +\newpage +\subsubsection{testMultipleAnswersToMultiplePolls} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 19 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testMultipleAnswersToMultiplePolls \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 13 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Funktionaler Test \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & JUnit \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & David Kaufmann \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 04.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 04.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Mehrere Umfragen mit Antwortmöglichkeiten werden erstellt. Antwort-Objekte werden erstellt und Antworten gesetzt. Es wird überprüft, ob die Umfragen und die zugehörigen Antworten im Discussion-Service vorhanden und korrekt zugeordnet sind. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Die Umfragen und die Antworten sind im Discussion-Service. Sie sind einander zugeordnet.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 28.01.2011 - David Kaufmann & Test implementiert, Funktionalität nicht vorhanden.\\ +\hline \rule[-2ex]{0pt}{5.5ex} 06.02.2011 - Holger Thies & Funktionalität implementiert, Test erfolgreich.\newline +Testende am 06.02.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} +\newpage +\subsubsection{testAddQuestion} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 20 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testAddQuestion \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 9 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Funktionaler Test \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & JUnit \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & David Kaufmann \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 04.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 04.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Eine Frage wird erstellt. Es wird überprüft, ob diese Frage im Discussion-Service vorhanden ist. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Die Frage ist im Discussion-Service.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 04.01.2011 - David Kaufmann & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 04.01.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} +\newpage +\subsubsection{testImportantQuestion} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 21 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testImportantQuestion \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 9 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Funktionaler Test \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & JUnit \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & David Kaufmann \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 04.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 04.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Eine Frage wird erstellt und als ,,important'' markiert. Es wird überprüft, ob diese Frage im Discussion-Service vorhanden und als ,,important'' markiert ist. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Die Frage ist im Discussion-Service und als ,,important'' markiert.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 04.01.2011 - David Kaufmann & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 04.01.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} +\newpage +\subsubsection{testCloseQuestion} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 22 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testCloseQuestion \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 8 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Funktionaler Test \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & JUnit \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & David Kaufmann \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 04.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 04.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Eine Frage wird erstellt, im Discussion-Service hinzugefügt und ,,geschlossen''. Es wird überprüft, ob diese Frage im Discussion-Service vorhanden und ,,geschlossen'' ist. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Die Frage ist im Discussion-Service und als ,,geschlossen'' markiert.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 04.01.2011 - David Kaufmann & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 04.01.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} +\newpage +\subsubsection{testAddAnswerToQuestion} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 23 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testAddAnswerToQuestion \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 11 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Funktionaler Test \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & JUnit \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & David Kaufmann \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 04.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 04.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Eine Frage und eine Antwort werden erstellt. Die Antwort wird der Frage zugeordnet. Es wird überprüft, ob diese Frage im Discussion-Service vorhanden und die Antwort der Frage zugeordnet ist. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Die Frage ist im Discussion-Service und die Antwort ist der Frage zugeordnet.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 04.01.2011 - David Kaufmann & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 04.01.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} +\newpage +\subsubsection{testAddAnswersToMultipleQuestion} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 24 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testAddAnswerToMultipleQuestion \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 11 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Funktionaler Test \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & JUnit \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & David Kaufmann \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 04.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 04.01.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Eine Frage und mehrere Antworten werden erstellt. Die Antworten werden der Frage zugeordnet. Es wird überprüft, ob diese Frage im Discussion-Service vorhanden und die Antworten der Fragen zugeordnet sind. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Die Fragen sind im Discussion-Service und die Antworten sind den Fragen zugeordnet.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 04.01.2011 - David Kaufmann & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 04.01.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} + + +\newpage +\subsection{Discussion - Selenium Tests} +\subsubsection{testAddQuestion} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 25 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testAddQuestion \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 9,10 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Positivtest \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & Selenium UI \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & Dennis Werner \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 17.02.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 17.02.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Es wird eine Frage angelegt mit dem Titel ,,NeueFrage1''.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Die Frage mit dem Titel ,,NeueFrage1'' wird mit den Auswahlmöglichkeiten angezeigt.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & Der User muss eingeloggt sein. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 17.02.2011 - Dennis Werner & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 17.02.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} + + +\newpage +\subsubsection{testAddQuestionAnswer} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 26 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testAddQuestionAnswer \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 11 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Positivtest \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & Selenium UI \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & Dennis Werner \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 17.02.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 17.02.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Es wird die im vorherigen Test angelegte ,,NeueFrage1'' mit dem String ,,AntwortZuNeueFrage1'' beantwortet.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Die Antwort wird bei Klick auf ,,NeueFrage1'' wird angezeigt.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & Der User muss eingeloggt sein. Test 18 muss bereits ausgeführt worden sein \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 17.02.2011 - Dennis Werner & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 17.02.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} + +\newpage +\subsubsection{testCloseQuestion} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 27 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testCloseQuestion \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 8 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Negativtest \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & Selenium UI \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & Dennis Werner \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 17.02.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 17.02.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Es wird die im Test 18 angelegte ,,NeueFrage1''geschlossen.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Bei Klick auf ,,NeueFrage1'' ist keine Antwort mehr möglich.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & Der User muss eingeloggt sein. Test 18 muss bereits ausgeführt worden sein \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 17.02.2011 - Dennis Werner & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 17.02.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} + + +\newpage +\subsubsection{testAddImportantQuestion} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 28 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testAddImportantQuestion \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 12 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Positivtest \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & Selenium UI \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & Dennis Werner \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 17.02.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 17.02.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Es wird eine Frage angelegt mit dem Titel ,,NeueFrage1'', dabei wird die Frage als ,,wichtig'' markiert.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Die Frage mit dem Titel ,,NeueFrage1'' wird mit dem entsprechenden Logo für ,,wichtig'' markiert.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & Der User muss eingeloggt sein. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 17.02.2011 - Dennis Werner & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 17.02.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} + +\newpage +\subsubsection{testAddPollNotMultiple} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 29 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testAddPollNotMultiple \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 12 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Positivtest \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & Selenium UI \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & Dennis Werner \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 17.02.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 17.02.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Es wird eine Umfrage mit dem Text ,,TextZuPollNichtMultiple'', dabei wird die Umfrage auf eine Antwort limitiert.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Die Frage mit dem Titel ,,TextZuPollNichtMultiple'' wird angezeigt.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & Der User muss eingeloggt sein. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 17.02.2011 - Dennis Werner & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 17.02.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} + + +\newpage +\subsubsection{testAddPollMultiple} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 30 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testAddPollMultiple \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 12 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Positivtest \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & Selenium UI \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & Dennis Werner \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 17.02.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 17.02.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Es wird eine Umfrage mit dem Text ,,TextZuPollMultiple'' erstellt, dabei wird die Umfrage auf eine Antwort limitiert.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Die Frage mit dem Text ,,TextZuPollMultiple'' wird angezeigt.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & Der User muss eingeloggt sein. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 17.02.2011 - Dennis Werner & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 17.02.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} + + +\newpage +\subsubsection{testPollVoteNotMultiple - haendisch} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 31 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testPollVoteNotMultiple - haendisch \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 13 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Positivtest \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & Selenium UI \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & Dennis Werner \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 17.02.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 17.02.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Es wird manuell eine Umfrage beantwortet, anschließend optisch überprüft ob die Tortengrafik das korrekte Ergebnis liefert.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Die Tortengrafik wird entsprechend den Antwortwerten gerendert.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & Der User muss eingeloggt sein. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 17.02.2011 - Dennis Werner & Für Selenium keine Möglichkeit gefunden Grafiken zu interpretieren, daher Test haendisch durchgeführt und vermerkt.\newline Testende am 17.02.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} + +\newpage +\subsection{Webdoc - JUnit Tests} +\subsubsection{testAddFolder} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 32 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testAddFolder \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 44 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Funktionaler Test \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & JUnit \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & Holger Thies \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 30.03.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 30.03.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Ein Ordner wird erstellt und dem Projekt oder einem untergeordnetem Ordner zugeordnet.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Der Ordner ist erstellt und gehört dem Projekt an.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 30.03.2011 - Holger Thies & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 30.03.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} + +\newpage +\subsubsection{testAddDocument} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 33 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testAddDocument \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 44 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Funktionaler Test \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & JUnit \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & Holger Thies \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 30.03.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 30.03.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Ein Dokument wird erstellt und in einem Ordner angelegt.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Das Dokument ist erstellt und dem Ordner zugeordnet.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 30.03.2011 - Holger Thies & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 30.03.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} + +\newpage +\subsubsection{testDeleteDocument} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 34 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testDeleteDocument \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 46,47,55 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Funktionaler Test \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & JUnit \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & Holger Thies \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 30.03.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 30.03.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Ein Dokument wird erstellt und anschließend wieder gelöscht.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Es gibt keine Veränderung. Die Anzahl der Dokumente ist gleich der Anzahl der Dokumente zum Testbeginn.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 30.03.2011 - Holger Thies & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 30.03.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} + +\newpage +\subsubsection{testDeleteFolder} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 35 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testDeleteFolder \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 46,47,55 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Funktionaler Test \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & JUnit \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & Holger Thies \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 30.03.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 30.03.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Ein Ordner wird erstellt und anschließend wieder gelöscht.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Es gibt keine Veränderung. Die Anzahl der Ordner ist gleich der Anzahl der Ordner zum Testbeginn.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 30.03.2011 - Holger Thies & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 30.03.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} + +\newpage +\subsubsection{testRenameDocument} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 36 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testRenameDocument \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 39 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Funktionaler Test \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & JUnit \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & Holger Thies \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 30.03.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 30.03.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Ein Dokument wird erstellt und anschließend umbenannt.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Das Anfangs erstellte Dokument ist mit dem neuen Namen vorhanden. Er wurde umbenannt.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 30.03.2011 - Holger Thies & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 30.03.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} + +\newpage +\subsubsection{testRenameFolder} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 37 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testRenameFolder \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 39 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Funktionaler Test \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & JUnit \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & Holger Thies \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 30.03.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 30.03.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Ein Ordner wird erstellt und anschließend umbenannt.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Der Anfangs erstellte Ordner ist mit dem neuen Namen vorhanden. Er wurde umbenannt.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 30.03.2011 - Holger Thies & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 30.03.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} + +\newpage +\subsubsection{testDeleteFolderWithContent} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 38 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testDeleteFolderWithContent \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 46,47,55 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Funktionaler Test \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & JUnit \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & Holger Thies \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 30.03.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 30.03.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Ein Ordner wird erstellt und mehrere untergeordnete Elemente hinzugefügt. Anschließend wird der Ordner markiert und gelöscht.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Der Ordner und sämtliche untergeordneten Elemente sind gelöscht und nicht mehr vorhanden.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 30.03.2011 - Holger Thies & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 30.03.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} + +\newpage +\subsubsection{testAddTag} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 39 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testAddTag \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 40 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Funktionaler Test \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & JUnit \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & Holger Thies \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 30.03.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 30.03.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Ein Element wird erstellt und ein Tag dem Element hinzugefügt.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Der Tag ist vorhanden und dem erstellten Element zugeordnet.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 30.03.2011 - Holger Thies & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 30.03.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} + +\newpage +\subsubsection{testDeleteTag} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 40 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testDeleteTag \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 48 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Funktionaler Test \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & JUnit \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & Holger Thies \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 30.03.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 30.03.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Ein Element wird erstellt und ein Tag dem Element hinzugefügt. Anschließend wir der Tag gelöscht.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Das Element ist vorhanden, besitzt aber keine Tags.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & - \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 30.03.2011 - Holger Thies & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 30.03.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} + + + +\newpage + +\subsection{Webdoc - Selenium Tests} + +Leider ist die Gestaltung von Webdoc mit Javascript und Iframes zu komplex, um Seleniumtests in einem angemessenen Zeitraum auszuarbeiten. + +\subsection{Webdoc - manuelle Tests} +Da in dieser Komponente sehr viel mit Ajax gearbeitet wurde, wäre es sehr aufwendig gewesen, mittels automatisierter Tests alle Funktionalitäten abzudecken. Deshalb wurden hier auch einige manuelle Tests durchgeführt. +\subsubsection{testOpenDocument} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 41 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testOpenDocument \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 58 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Funktionaler Test \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & manuell \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & Holger Thies, Victor Negoescu \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 25.03.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 25.03.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Der Tester legt einen neuen Ordner mit dem Namen Ordner1 an. In diesem wird ein Dokument mit dem Namen Dokument1 erstellt. Durch Doppelklick wird das Dokument geöffnet. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Innerhalb des Browserfensters erscheint ein Overlay mit dem Etherpad-Editor. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & Ein Browser, in dem die Anwendung läuft, muss geöffnet sein. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & Der Ordner Ordner1 soll gelöscht werden. \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 26.03.2011 - Holger Thies & Test zum ersten Mal durchgeführt. Erster Test bereits erfolgreich\newline +Testende am 25.03.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} +\newpage +\subsubsection{testDocumentWasOpened} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 42 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testDocumentWasOpened \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 57 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Funktionaler Test \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & manuell \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & Holger Thies \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 28.03.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 28.03.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Der Tester legt einen neuen Ordner mit dem Namen Ordner1 an. In diesem wird ein Dokument mit dem Namen Dokument1 erstellt. Durch Doppelklick wird das Dokument geöffnet. Der Tester schließt daraufhin die Anwendung und ändert den aktuellen User auf den User mit der ID 1. Er ruft die Anwendung wieder auf und navigiert zu dem neu erstellten Dokument. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Hinter dem Dokument steht in roter Schrift "Edit".\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & Ein Browser, in dem die Anwendung läuft, muss geöffnet sein. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & Der Ordner Ordner1 muss gelöscht werden und die UserId zurückgesetzt werden. \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 28.03.2011 - Holger Thies & Test implementiert, erster Test bereits erfolgreich.\newline Testende am 28.03.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} + +\newpage +\subsubsection{testDocumentIsBeingEdited} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 43 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testDocumentIsBeingEdited \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 58 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Funktionaler Test \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & manuell \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & Holger Thies, Victor Negoescu \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 25.03.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 27.03.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Der Tester legt einen neuen Ordner mit dem Namen Ordner1 an. In diesem wird ein Dokument mit dem Namen Dokument1 erstellt. Der Tester öffnet ein neues Browserfenster und ruft dort ebenfalls die Webdoc-Komponente auf. Er navigiert dann im Tree zu dem neu angelegten Dokument und öffnet dieses per Doppelklick. Daraufhin wechselt er zurück in das andere Browserfenster. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Nach einigen Sekunden erscheint hinter dem Dokument im TreeView und in der Dokumentenansicht der Name des Users.\\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & Ein Browser, in dem die Anwendung läuft muss, geöffnet sein. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & Der Ordner Ordner1 soll gelöscht werden. \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 26.03.2011 - Holger Thies & Test zum ersten Mal durchgeführt. Test fehlgeschlagen\newline +\cr 27.03.2011 - Victor Negoescu & Test zum zweiten Mal durchgeführt. Test erfolgreich\newline Testende am 27.03.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} + +\newpage +\subsubsection{testSortDocumentsByName} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 44 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testSortDocuments\\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 60 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Funktionaler Test \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & manuell \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & Holger Thies \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 20.03.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 26.03.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Der Tester legt in dem ersten Projekt, in dem er eingetragen ist, einen neuen Ordner mit dem Namen Ordner1 an. In diesem werden in der angegebenen Reihenfolge die 6 Dokumente mit den Namen cDok, bDok, eDok, dDok, fDok, aDok erstellt. Ordner1 wird ausgewählt, so dass die Dokumente in der Dokumentenansicht rechts sichtbar sind. Der Tester klickt dann auf den Button "Sort by Name"\\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Die Dokumente sind nach ihrem Namen in aufsteigend alphabetischer Reihenfolge sortiert, d.h. in der Dokumentenansicht befinden sich die Dokumente in der Reihenfolge (von oben nach unten) aDok, bDok, cDok, eDok, fDok. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & Ein Browser, in dem die Anwendung läuft, muss geöffnet sein. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & Nach der Durchführung des Tests wird der Ordner Ordner1 gelöscht. \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 26.03.2011 - Holger Thies & Test zum ersten Mal durchgeführt. Test fehlgeschlagen.\newline +\cr 27.03.2011 - Holger Thies & Test zum zweiten Mal durchgeführt. Test fehlgeschlagen. \newline +\cr 28.03.2011 - Holger Thies & Test zum dritten Mal durchgeführt. Test erfolgreich. \newline +Testende am 28.03.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} + +\newpage +\subsubsection{testEditDocument} +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} Testnummer & 45 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testname & testEditDocument \\ +\hline \rule[-2ex]{0pt}{5.5ex} Teil von Userstorie Nr & 58 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testkategorie & Funktionaler Test \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testwerkzeug & manuell \\ +\hline \rule[-2ex]{0pt}{5.5ex} Tester & Holger Thies \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test erstellt am & 30.03.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Test abgeschlossen am & 30.03.2011 \\ +\hline \rule[-2ex]{0pt}{5.5ex} Testbeschreibung & Der Tester legt einen neuen Ordner mit dem Namen Ordner1 an. In diesem wird ein Dokument mit dem Namen Dokument1 erstellt. Durch Doppelklick wird das Dokument geöffnet. In der sich öffnenden Etherpad-Instanz ändert der Tester den Text in "Test Edit Document" und drückt auf Speichern. Danach schließt er das Browserfenster und öffnet die Anwendung neu. Er navigiert zu Ordner1 und öffnet Dokument1 durch doppelklick. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Erwartetes Ergebnis & Innerhalb des Browserfensters erscheint ein Overlay mit dem Etherpad-Editor. Der Text in dem geöffneten Dokument lautet "Test Edit Document" \\ +\hline \rule[-2ex]{0pt}{5.5ex} Vorbedingungen & Ein Browser in dem die Anwendung läuft muss geöffnet sein. \\ +\hline \rule[-2ex]{0pt}{5.5ex} Randbedingungen & - \\ +\hline \rule[-2ex]{0pt}{5.5ex} Nachbedingungen & Der Ordner Ordner1 soll gelöscht werden. \\ +\hline +\hline +\hline \rule[-2ex]{0pt}{5.5ex} 30.03.2011 - Holger Thies & Test zum ersten Mal durchgeführt. Erster Test bereits erfolgreich\newline +Testende am 30.03.2011 erreicht. \\ +\hline +\end{tabular} +\end{tabbing} +\newpage +\section{Versionshistorie} +Für eine bessere Nachvollziehbarkeit sind die Änderungen in diesem Dokument tabellarisch festgehalten. +\begin{tabbing} +\begin{tabular}{||p{5.4cm}||p{11cm}||} +\hline \rule[-2ex]{0pt}{5.5ex} v. 1.1.1 - 31.03.2011 - DW & Testnummern korrigiert, Abgabeversion\\ +\hline \rule[-2ex]{0pt}{5.5ex} v. 1.1.0 - 31.03.2011 - DK,HT & Einpflegung letzter Tests\\ +\hline \rule[-2ex]{0pt}{5.5ex} v. 1.0.2 - 30.03.2011 - DW & Textkorrektur\\ +\hline \rule[-2ex]{0pt}{5.5ex} v. 1.0.1 - 27.02.2011 - DW & Textkorrektur, Seleniumtests Discussion nachgereicht\\ +\hline \rule[-2ex]{0pt}{5.5ex} v. 1.0.0 - 27.02.2011 - DW & Textkorrektur\\ +\hline \rule[-2ex]{0pt}{5.5ex} v. 0.9.1 - 27.02.2011 - DW & Textkorrektur\\ +\hline \rule[-2ex]{0pt}{5.5ex} v. 0.9.0 - 26.02.2011 - DW & Textkorrektur\\ +\hline \rule[-2ex]{0pt}{5.5ex} v. 0.8.0 - 26.02.2011 - DW & Seleniumtests erweitert, Kapitel umgestellt, Textkorrektur\\ +\hline \rule[-2ex]{0pt}{5.5ex} v. 0.5.1 - 26.02.2011 - DK,DW & JUnit-Testfälle erweitert und bearbeitet; Text erweitert und angepasst\\ +\hline \rule[-2ex]{0pt}{5.5ex} v. 0.5.0 - 25.02.2011 - DK & Formatierung geändert, JUnit-Testfälle für Statusbar und Discussion hinzugefügt \\ +\hline \rule[-2ex]{0pt}{5.5ex} v. 0.4.2 - 21.02.2011 - DW & Textänderungen, Formatierung geändert \\ +\hline \rule[-2ex]{0pt}{5.5ex} v. 0.4.1 - 21.02.2011 - DW,HT & Textänderungen \\ +\hline \rule[-2ex]{0pt}{5.5ex} v. 0.4.0 - 20.02.2011 - DK,DW,HT & Textänderungen an Zielen und Maßnahmen, Glossar ergänzt \\ +\hline \rule[-2ex]{0pt}{5.5ex} v. 0.3.3 - 19.02.2011 - DW & Dokumentstruktur geändert, Textänderungen, Glossar ergänzt \\ +\hline \rule[-2ex]{0pt}{5.5ex} v. 0.3.0 - 14.02.2011 - DW & Testfälle eingefügt \\ +\hline \rule[-2ex]{0pt}{5.5ex} v. 0.2.1 - 09.02.2011 - DW & Dokumentstruktur geändert \\ +\hline \rule[-2ex]{0pt}{5.5ex} v. 0.2.0 - 07.02.2011 - DW & Dokument angelegt \\ +\hline +\end{11cm}||} +\end{tabbing} + + +\newpage +%fügt elemenmte dem toc hinzu +\addcontentsline{toc}{section}{Glossar} +\printglossary +\newpage +%fügt elemenmte dem toc hinzu +\addcontentsline{toc}{section}{Literatur} +\begin{thebibliography}{------} + \bibitem[BSS+2008]{bss+:2008} Helmut Balzert, Christian Schäfer, Marion Schröder, Uwe Kern. \emph{Wissenschaftliches Arbeiten - Wissenschaft, Quellen, Artefakte, Organisation, Präsentation}, Witten: W3L, 2008 + \bibitem[ISO9126]{iso:9126} International Organization for Standardization.\emph{ISO/IEC 9126} + \bibitem[ISO9001]{iso:9001} International Organization for Standardization. \emph{ISO 9001}, 12.2008 + \bibitem[WIKI2011]{wiki:2011} Wikipedia, die freie Enzyklopädie. \emph{WIKIPEDIA}, Stand: 26.02.2011 +\end{thebibliography} + +\newpage +%fügt elemenmte dem toc hinzu +\addcontentsline{toc}{section}{Abbildungsverzeichnis} +\listoffigures + +\end{document} + +