4.5 Testmethodik | Inhaltsverzeichnis |
Komponententests unterstützen den Entwicklungsprozess der geplanten Erweiterung. Dabei wird das von OpenLayers genutzte Test.AnotherWay-Framework eingesetzt (vgl. Abschnitt 3.4.3). Die Unittests sollen die Korrektheit aller Funktionen und Klassen verifizieren und als Bestandteil der Qualitätssicherung dienen. Es ist eine testgetriebene Entwicklung (engl. test first development) angestrebt, wobei die Komponententests parallel zum eigentlichen Quelltext enstehen sollen.
Bei der Erstellung von Unittests für das animated zooming Feature
ist die Besonderheit der automatischen Zoomanimationen zu
berücksichtigen: Für eine automatisch ablaufende
Animation ist im API-Quellcode eine zeitabhängige Komponente nötig,
die diesen Prozess steuert.
Die JavaScript-Funktion window.setInterval sorgt dabei für
eine immer wiederkehrende, zeitlich unbegrenzte zyklische Ausführung einer
bestimmten Funktion mit zwischengeschalteten Wartepausen. Mittels
window.clearInterval lässt sich die Funktion abbrechen.
Um solche asynchronen Funktionsaufrufe im Quellcode mit
Komponententests zu überprüfen, bietet Test.AnotherWay die Methode
delay_call an, die zwei Argumente unterstützt: die
Wartezeit zwischen den Funktionsaufrufen in Sekunden und die
auszuführende Funktion. Wird keine Zeit angegeben, wird eine
Verzögerungszeit von 0,2 Sekunden genutzt. Die Beispieltestfunktion von Listing
3.4.3 muss wie folgt für die Zoomanimation
abgeändert werden, damit ein erfolgreicher Testdurchlauf möglich
ist:
... map.zoomTo(0); t.delay_call(1, function() t.eq( map.getZoom(), 5, "map.zoom is correct after calling zoomTo" ); ); ...
Nach den Komponententests überprüfen Integrationstests das Zusammenspiel mehrerer (getesteter) Einzelkomponenten. Dies dient der Qualitätssicherung. Ein Testplan beschreibt das Vorgehen ausgewählter Testfälle, die nach Abschluss der Implementierung durchgeführt werden. Der Plan gliedert sich in unterschiedliche Testsuiten, um eine logische Trennung der zu testenden Funktionalitäten vorzunehmen. Jede Testsuite kann separat ausgeführt werden. Sie gliedert sich in verschiedene Arbeitsschritte (Testfälle) und in die dazu erwarteten Resultate, die beim Durchführen der Testfälle geprüft werden. Weicht ein Resultat vom erwarteten Verhalten ab, schlägt die gesamte Testsuite fehl.
Auf Grundlage der Anforderungsanaylse (vgl. Abschnitt 3.3) wird der Testplan für die animated zooming Erweiterung erstellt. Eine vollständige Auflistung von allen möglichen Anwendungsfällen, die beim Benutzen des Features durchlaufen werden (können), ist für die vorliegende Arbeit zu umfangreich. Der Testplan konzentriert sich daher auf die typischen und extremen Fälle beim Zoomverhalten. Funktionalitäten der Anwendung, die unabhängig von dem implementierten Feature sind, werden im Testplan nicht berücksichtigt. Ihre Korrektheit wird in den Komponententests verifiziert und sollte im Idealfall von der Implementierung nicht beeinträchtigt werden. Um eine Vergleichbarkeit der Tests zu gewährleisten, werden alle Tests mit der OpenLayers-Demo controls.html durchgeführt. Zu jedem Test werden Datum, Betriebssystem, Browser, Name des Testers, Testdauer und ggf. Kommentare von der Testperson dokumentiert.
Im Anhang 6.3 befindet sich der komplette Testplan für die animated zooming und panning Erweiterungen. Das animated panning Feature wurde in den Testplan mit aufgenommen, weil es (zum Zeitpunkt der Konzeptplanung und Realisierung) den Review-Prozess durch die OpenLayers-Entwickler noch nicht abgeschlossen hat. Es wird daher eine eigene Qualitätssicherung durchgeführt, um die Korrektheit der Erweiterung zu verifizieren.
Anmerkung: Im Anschluss an die Realisierung wurde der Plan an die tatsächlich umgesetzten Kriterien aktualisiert, so dass eine erweiterte Version des Testplans entstand. Eine genauere Betrachtung der Implementierung und der damit verbundenen Aktualisierung des Testplans folgt im nächsten Kapitel.
4.5 Testmethodik | Inhaltsverzeichnis |