Testautomatisierung darf nicht bei Unit-Tests Halt machen

foto consol fotolia_92323958_mTestautomatisierung ist in der IT nichts Neues. Gerade in der agilen Softwareentwicklung sind kontinuierliche Tests zur Sicherung der Qualität unerlässlich. Viele Unternehmen bleiben aber auf halbem Weg stehen, meint der IT-Full-Service-Provider Consol: Sie konzentrieren sich auf Unit-Tests und vernachlässigen die Disziplinen Integrations- und UI-Tests.

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

»In vielen Unternehmen beschränkt sich die Testautomatisierung heute immer noch auf Unit-Tests. Die Management- und auch die Projektleitungsebenen scheuen sich vielfach, entsprechende Mittel bereitzustellen, um auch Integrations- und UI-Tests voll automatisiert durchzuführen. Der Grund ist klar: Die initiale Investition sowie der Pflegeaufwand sind in diesen Bereichen im Vergleich zu manuellen Tests relativ hoch«, erklärt Christoph Deppisch, Consultant und Software-Architekt bei Consol. »Mittel- und langfristig wird sich die kontinuierliche Durchführung von automatisierten Tests aber in allen Bereichen immer lohnen, sowohl finanziell als auch qualitativ.«

Unit-Tests können immer nur der erste Schritt einer vollständigen Testautomatisierung sein.

Heutige IT-Systemlandschaften werden zunehmend komplexer und das Zusammenspiel verteilter Komponenten immer wichtiger. Um Änderungen oder neu entwickelte Funktionalitäten einer Enterprise-Applikation 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.

Integration

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 (arquillian.org). Auch Consol stellt hier mit Citrus (citrusframework.org) 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.

User-Interface

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 (seleniumhq.org) oder die Consol-Lösung Sakuli (github.com/ConSol/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.

»Klar ist, dass Unit-Tests zwingend erforderlich sind und die Basis jeder Qualitätssicherung bilden. Aber sie sind nur der erste Schritt auf dem Weg zu einer vollständigen End-to-End-Testautomatisierung«, so Deppisch. »Eine solche ist erst gegeben, wenn auch Integrations- und UI-Tests kontinuierlich durchgeführt werden. Sie sind zwar komplexer, aber mit den heute verfügbaren Tools lassen sich die damit verbundenen Herausforderungen gut meistern. Und eins sollte dabei prinzipiell nicht vergessen werden: Eine durchgängige Testautomatisierung ist eine Grundvoraussetzung für eine erfolgreiche Einführung von Continuous-Delivery- und Deployment-Prozessen in der Softwareentwicklung.«


Unternehmen kämpfen mit dem hohen Tempo des technologischen Wandels

Penetrationstests decken IT-Sicherheitslücken rechtzeitig auf

Web-Performance-Test deutscher Medien: Die Leser wollen Tempo

Gefährliche Trittbrettfahrer: Missbrauch von Open-Source-Testsoftware

Testen Sie Ihren Browser auf Schwachstellen

Nur 18 Prozent der Firmen haben eine digitale Testing-Strategie

Umfassende Strategie für digitales Testen in Unternehmen

Sicherheitsaudit: Identity und Access Management (IAM) im Selbsttest

Weitere Artikel zu

Schreiben Sie einen Kommentar