Testautomatisierung

© everythingpossible - stock.adobe.com
Testautomatisierung ist ein automatisiertes Testverfahren und bezeichnet die Automatisierung von Testaktivitäten. Wobei sich das in diesem Webportal auf den Bereich Software-Qualitätssicherung bzw. den Softwaretest beschränkt, also dem IT-Sektor.
Bei diesem automatisierten Testverfahren wird mit auf dem Markt befindlichen Testautomatisierungstools oder selbst entwickelter Testsoftware ein Softwareprodukt getestet. Von diesem Testautomatisierungs-Tool wird die zu testende Software angesprochen und damit gesteuert. Nach jeder Aktion werden im Normalfall Verifikationspunkte ausgewertet, um zu prüfen, ob bei dem automatisierten Testschritt das Ergebnis wie geplant ist. Ist das Ergebnis nicht wie geplant, sollte eine Anomalie als Ergebnis geloggt werden.
Am Ende ist manuell auszuwerten, ob es sich bei den Anomalien um einen Fehler handelt oder nicht. Die angezeigte Anomalie vom Testautomatisierungstools könnte beispielsweise auch auf eine neue Softwareversion mit korrektem und geändertem Software Design beruhen und "nur" das Testskript wurde vergessen zu aktualisieren.
Es gibt verschiedene Level an Schnittstellen auf die eine Testautomatisierung aufsetzen kann
- GUI-Level - Grafische Oberfläche
- API Schnittsellen - zB. HTTP
- Unit-Tests auf Codeebene - Auch Modultests oder Komponententests genannt.
Wann und Warum ist Einführung einer Testautomatisierung sinnvoll?
Automatisierte Tests und die Einführung der Testautomatisierung in den QS-Prozess sind kein "Muss", um Software in hoher Qualität zu produzieren. Allerdings bietet sich Testautomatisierung bei komplexer Software mit höherem Anteil an Regressionstests (Wiederholbare Tests) an. Grundsätzlich spricht ein gewisser Grad an Regressionstests für eine Testautomatisierung.
Wenn sich eine Software hingegen (z.B. in der Anfangsphase des Entwicklungsprozesses) sehr stark und ständig ändert, kann eine Testautomatisierung nicht die beste Wahl sein, da der Aufwand der Wartung der Testautomatisierung dann zu hoch sein kann.
Besonders im Zuge der Agilen Entwicklung, kann auf Testautomatisierung kaum verzichtet werden. Die meisten Best Practices und guten Erfahrungsberichte von Agile-Experten sind sich einig, dass gerade bei den kürzeren Iterationen automatisierte Tests eine äußerst sinnvolle Ergänzung sind. Somit können Tests auch über Nacht laufen und Tests können auch automatisch nach jedem Code-Check-in inklusive eines automatischen Build-Prozesses ablaufen.
Continuous Integration, Continuous Delivery und Teststufen

© -
Wenn wir über den Automatischen Build-Prozess und automatische Tests nach Code-Check-in sprechen, heißt das Schlagwort "Continuous Integration", welches gerade durch die Agilen Methoden weiter in den Vordergrund gerückt ist. Beim "Continuous Integration" sollen nach dem Code-check-in ein automatischer Software-Build und Installationsprozess laufen. Anschließend laufen Unit Tests über die Software, um den Entwicklern in kürzester Zeit Feedback über die grundlegende Qualität der Software zu geben.
Auch andere Teststufen wie Integrationstests und Systemtests (automatisierte GUI-Tests) können automatisch anlaufen und schnelles Feedback geben. Hierbei ist zu beachten, dass die die Zahl der automatisierten GUI-Tests viel kleiner sein sollte als die der Unit-Tests. Dies soll das Diagramm der Agilen Test Pyramide verdeutlichen.
Ziel der Testautomatisierung

