dark

Von der Pflicht zur Kür – vollumfängliche, automatisierte Softwaretests

Avatar

Unit-Tests sind heutzutage Standard im Bereich der Testautomatisierung. Doch die moderne agile Softwareentwicklung will mehr und strebt nach größtmöglicher Qualität und Effizienz. Warum Unternehmen die Disziplinen Integrations- und UI-Tests nicht länger vernachlässigen sollten.

 

Unit-Tests bilden die Basis der Testabdeckung und sind in der Softwareentwicklung Standard. Bei diesem Testverfahren werden einzelne Softwarekomponenten isoliert betrachtet und im Hinblick auf ihre fehlerfreie Funktionalität überprüft. Damit kann frühzeitig im Entwicklungsprozess erkannt werden, ob sich ein Code-Abschnitt wie erwartet verhält.

Eine Automatisierung von Unit-Tests kann immer nur der erste Schritt einer vollständigen Testautomatisierung sein.

 

Softwarekomponenten müssen fehlerfrei interagieren

Heutige IT-Systemlandschaften setzen sich aus kleinen, verteilten Komponenten zusammen, die unter Verwendung unterschiedlicher Protokolle miteinander kommunizieren. Um Änderungen oder neu entwickelte Funktionalitäten einer Komponente schnell und problemlos in den Produktivbetrieb zu überführen, ist es unverzichtbar, sie von Anfang an im Hinblick auf ihre Schnittstellenkonformität mit anderen Anwendungen zu überprüfen. Möglich ist dies mittels Integrationstests.

„Viele Unternehmen beschränken sich bei der Testautomatisierung heute nicht mehr nur auf Unit-Tests. Das Management stellt entsprechende Mittel bereit, um auch Integrations- und UI-Tests voll automatisiert durchzuführen. Der Grund ist klar: Die Investition in ein hohes Maß an Testautomatisierung wirkt sich positiv auf die Softwarequalität aus und führt mittel- bis langfristig zu erhöhter Kundenzufriedenheit”, erklärt Nico Zellner, Leiter des Bereichs Testautomatisierung bei Consol. „Ein hoher Grad an Automatisierung für aussagekräftige Tests entlang der Test-Pyramide führt schlussendlich zu höheren Gewinnen im Unternehmen.“ (Abb. 1)

 

 

Lösungen für voll automatisierte Tests

Automatisierung im Bereich Integration ist deutlich aufwändiger als bei Unit-Tests, da die Abhängigkeiten unterschiedlicher Systeme voneinander simuliert werden müssen. Doch hierfür gibt es Tools wie das weit verbreitete Arquillian. Auch Consol stellt hier mit Citrus eine Lösung bereit, die ausgezeichnet mit Arquillian zusammenarbeiten kann: Citrus ermöglicht voll automatisierte Integrations- und Schnittstellentests selbst in großen, komplexen Szenarien und bietet eine hohe Einsatzflexibilität, da unterschiedlichste Nachrichtenprotokolle und Datenformate unterstützt werden. Alle Testfälle werden voll automatisiert durchgeführt und dokumentiert, so dass sich die einwandfreie Integration der Software bei ihrer Auslieferung lückenlos nachweisen lässt.

 

Von der Pflicht zur Kür: User Interface Tests

Letzter Schritt in der End-to-End-Testautomatisierung sind User-Interface (UI)-Tests für die Überprüfung der Benutzeroberfläche, zum Beispiel eines Web-Frontends oder einer Rich-Client-Anwendung. Sie simulieren Benutzeraktionen auf unterschiedlichen grafischen Oberflächen, um sicherzustellen, dass die vom Server gelieferten Daten immer korrekt angezeigt werden. Auch hierfür gibt es erprobte Tools wie das Web-Testing-Framework Selenium oder die Consol-Lösung Sakuli, die zusätzlich zu Browser-basierten Inhalten auch native Desktopanwendungen automatisiert testen kann. Sakuli eignet sich durch die Integration mit diversen Monitoring-Plattformen hervorragend für ein End-to-End Application Monitoring.

 

„Unit-Tests sind zwingend erforderlich und bilden die Basis jeder Qualitätssicherung. Aber sie sind nur der erste Schritt auf dem Weg zu einer vollständigen Testautomatisierung”, betont Nico Zellner. „Eine solche ist erst gegeben, wenn auch Integrations- und UI-Tests kontinuierlich durchgeführt werden. Mit den heute verfügbaren Technologien lassen sich die damit verbundenen Herausforderungen, auch in agiler Herangehensweise, gut meistern. Schlussendlich ist die durchgängige Testautomatisierung Grundvoraussetzung um Continuous-Delivery- und Deployment-Prozesse – die Königsdisziplin der modernen Softwareentwicklung – erfolgreich einzuführen.”

 

Nico Zellner ist Enthusiast für Softwarequailität und leitet die Abteilung Testautomatisierung bei Consol in München.

 

 

Total
0
Shares
Previous Post

Task-Parallelität mit CompletableFutures

Next Post

Architekturentscheidungen in agilen Projekten

Related Posts