Testautomatisierung

PrintMailRate-it
​​​​​

 Automatisierte Tests stützen eine effektive Qualitätssicherung

von Marcus van der Heyden

In den Anfängen der Verbrauchersoftware (Anfang der 90er-Jahre und danach) wurde Software meist über Monate hinweg entwickelt und im Jahresrhythmus an den Endkunden verteilt. Neue Funktionen wurden über mehrere Monate entwickelt und intensiv getestet; nach mehreren Monaten eine neue Version veröffentlicht.

Die Softwarenutzer entdeckten und meldeten Fehler in der Software, mussten aber bis zur nächsten Version auf die Fehlerbehebung warten.

 

Heutzutage sind die Entwickler jedoch in der Lage, neue Softwareversionen sofort auf den Markt zu bringen - Softwareaktualisierungen mit neuen Funktionen erscheinen dutzende Male innerhalb eines einzigen Jahres.


Diese Vorgehensweise der kontinuierlichen Entwicklung stützt sich auf effektive automatisierte Anwendungstests, die sicherstellen, dass ein hoher Qualitätsstandard eingehalten wird, bevor es zu einer Versionsveröffentlichung kommt.

Durch die Automatisierung der Tests wird der Umfang manueller Qualitätssicherung minimiert, die normalerweise für eine Bereitstellung erforderlich ist.

Das automatisierte Testen von neu entwickelter Software ist somit ein wichtiger Schritt im heutigen Softwareentwicklungsprozess.


Was ist Testautomatisierung?

Testautomatisierung ist das automatisierte Durchführen von Software-Tests. Das Software-Testing überprüft, ob die entwickelte Software den definierten Anforderungen entspricht. Diese Anforderungen lassen sich in vier Kategorien einordnen:


  • Sicherheit
  • Funktion
  • Leistung
  • Robustheit bzw. Zuverlässigkeit


Beim Software-Testing, ob manuell oder automatisiert durchgeführt, werden in der Regel drei Phasen definiert:

  • Unit Tests werden in der früheren Phase der Softwareentwicklung durchgeführt. Sie dienen dazu, die einzeln entwickelten Komponenten separat voneinander zu testen.
  • Integrationstests überprüfen, wie die einzelnen Komponenten zusammen funktionieren. Hier testen sie auch die Schnittstellen zwischen unterschiedlichen Systemen und Anwendungen.
  • Bei den sog. Akzeptanztests wird die gesamte neue Anwendung End-2-End getestet. Dabei geht es vor allem darum zu überprüfen, ob die entwickelte Lösung die Anforderungen und Wünsche der zukünftigen Nutzerinnen und Nutzer erfüllt.  Akzeptanztests werden UI-basiert durchgeführt. Das bedeutet, dass das Verhalten zukünftigen Nutzerinnen und Nutzern auf der Benutzeroberfläche der Anwendung imitiert wird. 

 

Vorteile der Testautomatisierung

Seitdem die Softwareentwicklung agil, wie beispielsweise durch Scrum organisiert wird, kommt dem Testen eine größere Bedeutung zu. Mit dem Ansatz der kontinuierlichen Entwicklung (Continuous Development) wird Software in Bausteinen entwickelt und kontinuierlich getestet. So können Fehler frühzeitig erkannt und behoben werden.



Manuelles Testen ist zeitaufwendig, fehleranfällig und teuer. In einigen Fällen ist der Wartungsaufwand der Testsoftware schlichtweg höher als der Aufwand der manuellen Durchführung der Tests.

Ein großer Teil der Testaktivitäten kann und sollte automatisiert durchgeführt werden. Vor dem Hintergrund des agilen, kontinuierlichen Testens wird der Aufwand deutlich verringert.


Automatisiertes Testen schont die zeitlichen und finanziellen Ressourcen und ist weniger fehleranfällig als manuelles Testen. Zudem kann bei automatisiertem Testen ein Set an Tests aufgebaut werden, das bei jedem neuen Release durchlaufen wird. Mithilfe der Testautomatisierung können große Mengen an Testdaten schnell getestet werden. Große Testdatensätze sind wichtig, um alle möglichen Szenarien zu testen. Das manuelle Testen dieser großen Datenmengen ist hingegen sehr aufwendig.


Testautomatisierungstools