© Coloures-Pic - stock.adobe.com
Eine Testautomatisierung muss nicht eine Beschleunigung des Entwicklungsprozesses mit sich bringen, das Ziel sollte eher eine höhere Software-Qualität durch höhere Testabdeckung sein.
Im Endeffekt kann sich die Entwicklungszeit sicherlich verkürzen, da auch früher Fehler gefunden werden können, wenn die automatisierten Tests öfter laufen, dies sollte aber nicht der generelle Fokus sein. Was sicher ist, ist die höhere Testqualität und damit höhere Softwarequalität, wenn auf allen Teststufen entsprechend der Software und den Zielen ein passender Umfang an Testautomatisierung gewählt wird.
Hat eine Software einen sehr hohen Bedarf an Regressionstests, dann ist Automatisiertes Testen in jedem Fall auch ein Zeitgewinn wie auch eine Kostenersparnis. Da so nach Erstellung der automatisierten Tests tausende Testskripte in kurzer Zeit durchlaufen werden können, wo man hingegen im Manuellen Test ein vielfaches an Zeit und Arbeitskräfte bräuchte.
Bei großen Softwareprojekten, die wegen der Komplexität mit vielen Regressionstests getestet werden, erreicht man schnell so große Dimensionen an Anzahl von Testfällen und damit sehr langen Test-Ausführungszeiten, dass man es mit Manuellen Tests gar nicht mehr abdecken könnte, auch nicht mit einem vielfachen an Testern. In diesem Fall ist eine Testautomatisierung natürlich essentiell.
Vor und Nachteile der Testautomatisierung
Ob ein "Testskript" ein besserer und aufmerksamerer "Tester" ist als ein "Mensch", kommt auf den genauen Fall an. Testet ein Manueller Tester 8 Stunden am Tag Regressionstests, gegebenenfalls alle paar Tage die gleichen Tests, wird man mit Sicherheit eine gewisse Betriebsblindheit unterstellen dürfen. Denn jeder Mensch übersieht auch mal etwas, gerade bei solch einer Vorgehensweise.
Auf der anderen Seite können Testskripte auch Fehler haben und Testautomatisierungstools können Bugs haben. Und es kann vergessen werden, bei Softwareänderungen nötige Änderungen in der Testautomatisierung nachzuziehen, sodass das Testskript zwar noch durchläuft, aber nicht mehr alles korrekt prüft. Hierbei würden Fehler verschleiert werden und es kommt ein sicheres Gewühl auf, wenn man auf die Ergebnisse schaut, obwohl Fehler enthalten sind, die aber durch die schlechte Qualität der Testskripte nicht gefunden werden. Einem menschlichen Manuellen Tester wären diese Fehler gegebenenfalls direkt ins Auge gesprungen. Ein Testskript prüft eben nur exakt das, was man ihm beibringt.
Weiterhin besitzt ein Testautomatisierungsskript eben keine Intelligenz. Ein menschlicher Tester kann beim Ausführen von Manuellen Tests immer seine Erfahrung mit ins Spiel bringen und links und rechts schauen, ob abseits der exakten Teststeps noch Fehler sind. Hier kommen wir in dem Raum der Explorativen- und Erfahrungsbasierenden-Tests.
Somit ist eine Testautomatisierung sicherlich nie Ersatz des kompletten manuellen Tests. Dennoch ist es oft ein gutes Instrument in der Software Qualitätssicherung und darum wird in vielen komplexen und großen Software-Projekten auch ein sehr großer Anteil der Tests durch automatisierte Testverfahren ausgeführt.
Die meisten Fehler werden allerdings gefunden, wenn man beide Instrumente des Softwaretests vernünftig einsetzt.
Aufbau der Testautomatisierung und Testwerkzeuge
Es gibt einen großen Markt an kommerziellen und Open-Source Testautomatisierungs-Tools. Eine sehr aktuelle und vollständige Liste findet man in diesem Beitrag: Testautomatisierungs Tools
Für den Aufbau einer Testautomatisierung gibt es verschiedene Strategien, von der Einführung vorhandener Testwerkzeuge und der Anpassungen an die eigenen Bedürfnisse bis hin zur kompletten eigenen Entwicklung eines kompletten Testautomatisierungs-Tools und Testautomatisierungs-Frameworks. Generell sind im Aufbau einer Testautomatisierung immer auch Entwicklungserfahrungen und Programmierung benötigt.

