Zum Inhalt springen

Blogeintrag

Testen von Webservices (Tipps & Best Practices)

Projektmanager  Projektmanagement 

In serviceorientierten Architekturen (SOA) spielen Webservices eine zentrale Rolle. Sie sorgen für Integration & Kommunikation zwischen IT-Systemen und deren Komponenten. Das Testen dieser Webservices stellt Tester & Entwickler vor spezielle Herausforderungen, da Webservices oft sehr individuell, aber dafür laufend weiterentwickelt werden und damit für die Vielzahl der darüber verbundenen Akteure/Systeme zusätzliche Risiken entstehen. Ein paar grundlegende Vorgehensweisen mit erwiesen hohem Nutzen können in dieser Situation für eine deutliche Reduktion dieser Risiken sorgen.



1. Verständnis schaffen

Beim Testen von Webservices reicht oft das reine Lesen einer Dokumentation nicht aus. Ein Tester benötigt die Gesamtsicht auf das System (Architektur, Use-Cases), um effizient und zielgerichtet testen zu können. Da die einzelnen Komponenten oft weitgehend unabhängig voneinander weiterentwickelt werden (lose Koppelung), ist es wichtig, alle relevanten Stakeholder zu kennen und deren Verständnis für die Konsequenzen zu schärfen.

 

2. Test so früh wie möglich einbinden

Je früher der Test eingebunden wird (bspw. während der Spezifikationsphase), umso schneller kann ein Gesamtverständnis für das System geschaffen und die frühe Entstehung von Fehlern effektiv bekämpft werden. Vorbereitungen für das systematische Testen sollen bereits in der Konzeptionsphase getroffen werden. Dieser Ansatz ist auch unter „Shift-Left-Testing“ bekannt. Dadurch entwickelt sich gleichzeitig auch ein breites Verständnis dafür, dass Tester für wesentlich mehr qualitätssichernde Aktivitäten eingesetzt werden können, als vielleicht vermutet.

 

3. Maschinenlesbare Spezifikation nutzen

Eine maschinenlesbare Spezifikation kann als Basis für alle Phasen der Entwicklung (Spezifikation, Entwicklung, Testen, Release) dienen. Hier ist es ratsam, auf ein standardisiertes Format für die Schnittstellenspezifikation zurückzugreifen (bspw. OpenAPI-konforme Spezifikation). Swagger umfasst zum Beispiel eine Reihe von Open-Source-Tools, die auf der OpenAPI-Spezifikation basieren und den gesamten Entwicklungszyklus von Entwurf über Erstellen und Dokumentieren bis hin zur Verwendung von REST-APIs unterstützen.

 

4. Strategie für Automatisierung umsetzen

Webservices schreien förmlich danach, automatisiert getestet zu werden. Die Entwicklung und das Testen von Webservices ist in vielen Unternehmen ein Treiber für Automatisierung, um beispielsweise Testautomatisierung auch für andere Komponenten (Backend) umzusetzen. Eine hohe Anforderungsqualität hilft dabei, qualitativ hochwertige automatisierte Tests umzusetzen.

 

5. Best Practices

Bei Webservices sollte man im Testansatz davon ausgehen, dass die Schnittstellen nicht wie spezifiziert von anderen Komponenten/Akteuren verwendet werden. Negativ-Tests helfen dabei, dieses Verhalten so gut wie möglich im Testplan abzudecken.

 

Bewährte Prinzipien und Erfahrungswerte gelten natürlich auch beim Testen von Webservices. Beispiele dafür sind die strikte Trennung von Fehlersuche und Fehlerkorrektur, die genaue Definition von Verantwortlichkeiten oder die Wichtigkeit guter Anforderungen. Diese etablierten Best Practices sollten auch für eine Teststrategie für Webservices angewandt werden.

 

Auch beim automatisierten Testen von Webservices sollte in der Testpyramide ganz unten bei den Unit-Tests begonnen werden. Weitere Teststufen bauen auf der erfolgten Umsetzung der jeweils unteren Stufe auf. Je höher die Teststufe, desto weniger kann eine aussagekräftige Automatisierung allein darauf umgesetzt werden. Hier hilft auch die Erfahrung seitens der Tester nicht mehr weiter, die scheinbare Ersparnis entpuppt sich am Ende in der Regel als nicht erzielbar.

Kontakt für Anfragen

Johannes Bergsmann Profilbild

Johannes Bergsmann

johannes.bergsmann@software-quality-lab.com

 +43 676 840072 420