• Keine Ergebnisse gefunden

A.12. Anwendungsfallbeschreibung „Touren durchführen“

7.1. Aufbau des generellen V-Modells

Anwendung ermöglicht so eine gute Testabdeckung und eine Verifikation der Funktionalitäten der Software mit den gestellten Anforderungen an das System.

Die integrierten Teststufen des V-Modells sollen im Folgenden kurz erläutert werden:

Komponententest

Die Durchführung von Komponententests erfolgt durch die Entwickler der Software.

Gestestet werden Module, wie beispielsweise Klassen. Dieser Vorgang ermöglicht es, die Bewertung und Sicherstellung für eine technische Lauffähigkeit und korrekte fachliche Ergebnisse durch diese Module zu gewährleisten.

Integrationstest

Diese Art von Tests prüfen die Interaktion zwischen verschiedenen Modulen auf Korrekt-heit. Die durch das System-Design vorgegebene Zusammenarbeit von Komponenten wird geprüft, und der Test von definierten Schnittstellen wird durchgeführt.

Systemtest

Um das gesamte System zu untersuchen und die gegebenen fachlichen und nicht-fachlichen Anforderungen an die Software mit der Realisierung abzugleichen, erfolgt ein Systemtest.

Meistens werden zur Prüfung der Funktionalitäten Testdaten verwendet, welche den späteren Einsatz der Software simulieren.

Abnahmetest

Die letzte Stufe des Testablaufs erfolgt in den meisten Fällen durch den Auftraggeber.

Dieser testet die erhaltene Software auf die vorgegebenen Anforderungen hin. Da lediglich

das Verhalten des Systems getestet wird, dient hierzu ein „BlackBox“-Test. Das bedeutet, dass nicht die Implementierung der Software überprüft wird, sondern die spezifizierten Handlungen der Software beim Gebrauch.

7.2. Testdurchführung für GeoBee

Im Folgenden wird die Testdurchführung für die hier entwickelte AnwendungGeoBeevorgestellt.

Es werden Testziele erläutert und die Teststrategie aufgezeigt. Anschließend wird der Testaufbau sowohl für die Client- als auch für die Server-Applikation beispielhaft vorgestellt. Anhand der Teststufen des o.g. V-Modells wird der Software-Test erläutert und abschließend ein Ausblick auf mögliche Verbesserungen und Automatisierungen gegeben.

7.2.1. Testziele

Die festgelegten Ziele eines Softwaretests sollen die Qualitätsansprüche an die Software wider-spiegeln. Sie dienen deshalb hauptsächlich dem Auffinden von Fehlern innerhalb der Applikation.

Die Testziele variieren je nach Teststufe und Softwareprodukt. Somit müssen diese individuell an die Art des Tests und die vorliegende Software angepasst werden. Innerhalb dieser Masterarbeit wird das Verfahren an das V-Modell angelehnt. So ergeben sich folgende Testziele:

• Validierung der einzelnen Module innerhalb von Client- und Server-Anwendung durch Unit-Tests.

• Überprüfung der Integration von Modulen durch manuelle Schnittstellentests.

• Systemtests durch Verwendung der Software und Überprüfung der funktionalen Anforde-rungen.

• Abnahmetests von möglichen Nutzern. Feedback bezüglich der Funktionalitäten sowie der Nutzerschnittstelle.

Die Umsetzung der Tests wird im Abschnitt zum Testaufbau7.2.3anhand von Beispielen erläutert.

7.2.2. Teststrategie

Da ein umfassender Software-Test aufgrund der Vielfalt an Implementierungen nicht möglich ist, ist es wichtig, eine Strategie festzulegen, anhand welcher die Tests durchgeführt werden. Diese Strategie soll die Testanforderungen festlegen und den Rahmen der zu erstellenden Testfälle

abstecken. Die Festlegung einer Strategie zeigt weiterhin die Abdeckung an, welche mittels der durchgeführten Tests erreicht werden kann.

Nachfolgend wird der Umfang der Tests beschrieben, welche für die hier entstandene Software durchgeführt wurden:

Unit-Tests

Die Module der Client- und der Server-Anwendung werden mittels Unit-Tests auf Korrekt-heit überprüft. Da die entstandenen Module sehr umfangreich sind, und die Durchführung eines Tests nicht den Hauptteil der vorliegenden Arbeit ausmacht, soll dies nur beispielhaft erfolgen. Die Beispiele zeigen allerdings das grundsätzliche Vorgehen und den Einsatz von Unit-Test-Frameworks.

Integrationstests

Die Integration neuer Module soll anhand von Schnittstellentests erfolgen. Hierzu werden Teile der Software manuell auf Fehlerfreiheit getestet; ebenfalls überprüft werden die Schnittstellen zwischen den Modulen — dabei insbesondere die Kommunikation zwischen Client und Server.

Systemtests

Ein vollständiger Systemtest erfolgt anhand der in Abschnitt 4.3.2 und im Anhang B aufgestellten funktionalen Anforderungen. Diese beschreiben die nötigen Funktionen, die die Software erfüllen muss. Die Systemtests erfolgen manuell und validieren den nötigen Funktionsumfang.

Abnahmetests

Da die entwickelte Software nicht für einen einzelnen Auftraggeber erfolgte, wird der Ab-nahmetest als Feldversuch durchgeführt. Hierzu ergaben sich während der Entwicklung der Anwendung zwei Gelegenheiten. Zum einen die jährlich stattfindende „Nacht des Wissens“

in Hamburg, zum anderen das jährliche Alumni-Treffen des Departments Informatik an der Hochschule für angewandte Wissenschaften in Hamburg. Diese beiden Veranstaltungen wurden genutzt, um Abnahmetests bzw. Nutzertests durchzuführen. Geprüft wurden dabei die verfügbaren Funktionalitäten von GeoBee, auch wurde das Nutzerinterface von den Veranstaltungsbesuchern verwendet und bewertet.

Dieser Abschnitt soll den Testaufbau und die Umsetzung der verschiedenen Teststufen erläu-tern. Beispielhaft werden einige Realisierungen aufgezeigt und die Rahmenbedingungen für die jeweiligen Stufen erläutert.

Unit-Tests für Client und Server

Sowohl für die Client- als auch die Server-Applikation wurden exemplarisch Unit-Tests durch-geführt, um die entwickelten Module auf Korrektheit zu überprüfen. Im Folgenden werden die Frameworks zur Umsetzung solcher Unit-Tests vorgestellt und ihr Einsatz anhand von Beispielen erklärt:

Bei der Entwicklung der Unit-Tests für den Client wurde das von Android bereitgestellte Test-Framework verwendet. Es basiert auf dem JUnit-Framework und weiteren Tools, welche eine Automatisierung ermöglichen oder das Testen von Applikationen auf Mobilgeräten erleich-tern [Developers,2012d]. Zusätzlich wurde das für Android erhältliche Robotium-Framework eingesetzt [Robotium,2012]. Dieses bietet eine einfache Schnittstelle, um Nutzerinteraktion zu simulieren und so automatisierte Oberflächen-Tests durchzuführen.

Abbildung7.2zeigt die Testumgebung, welche als Plugin für Eclipse verfügbar ist. Die erstellten Testfälle werden nacheinander ausgeführt und Ausgaben erstellt, falls ein Test fehlschlägt.