© everythingpossible - stock.adobe.com
Bei einer guten Testautomatisierung muss aber nur ein kleiner Teil der Testautomatisierer programmieren können. Durch Methoden wie Schlüsselwort-getriebener und Daten-getriebener Testautomatisierung, kann nach außen hin mit der Nutzung von "Schlüsselwörter" automatisiert werden. Hierzu ist unter Umständen auch eine grafische Oberfläche (UI) vorhanden, sodass die Tester die automatisierten Tests leicht und effizient grafisch zusammenstellen können. Wichtig hierbei ist auch die gewünschte Granularität der Schlüsselwörte durch eine umfassende Analyse zu bestimmen.
Der Schlüsselwort-getriebene Ansatz hat auch enorme Vorteile bei der Wartung. Die Wartung der Testautomatisierung ist häufig ein unterschätzter Punkt, denn das Testautomatisierungs-System muss in der Regel laufend angepasst werden. Generell gilt, dass bei Änderungen der Software die Änderungen in der Testautomatisierung an möglichst wenig Stellen zu bewerkstelligen sein sollte.
Ein gutes Beispiel dazu ist der "Login" in eine Software Application. Dieser "Login"-Testschritt kommt später sicher in den meisten Test-Skripten und Testfällen vor, jedoch will niemand bei Änderungen am "Login", hunderte oder gar tausende von Testskripten anpassen. Dazu muss eine Testautomatisierungs Lösung vernünftig strukturiert aufgebaut werden.
Automatisierte Tests sind ein echtes Softwareprojekt
Leider wird automatisiertes Testen in Unternehmen oft gar nicht die Beachtung geschenkt die es braucht. "Nur mal eben nebenbei" ist hierbei nicht angebracht. Eine Testautomatisierung wird schnell so komplex, dass sie ähnlich wie ein Softwareprojekt aufgesetzt werden muss. Dazu gehört eben auch eine Versionskontrolle, um den Code der Testskripte in ein Sourcecode-Repository zu haben und Änderungen gut nachvollziehen zu können.
Es sollten Aufwände geschätzt werden und die Testautomatisierung in die Projektplanung der zu testenden Software mit einbezogen werden. Auch Budget muss ausreichend eingeplant werden, für Arbeitskraft und auch Tools und Testumgebung. Es werden sicherlich auch Fehler in der vorhandenen Testautomatisierungs-Lösung gefunden werden, diese Fehler sollten bei großen Testautomatisierungs-Projekten auch in Bug-Tracking-Tools (Defect-Management-Tools) gesammelt werden.
Kurze Anmerkung: Neben den vorhandenen ausführlichen Testing-Tool Listen auf diesem Webportal, werden Sie demnächst auch eine ausführliche Liste über Bug-Tracking-Tools finden.
Es folgt eine Übersicht von Artikeln über Testautomatisierung der Testing-Board Redaktion und weiterführenden Artikeln externer Blogs über das Thema "Automatisierte Tests".
Artikel zum Thema Testautomatisierung
SoapUI Tutorial 1: SoapUI-Grundlagen und Data-Driven-Testing
Data-Driven Testing mit SoapUI und CI-Integration über Jenkins Einführung & SoapUI Grundlagen Dieses SoapUI Tutorial präsentiert eine Lösung, um testdatengetriebene Schnittstellentests (Data-Driven API-Testing) mit dem …Read More »Selenium Webdriver Tutorial 1: Grundlagen Testautomatisierung WordPress und Basis Testframework
Dieses Selenium Tutorial soll Grundlagen in der Testautomatisierung mit Selenium am Beispiel unserer Testing-Board WordPress Website vermitteln. Dazu brauchen wir automatisierte Testskripte in Selenium und …Read More »Selenium Webdriver Tutorial 2: WordPress Testautomatisierung, Optimierung zum Testframework
Da wir in diesem zweiten Tutorial viel über Verbesserungen und Veränderungen unserer Testautomatisierung schreiben, ist es sinnvoll für Sie als Leser, dass vorhergehende Tutorial „Selenium …Read More »„Test the Internet of Things“ auf IT-Konferenz -10% Rabatt – STQ-Konferenz
10% Rabatt auf IT-Konferenz über Testautomatisierung – STQ – „Test the Internet of Things“ Update: STQ 2016 fällt leider aus, soll aber 2017 wieder statt …Read More »Scriptless SAP Testautomatisierung mit ALM und Turnkey als Test-Framework
Tutorial über SAP Testautomatisierung mit TurnKey cFactory als „Data-Driven“ Test-Framework Über TurnKey cFactory Das Unternehmen TurnKey Solutions wurde 1989 in den USA gegründet. Seit 1995 ist die …Read More »
WWW – Aus externen Blogs über Testautomatisierung und Automatisiertes Testen sowie unserem Partner-Portal Testautomatisierung.org
- MoT Professional Membership: For the advancement of software...am April 2, 2025 um 1:49 pm
Ministry of Testing has been changing so much that now a big challenge of ours is to communicate all the things that are happening! Core to what we […]
- Mining Gold from User Clicks: How Product Analytics Transformed...von Software Testing Magazine am März 31, 2025 um 8:38 pm
Product usage analytics are an untapped gold mine for software quality assurance teams. This article shows how linking user behavior and connecting […]
- How Early-Stage Testing Saves Time and Money in Software...von Software Testing Magazine am März 31, 2025 um 3:30 pm
Testing software right away and at an early stage in the software development cycle is a key best practice that saves not only time but also money. […]
- Next-Gen Security Testing: How AI and Machine Learning Are...von Software Testing Magazine am März 27, 2025 um 5:46 pm
Cyberattacks are becoming more advanced and are occurring more often, with the cost of cybercrime expected to reach $15.63 trillion by 2029. Older […]
- Automate your E2E Tests: Overcoming MFA Workflow Testing...von Software Testing Magazine am März 24, 2025 um 3:59 pm
We continue our series of articles focused on testing systems that incorporate Multi-Factor Authentication (MFA or 2FA) security mechanisms. In our […]
- TestSphere expands in the MoTaverse — it's now available...am März 24, 2025 um 9:00 am
You know those well-worn, well-loved TestSphere cards , the ones that have sparked countless "aha!" moments and spirited debates Well, buckle up, […]
- Why Software Testing is Crucial for Horse Racing Appsvon Software Testing Magazine am März 20, 2025 um 1:28 pm
In an industry where financial transactions, personal data, and live betting are integral, the reliability and security of horse racing apps must be […]
- Enhancing Appium Tests Stability with the Power of Healeniumvon Software Testing Magazine am März 19, 2025 um 5:58 pm
This is an introduction to Healenium, an open source tool with proven results to enhance the stability and maintainability of Appium tests. You will […]
- 5 Options to Combine Two Columns in Excel (With space, comma,...von noreply@blogger.com (Unknown) am März 18, 2025 um 12:58 pm
Ever had two columns of data in Excel that you want to merge magically into one column?Suppose, You have a first name in one column, and the last […]
Informativer Artikel