5 RealisierungTop4.4 Entwicklungsrichtlinien von OpenLayers4.5 TestmethodikInhaltsverzeichnisEnglish

4.5 Testmethodik

4.5.1 Komponententests

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:

Listing: Beispieltestfunktion berücksichtigt asynchrone Funktionsaufrufe
    ...
        map.zoomTo(0);
            t.delay_call(1, function() 
            t.eq( map.getZoom(), 5, "map.zoom is correct after calling zoomTo" );
        );
    ...    

4.5.2 Integrationstests

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.


© 1. Juni 2007, Emanuel Schütze, some rights reserved.
Diese Arbeit ist unter der Creative Commons Lizenz Namensnennung-Weitergabe unter gleichen Bedingungen 2.0 Deutschland lizensiert.

5 RealisierungTop4.4 Entwicklungsrichtlinien von OpenLayers4.5 TestmethodikInhaltsverzeichnisEnglish