Für die Automatisierung manueller, regelbasierter Prozesse mithilfe von Software werden Testautomatisierungstools eingesetzt. In den meisten Anwendungsfällen handelt es sich dabei um operative Geschäftsprozesse, beispielsweise im Bereich Finanzen, Einkauf, Verkauf oder Logistik. Im Kern wird eine Software zur Testautomatisierung dazu genutzt, manuelle Aufgaben, die immer gleich und in hohem Volumen durchgeführt werden, effizienter und weniger fehleranfällig umzusetzen.


Testautomatisierungstools werden im oberen Bereich der oben dargestellten Test-Pyramide eingesetzt. Auch bei den Integrationstests kann es sinnvolle Anwendungsbereiche geben. So kann beispielsweise schnell und mit einem hohen Volumen an Testdaten überprüft werden, ob der Datentransfer zwischen zwei Systemen oder Anwendungen funktioniert. Beim Unit Test, also dem Testen der Einzelkomponenten, lassen sich diese Tools ebenfalls einsetzen.


Der Weg zum richtigen Handwerkszeug

- Langfristig planen, aber klein anfangen

Es ist wichtig zu wissen, was das langfristige Ziel ist, wie z. B. zu testende Anwendungen, Testabdeckung, Zeitrahmen, aber noch wichtiger ist es, dort anzusetzen, wo es am kritischsten ist.

Es ist sinnvoll, mit einer umfassenden Überprüfung der Risiken von Anwendungsfehlern zu beginnen, Schwachstellen oder wichtige Prozesse zu ermitteln und von dort aus zu starten. Mit einem iterativen Ansatz werden basierend auf dem Plan, andere Bereiche, Prozesse und zusätzliche Testfälle erweitert, um spezifischere Risiken abzudecken.


Echte Geschäftsprozesse testen

Es ist normalerweise üblich, dass Dutzende von Testfällen erstellt werden, die den tatsächlichen Geschäftsanforderungen nicht gerecht werden.

Ohne eine ordnungsgemäße Dokumentation der Geschäftsprozesse oder ohne die Beteiligung der Mitarbeitenden, die die Prozessabläufe kennen sind die Tester in der Regel weder in der Lage zu definieren, was getestet werden soll, noch wo die wirklichen Risiken eines Anwendungsfehlers liegen.

Daher sind diejenigen einzubeziehen, die sich mit den Geschäftsprozessen auskennen. Zudem ist eine Automatisierungssoftware an die Hand zu geben, mit der Prozesse aufgezeichnet werden können, die anschließend in Testfälle umgewandelt werden können. Dieser Ansatz bietet zwei große Vorteile:

 

  • Die Testfälle basieren auf realen Geschäftsprozessen und Anwendungsfällen, und die Anforderungen an die Testfälle sind besser definiert.
  • Was von einem Prozessverantwortlichen aufgezeichnet wurde, kann zu einer Vorlage für die Dokumentation von Geschäftsprozessen für weitere Schulungs- und Einführungszwecke verwendet werden.


Das technische Team nicht einbeziehen müssen, wenn es nicht unbedingt erforderlich ist

Testautomatisierung erfordert Wartung – während heute viele Testskripte aufwändig codiert sind und nur unter Einbezug eines technischen Teams gewartet werden können, muss dies zukünftig nicht mehr der Fall sein.


Funktionstests mit dem Record & Play-Ansatz sind schneller als codierte Testskripte. Wenn also ein Testautomatisierungstool Verwendung findet, das auf dem Low-Code Prinzip basiert, kann dieses auch von Nichttechnikern leicht bedient werden, sodass Testskripte langfristig beibehalten werden können.


Automatisierte Tests dürfen nicht mit manuellen Tests gleichgesetzt werden

Natürlich sollte es machbar sein, manuelle Testfälle in automatisierte Testfälle umzuwandeln, wenn dabei auch nur die Validierung der Testergebnisse automatisiert werden kann.

Bei der Erstellung von manuellen Testplänen ist es üblich, dass diese auf die Kapazität des Testteams zugeschnitten sind. In Testautomatisierungs-Frameworks können die möglichen Testfälle weitaus umfangreicher gefasst werden, da es keine wirkliche Begrenzung auf die Anzahl der Testfälle gibt, die in einem bestimmten Zeitraum ausgeführt werden können.

Wenn z. B. 10.000 Fälle an einem Tag getestet werden müssen, ist das mit einem Testautomatisierungstool machbar. 


Fokus auf die Funktionsprüfung von Geschäftsprozessen, nicht auf einzelne Schaltflächen oder Bedienelemente - Automatische Tests sollen widerspiegeln, wie eine Person den gesamten Prozess durchführen würde.

