Testautomatisierung: Qualität noch effizienter sichern

  |   CX Services , ,

Mit der voranschreitenden digitalen Transformation steigen auch die Anforderungen der Kunden hinsichtlich Funktionalität, Benutzerfreundlichkeit, Performance und Verfügbarkeit einer Software. Um diese Erwartungen zu erfüllen, sind Unternehmen darauf angewiesen, qualitativ hochwertige Software in immer kürzeren Zeiten zu liefern.

 

Aus diesem Grund ist die Softwareentwicklung in zunehmend hohem Maß auf eine verlässliche Qualitätssicherung angewiesen. Durch Testautomatisierung lassen sich hier signifikante Mehrwerte erzielen – und das sowohl in Sachen Effizienz als auch hinsichtlich der Qualität.

Was ist Testautomatisierung?

 

Testautomatisierung ist ein Testverfahren, bei dem Testfälle mit Hilfe von Testautomatisierungstools erstellt werden. Das Ziel ist, die Testfälle rechnergestützt auszuführen. Zu diesem Zweck können Open-Source- oder kommerzielle Tools zum Einsatz kommen.

 

Während der Ausführung der Testfälle wird das zu testende Softwareprodukt von Skripten angesprochen und gesteuert. Dabei wird jeder durchgeführte Testschritt im Testfall dokumentiert und später manuell ausgewertet.

 

Wann ist der Einsatz von Testautomatisierung sinnvoll?

 

Die Implementierung einer Testautomatisierung eignet sich am besten für komplexe Software mit einem hohen Grad an Regressionstests (wiederholbaren Tests). Besonders in agilen Projekten, bei denen am Ende jeder Iteration ein Inkrement entsteht, müssen in kurzer Zeit sehr viele Regressionstestfälle durchgeführt werden.

 

Doch oft sind hier die personellen Ressourcen begrenzt, die Testdurchführungszeiten zu kurz oder die Kosten für manuelle Tests zu hoch. Deshalb bietet sich Testautomatisierung gerade hier als sinnvolle und effiziente Lösung an.

 

Darüber hinaus lassen sich die Wettbewerbsvorteile hoher Release-Geschwindigkeiten und hoher Qualität nur durch die Integration von Testautomatisierung in die Deployment-Pipeline erreichen.

Wofür ist Testautomatisierung eher nicht geeignet?

 

Testautomatisierung eignet sich weniger bei Softwareprojekten, bei denen sich die Software stark und ständig ändert. Der Aufwand für die Wartung der Testautomatisierung kann hier zu hoch sein. Auch in der Anfangsphase einer Software-Entwicklung ist Testautomatisierung eher nicht das Mittel der Wahl. In beiden Fällen ist es empfehlenswert, auf manuelles Testing zurückzugreifen.

Testautomatisierung: Strukturierter Prozess in 4 Phasen

 

Um eine Testautomatisierung effizient und nachhaltig im Unternehmen einführen zu können, hat das Quality Assurance Team von Vision11 einen strukturierten Prozess entwickelt.

Testautomatisierung Phasen

Quelle: Vision11

1-Icon

Voranalyse & Strategie

 

Der erste Schritt besteht darin, die aktuellen Prozesse, das Testobjekt, die Testfälle sowie die Stakeholder und deren Erwartungen kennenzulernen und daraus die Automatisierungsziele zu definieren. Ziel ist es, alle Informationen zu sammeln, die zur Definition einer validen Testautomatisierungs-Strategie erforderlich sind. Um zu überprüfen, ob sich die Testautomatisierung lohnt, wird zudem eine Return-On-Investment-Berechnung durchgeführt. Berücksichtigt werden dabei die Kosten der Testaktivitäten, die Anzahl der Test-Runs sowie die Releases pro Jahr. Eine Handlungsempfehlung rundet diese Phase ab. Wurde ein Nutzenpotenzial identifiziert, kann die nächste Phase beginnen.

2-Icon

Toolevaluation

 

Ziel ist es hier, das am besten geeignete Tool auszuwählen. Zu diesem Zweck wird eine Bewertungs-Matrix erstellt. Darin enthalten sind die Anforderungen an das Tool – und wie diese anhand einer Gewichtung zu bewerten sind. Dabei werden sowohl Open-Source- als auch kommerzielle Tools berücksichtigt. Das Tool mit der höchsten Punktzahl wird im Rahmen eines Pilotprojekts eingesetzt. Ziel ist es hier, die technische Machbarkeit zu überprüfen und weitere entscheidungsrelevante Erkenntnisse zu sammeln. Ließ sich das Pilotprojekt erfolgreich umsetzen, folgen die Empfehlung seitens Vision11 – und die finale Entscheidung.

