Web Service Test: Aktivitäten bei der nicht funktionalen Testdurchführung

Die der Abbildung dargestellten Aktivitäten basieren auf der in dem Buch "Capacity Planning for Web Services" von Daniel A. Menascé und Virgilio A. F. Almeida beschriebenen Performanztestmethodik (Performance testing methodology). Im Folgenden werden die einzelnen Aktivitäten, um das System under Test (SUT) zu Testen, mit ihren Besonderheiten genauer betrachtet.

Abbildung: Die Aktivitäten bei der nicht funktionalen Testdurchführung von Web Servcies

Zielbestimmungen und Mengengerüst festlegen

Wie in der Abbildung dargestellt, ist die Aktivität Zielbestimmung und Mengengerüst festlegen die erste Aktivität der nicht funktionalen Testdurchführung. Zu diesem Zeitpunkt muss das funktionale Verhalten des zu testenden Web Services über einen Domänenexperten dem Testingenieur zur Verfügung stehen. Der Domänenexperte legt in Kooperation mit dem Testingenieur die zu testenden Dienste fest (System under Test) und spezifiziert das gewünschte Verhalten.

Im Anschluss an die Zielbestimmungen wird das Mengengerüst fixiert. In diesem Mengengerüst wird die Anzahl der Benutzer, die den Web Service insgesamt verwenden und die durchschnittlich zeitgleich anfallenden Anfragen bestimmt. Basierend auf diesen Daten ist es möglich, die Nutzlast des Systems zu ermitteln. Neben der Nutzlast muss die erwartete Spitzenlast ermittelt werden. Dazu wird die maximale Anzahl der zeitgleichen Anfragen vom Domänenexperten festgelegt, wobei die mit dem Provider ausgehandelte Durchlaufleistung der Netzwerkanbindung (Service-Level Agreement) beachtet werden muss. vgl. [ALM01] (S. 292)

Testumgebung und Rahmenbedingungen erfassen

Im Anschluss an die Zielbestimmung und der Festlegung des Mengengerüstes wird die zum SUT gehörende Infrastruktur und die Einbindung in organisatorische Abläufe erfasst. Die Infrastruktur wird über die folgenden Fragen analysiert.

Über die Analyse der organisatorischen Abläufe kann die Dauer festgestellt werden, in welcher der Web Services benötigt wird. vgl. [ALM01] (S. 293, 294)

Testplan festlegen

Entsprechend des IEEE 829-1998 Standards, müssen alle Aktivitäten des Qualitätsmanagement geplant werden. Um eine Konformität zu erreichen, werden die Ergebnisse der Aktivitäten Zielbestimmung und Mengengerüst festlegen und Testumgebung und Rahmenbedingungen erfassen in einen Testplan aufgenommen. Im Anschluss an die technische Festlegung werden in den Testplan die zeitliche Planung der Testdurchführung und die Verantwortlichen aufgenommen.

Basierend auf diesen Daten erarbeiten der Domänenexperte und der Testingenieur, welche Dienste eines Web Services in welchen Testszenarien abgebildet werden können und welche Sollwerte diese zurückliefern müssen. Für jedes Testszenario wird die Antwortzeit, nach deren Überschreitung ein Abbruch eingeleitet werden muss, und der Durchsatz festgelegt. vgl. [IEE98]

Testszenarien festlegen

Die im Testplan festgelegten Dienste der einzelnen Szenarien werden von dem Tester über Testfälle abstrahiert. Ein Testfall beinhaltet in diesem Zusammenhang die Logik, um einen einzelnen Dienst eines Web Services automatisiert anzusprechen. Dadurch ist es möglich, dass einzelne Services in mehreren Szenarien Verwendung finden können. Über eine Testfallspezifikation ist es möglich, die Testfälle entsprechend dem Mengengerüst zu parametrisieren. Die Testfallspezifikation dient der Bereitstellung von Eingabedaten und der Sollwerte, die eine Prüfung des Testlings ermöglichen.

Die Abbildung der Testszenarien erfolgt über automatisiert ablauffähige Testskripte. Dazu wird die Reihenfolge der Testfälle mit den dazu gehörigen Testfallspezifikationen angegeben. Das Testskript beinhaltet neben der Beschreibung der Szenarien auch die Testmethode, die über dieses Skript einen Einsatz finden, sowie die Testdauer.

Test durchführen

Zu Beginn der Testdurchführung installiert der Tester alle benötigten Testwerkzeuge, um das SUT in einen beobachtbaren Zustand zu versetzen. Die für den Test installierten Testwerkzeuge werden gestartet und der Ablauf der automatisierten Tests wird initialisiert. Bei schwerwiegenden Fehlern wir der Test abgebrochen. Die über die Durchführung gewonnen Resultate der Testläufe stehen den Testingenieur als Rohdaten für die Analyse zur Verfügung.

Analyse durchführen

Die von der Testdurchführung gewonnenen Rohdaten werden vor der Analyse konsolidiert. Dadurch wird ein einheitlicher Datenpool für die Analyse gewonnen. Basierend auf den konsolidierten Daten können Diagramme erstellt oder über eine statistische Analyse untersucht werden.

Wird während der Analyse festgestellt, dass der Testlauf keine aussagekräftige Ergebnisse getroffen werden können, müssen die Testszenarien neu festgelegt werden.

Im Anschluss an die Analyse wird entschieden, ob der Testlauf einen Erfolg oder Misserfolg darstellt. In beiden Fällen werden die, im Testplan definierten, Verantwortlichen über das Ergebnis informiert.

Misserfolg analysieren

Wird im Anschluss an die Analyse ein Misserfolg festgestellt, prüfen der Testingenieur und der Domänenexperte welche Systeme an dem Fehler beteiligt sind bzw. den Fehler verursacht haben. Für die Bewertung der Misserfolge eines Systemtests stehen eine Vielzahl von Ergebnistypen zur Verfügung. Sie dienen der Klassifizierung des Fehlverhaltens eines Web Services.

Maßnahmen durchführen

Entsprechend den festgestellten Ergebnistypen müssen Maßnahmen durchgeführt werden. So kann es möglicherweise notwendig sein, ein beteiligtes Drittsystem zu ersetzten.

Mittels Durchführung der Maßnahmen kann bei dem folgenden Testdurchlauf, siehe hierzu die Abbildung, davon ausgegangen werden, dass die Analyse zu einem besseren Resultat führt.

Referenzen

[ALM01] Almeida, Virgilio A. F.; Menascé, Daniel A.: Capacity Planning for Web Services Metrics, Models, and Methods, Prentice Hall, o. O., 2001

[IEE98] o.V.: IEEE 829-1998 Standard for Software Test Documentation, IEEE Computer Society, New York, 1998

Sitemap | Kontakt
Copyright © 2006,2007 Andreas Spall