Zu testende Softwareentwicklungen wie z. B. ERP-Plattformen sind riesig und "altmodische" Testpläne, die einzelne Schaltflächen einzeln testen und dabei Zehntausende von Tests erstellen, sind einfach nicht effektiv.

Wenn einem bewusst ist, wie das eigene Unternehmen funktioniert, kann man sich auf die Prozesse konzentrieren, die viele Schaltflächen, Kontrollen, Funktionen und Integrationen auf einmal testen.

UATs (User Acceptance Tests) sind in der Regel die letzte Testphase, aber auch die wichtigste. Wenn diejenigen, die die UATs durchführen, dazu gebracht werden, manuelle Tests in funktionale, automatisierte Testfälle umzuwandeln, können manuelle UATs in Zukunft vermieden werden. Auch dies ist im Hinblick auf die kontinuierlichen, regelmäßigen Aktualisierungen erforderlich, die z. B. auch durch den Microsoft One Version-Ansatz erforderlich sind.

 

Wenn man schnell und klein startet, dauert es nur ein paar Stunden, um ans Ziel zu kommen

In Verbindung mit der Cloud dauern Bereitstellungen von Testautomatisierungen nur ein paar Minuten. Mit der richtigen Lösung, können bereits am Ende des ersten Tages  erste Testsuiten erstellt und in Betrieb genommen werden. Wenn man schnell und klein anfängt, können Testfälle zum Testen der kritischen Geschäftsprozesse und die Testausführung innerhalb weniger Stunden begonnen werden.

Ein paar Stunden, um ein kontinuierliches Risiko oder den Ausfall eines kritischen Geschäftsprozesses in der Anwendung abzudecken.

 

Analyse der Vor- und Nachteile des automatisierten Testens

Bei der Analyse der Vor- und Nachteile des automatisierten Testens und bei der Festlegung der Strategie und der zu verwendenden Werkzeuge gibt es mehrere Faktoren, die  berücksichtigt und bewertet werden müssen.

Die meisten Bedenken beziehen sich auf die Bewertung des Aufwands gegenüber den Auswirkungen, die Bewertung des Testrisikos, die Verwendbarkeit der Tools und/oder den Aufbau des Testprojekts.

Es hat sich gezeigt, dass die oben genannten Bedenken – wenn sie nicht angemessen berücksichtigt werden – viele Unternehmen davon abhalten, ihren Status quo beim manuellen Testen zu ändern.

Wichtig ist, dass es bei all diesen Bedenken um ein Tool und Methoden geht, die beim automatisierten Testen berücksichtigt werden. Die Auswahl des Tools bestimmt den Aufwand, die Zeit bis zur Wertschöpfung, die Benutzerfreundlichkeit und die mögliche Strategie sowie das zu verwendente Framework.


Fazit: Testautomatisierung lohnt sich

Es lohnt sich, Tests mittels einer entsprechenden Software zu automatisieren. In der Softwareentwicklung können Testautomationstools einen großen Mehrwert leisten. Sie sind darauf ausgelegt, Prozesse End-2-End zu automatisieren. Die Technologie ist somit prädestiniert dafür, neu entwickelte oder neu aufgesetzte Anwendung in ihrer Gesamtheit mit allen Schnittstellen und Integrationen zu testen. Die Software testet die Funktionalitäten genau wie ein Mensch, nur schneller und robuster. Sie kann eine Vielzahl an Testdaten fehlerfrei verarbeiten und die Testergebnisse dokumentieren, sodass am Ende nur die Auswertung analysiert werden muss.


Die Wahl des richtigen Testautomatisierungstools kann vor allem dann eine gute Alternative sein, wenn fehlendes oder begrenztes Know-How für das Testen im Unternehmen vorhanden ist. Bei Berücksichtigung des Low-Code-Prinzips einer Testsoftware können auch Mitarbeiterinnen und Mitarbeiter mit geringerer IT-Expertise die Tests entwickeln und die Kosten des Entwicklungsprojekts gesenkt werden.

Kontakt

Contact Person Picture

Jens Hinkelmann

Leiter Geschäftsfeld Unternehmens- und IT-Beratung

Partner

+49 911 1807 8710

Anfrage senden

 ‭(Ausgeblendet)‬ Ausblick


Fit4Finance
Deutschland Weltweit Search Menu