3-Icon

Automatisierung

 

Nun erfolgt die Umsetzung. Zu Beginn wird ein Nutzungskonzept mit Coding-Richtlinien erstellt. Dieses dient als eine Art Guideline mit Regeln und Richtlinien zur Benutzung des Tools und zur Testfallautomatisierung. Auf dieser Basis werden die ersten Testfälle automatisiert und der erste Testfallkatalog umgesetzt. Die automatisierten Testfälle werden in ein CI-Tool (Continuous Integration) integriert und regelmäßig durchgeführt. Zudem werden Testdatengeneratoren erstellt, um die automatisierten Testfälle mit ausreichend vielen Testdaten zu versorgen. Ein automatisch erzeugter Report zeigt die Testergebnisse an, die im Anschluss von einem Test Automation Engineer ausgewertet werden. Bei fehlgeschlagenen Testfällen wird die Ursache geprüft. Je nachdem wird entweder der Testfall überarbeitet oder ein Fehlerbericht in einem Ticketsystem erstellt.

4-Icon

Kontinuierliche Weiterentwicklung & Pflege

 

Diese Phase umfasst u.a. die Wartung des Tools bzw. des Frameworks. Dabei müssen regelmäßig Updates überprüft und installiert werden, bevor das Tool wieder eingesetzt werden kann. Um die Qualität des Codes zu erhöhen, wird dieser refaktoriert. Das Ziel dabei ist, den Aufwand für Fehleranalyse und funktionale Erweiterung zu senken. Dafür werden Lesbarkeit, Verständlichkeit, Wartbarkeit und Erweiterbarkeit des Codes verbessert. Die Testautomatisierungsskripte werden hierbei überarbeitet und aktualisiert. Abschließend wird der Testprozess im Rahmen regelmäßiger Retrospektiven bewertet. Um den Prozess kontinuierlich zu verbessern, werden auf Basis dieses Feedbacks Next Steps abgeleitet, priorisiert und bis zur nächsten Retrospektive umgesetzt.

Fazit: Die 4 wichtigsten Vorteile der Testautomatisierung

 

Im Vergleich zu manuellen Testverfahren sind automatisierte Tests weniger zeitintensiv und damit kostengünstiger. Gerade in großen und komplexen Projekten erreicht man sehr schnell eine große Anzahl an Regressionstests. Der entsprechende Aufwand lässt sich selbst mit vielen Tester:innen zeitlich nur noch knapp oder gar nicht mehr bewältigen. In diesen Fällen kann Testautomatisierung manuelle Tester:innen entlasten und bei der Testdurchführung unterstützen.

 

Automatisierte Tests sind weniger fehleranfällig. Bei manuellen, sich wiederholenden Tests droht die Konzentration der Tester:innen mit der Zeit zu sinken. Dies kann zu Fehlern in der Testdurchführung führen. Bei automatisierten Tests hingegen führt ein Skript die Testfälle bei jedem Test-Run mit der gleichen Präzision durch.

 

Im Rahmen einer Testautomatisierung lassen sich auch Testdatengeneratoren erstellen. Diese versorgen die Testfälle regelmäßig mit frischen und sauberen Testdaten.

 

Nicht zuletzt liefern automatisierte Tests deutlich schnellere Testergebnisse. Testfälle können zu jeder Zeit und auf mehreren Rechnern parallel durchgeführt werden. So lassen sich die Durchführungszeiten erheblich senken.

Bei all diesen Vorteilen sollte jedoch klar sein: Testautomatisierung kann manuelles Testing nicht generell ersetzen. Je nach Anforderung und Projektcharakteristik ist es ggf. sinnvoller, auf Letzteres zurückzugreifen. Doch wenn die Grundbedingungen gegeben sind, lassen sich durch eine automatisierte Lösung erhebliche Effizienzgewinne erzielen.

Sie wollen mehr über Testautomatisierung erfahren?

Gerne rufe ich Sie für ein weiterführendes Gespräch zurück:

Nedim Dizdarevic

 

+4915110819021

Mit der voranschreitenden digitalen Transformation steigen auch die Anforderungen der Kunden hinsichtlich Funktionalität, Benutzerfreundlichkeit, Performance und Verfügbarkeit einer Software. Um diese Erwartungen zu erfüllen, sind Unternehmen darauf angewiesen, qualitativ hochwertige Software in immer kürzeren Zeiten zu liefern.