Was sind automatisierte Tests?

Sie möchten automatisierte Tests lernen, wissen aber nicht, wie Sie anfangen sollen? Macht nichts. Wir führen Sie durch die Grundlagen und den gesamten Prozess des automatisierten Testens.
In diesem Artikel erfahren Sie, was automatisierte Tests sind, wie sie funktionieren, wann sie eingesetzt werden sollten und warum sie wichtig sind. Darüber hinaus lernen Sie einige der beliebtesten automatisierten Testwerkzeuge kennen. Je nach Ihren Fähigkeiten und den Anforderungen des Projekts können Sie eines dieser Lernmittel wählen.
Wenn Sie bereits über ein grundlegendes Verständnis von automatisierten Tests verfügen und direkt in die Tutorials zu den Tools einsteigen möchten, klicken Sie auf Automated Testing Tools.
Inhaltsübersicht
- Was ist Automatisierung?
- Was sind automatisierte Tests?
- Was soll automatisiert werden?
- Testfälle, die eine parallele Ausführung erfordern
- Was empfehlen wir nicht zu automatisieren?
- Wann sollten wir automatisieren?
- Wann sollte man nicht automatisieren?
- Automatisiertes Prüfverfahren
- Schrittweiser automatisierter Testprozess:
- Frameworks für automatisierte Tests
- Mythen über automatisierte Tests
- Beliebte automatisierte Testwerkzeuge
- Unsere Tutorials zu automatisierten Testwerkzeugen
Was ist Automatisierung?
Bevor wir mit automatisierten Tests beginnen, sollten wir den Begriff „Automatisierung“ erklären. Automatisierung ist der Prozess, durch den wir einen manuellen Prozess mithilfe von Technologie automatisieren können. Ziel ist es, menschliche, manuelle Arbeit zu eliminieren oder zu reduzieren. Schauen wir uns nun an, wie die Automatisierung bei Softwaretests hilft.
Beim Testen von Software werden die Testfälle nur einmal geschrieben und bei Bedarf erneut ausgeführt. Die manuelle Prüfung ist eine sehr zeitaufwändige und anstrengende Aufgabe. Automatisierte Tests tragen dazu bei, die für die Durchführung von Tests erforderliche Zeit zu reduzieren. Da Testskripte nur einmal geschrieben werden, können sie automatisch und ohne menschliches Zutun beliebig oft ausgeführt werden.
Was sind automatisierte Tests?
Automatisierte Tests sind eine Art von Softwaretests, bei denen Testfälle mithilfe von Automatisierungswerkzeugen automatisch ausgeführt werden. Im Wesentlichen automatisieren wir den manuellen Testprozess. Der Tester schreibt Testskripte und führt sie zu einem bestimmten Zeitpunkt aus, oder er plant die Tests so, dass sie in regelmäßigen Abständen ausgeführt werden. Dadurch verringert sich die für die Tests benötigte Zeit und die Software kann schneller bereitgestellt werden.
Was soll automatisiert werden?
Nachdem wir nun wissen, was automatisiertes Testen ist, lassen Sie uns ein wenig darüber sprechen, welche Testfälle für die Automatisierung geeignet sind, oder genauer gesagt, welche Testfälle ideale Kandidaten für die Automatisierung sind. Testfälle, die die wesentlichen Funktionen der Anwendung testen
Bei einer E-Commerce-Anwendung würden wir beispielsweise das Durchsuchen von Produkten mithilfe der Such- und Kategoriefunktionen, das Hinzufügen von Produkten zum Einkaufswagen und das Tätigen von Einkäufen zu den wichtigsten Funktionen zählen. Diese Testfälle sollten die ersten Adepten für die Automatisierung sein. Testfälle für das Hinzufügen zu Wunschlisten und dergleichen sollten eine geringere Priorität erhalten.
Testfälle, die eine wiederholte Ausführung mit einem komplexen Datensatz erfordern
Es gibt viele Testfälle, die wiederholte Durchläufe erfordern. Solche Testfälle sind auch ideale Kandidaten für die Automatisierung, da die Automatisierung den Testaufwand erheblich reduziert.
Nehmen wir als Beispiel die Suchfunktion in der Anwendung. Wenn wir den Suchvorgang mit einem Suchbegriff automatisieren und dann die Suchergebnisse validieren können, können wir dasselbe Skript wiederholt mit verschiedenen Arten von Begriffen ausführen, z. B. mit einzelnen Wörtern, Mehrwortbegriffen, alphanumerischen Begriffen, mit Sonderzeichen, mit fremdsprachigen Zeichen usw.
Zeitaufwendige Tests
Testverfahren, deren Ausführung und Einrichtung viel Zeit in Anspruch nehmen, sind ebenfalls ideale Kandidaten für die Automatisierung.
Fahren wir mit dem Beispiel des elektronischen Handels fort. Wenn einige Testfälle das Einrichten mehrerer Produkte und die Durchführung einiger Operationen an diesen Produkten erfordern, reduziert die Automatisierung dieser Testfälle nicht nur die für die Ausführung der Tests erforderliche Zeit, sondern befreit auch die manuellen Tester von unnötigen Aufgaben. Außerdem hilft es ihnen, sich auf andere explorative Testaktivitäten zu konzentrieren.
Testfälle, die eine parallele Ausführung erfordern
Es gibt Szenarien, die eine Kontrolle des gleichzeitigen Zugriffs auf die Anwendung erfordern, z. B. im Falle von Leistungstests mit mehreren Benutzern. In diesen Fällen sind manuelle Tests nicht durchführbar oder würden mehr Ressourcen für die Prüfung bestimmter Szenarien erfordern. Automatisierte Skripte helfen in diesem Fall, indem sie gleichzeitige Abfragen erstellen und die Ergebnisse an einem Ort sammeln.
Was empfehlen wir nicht zu automatisieren?
Bei der Automatisierung ist es auch wichtig zu wissen, welche Arten von Testfällen nicht automatisiert werden können oder sollten.
Testfälle für die Benutzeroberfläche (UI)
Die Testfälle für die grafische Benutzeroberfläche (GUI) sollten am besten manuell getestet oder von Menschen validiert werden. Denn schon die kleinste Änderung in der KI kann dazu führen, dass automatisierte Testfälle fehlschlagen. Darüber hinaus ist es sehr schwierig, zuverlässige Testfälle für KI zu erstellen, die auf verschiedenen Geräten und bei unterschiedlichen Bildschirmauflösungen funktionieren.
Testfälle zur Benutzerfreundlichkeit
Mit Usability-Testfällen wird die Benutzerfreundlichkeit einer Anwendung für verschiedene Benutzergruppen getestet, was mit der derzeitigen Technologie durch automatisierte Tests nicht möglich ist.
Funktionen, die selten genutzt werden und viel Zeit für die Skripterstellung erfordern
Es ist gut, komplexe Szenarien zu automatisieren, aber der Aufwand für Szenarien, die nur selten genutzt werden, ist nicht sehr effizient.
Erkundungstests
Sondierungstests erfordern eine schnelle Aneignung von Anwendungswissen und gleichzeitige Tests. Daher können explorative Testszenarien nicht automatisiert werden.
Wann sollten wir automatisieren?
Nachdem wir bei der Testplanung alle Automatisierungsoptionen definiert haben, können wir parallel zum Entwicklungsteam mit der Erstellung des Automatisierungsrahmens beginnen. Die Skripterstellung für Testfälle sollte jedoch zum richtigen Zeitpunkt beginnen. Um eine bessere Rendite aus der Automatisierung zu erzielen und unnötige Arbeit zu vermeiden, sollte mit der Skripterstellung von Testfällen begonnen werden, wenn die Anwendung stabil ist und keine häufigen Änderungen zu erwarten sind.
Wann sollte man nicht automatisieren?
Werfen wir einen Blick auf einige Szenarien, in denen automatisierte Tests nicht geeignet sind oder in denen die Automatisierung eher Nachteile mit sich bringt.
- Fehlendes Fachwissen, mangelnde Erfahrung mit dem Automatisierungstool – Fehlendes Fachwissen über das Automatisierungstool und/oder die Programmiersprache zur Erstellung zuverlässiger Skripte ist einer der Hauptgründe dafür, dass das Potenzial des Tools nicht voll ausgeschöpft werden kann. Solche Faktoren führen zum Scheitern von automatisierten Tests.
- Falsch ausgewählte Testfälle – Der Erfolg von automatisierten Tests hängt stark von den richtigen Testfällen für die Automatisierung ab. Unsachgemäß ausgewählte Tests führen zu einer Verschwendung von Ressourcen und Zeit, die in die Automatisierung investiert werden.
- Anwendungen mit häufigen Änderungen – Wenn Sie sich für automatisierte Tests für eine Anwendung mit häufigen Änderungen entscheiden, müssen Sie die Testskripte ständig pflegen, was manchmal nicht den gewünschten Return on Investment bringt.
- Falsch geschriebene Testskripte – Testskripte mit begrenzten oder unzureichenden Validierungen können zu falsch positiven Testergebnissen führen. Hinter diesen Falschmeldungen verbergen sich Fehler, die bei einer manuellen Überprüfung oder einer anderen Schreibweise leicht entdeckt werden könnten.
Automatisiertes Prüfverfahren
Der Prozess des automatisierten Testens umfasst eine Reihe von Aktivitäten, die bei der Automatisierung verschiedener Softwareanwendungen durchgeführt werden. Wir werden jede Phase durchlaufen, vom Verstehen der Anforderungen bis zum automatisierten Skripting und der Integration mit CI/CD.

Schrittweiser automatisierter Testprozess:
Verstehen der Anforderungen
Bevor mit dem automatisierten Testen begonnen werden kann, ist es wichtig, die Anforderungen zu verstehen. Das Verständnis der Anforderungen hilft bei der Festlegung des Automatisierungsumfangs und der Auswahl des richtigen Tools.
Festlegung des Umfangs der Automatisierung
Die Festlegung des Automatisierungsumfangs beinhaltet die Auswahl der richtigen Testfälle für die Automatisierung. Dies sind alle Testfälle, die unter die im Abschnitt „Was soll automatisiert werden?“ definierten Testfalltypen fallen.
Die Wahl des richtigen Werkzeugs
Die Wahl des Tools hängt von verschiedenen Faktoren ab, z. B. den Projektanforderungen, den Programmierkenntnissen, dem Projektbudget (ob ein kostenloses oder kostenpflichtiges Tool verwendet werden soll) usw.
Schaffung eines Rahmens
Um zuverlässige automatisierte Testsuiten zu erstellen, wird ein Automatisierungsrahmen benötigt. Diese Frameworks helfen bei der Erstellung wiederverwendbarer, nachhaltiger und zuverlässiger Testskripte. Auf der Grundlage der Projektanforderungen können wir eines der verschiedenen Automatisierungs-Frameworks auswählen, die im Abschnitt „Frameworks für automatisierte Tests“ beschrieben werden.
Skripting von Testfällen
Nach der Einrichtung des Automatisierungs-Frameworks beginnen wir mit der Skripterstellung für die Testfälle, die wir für die Automatisierung ausgewählt haben. Ein typisches Skript für einen Testfall einer Webanwendung sieht wie folgt aus:
Browser öffnen,
Rufen Sie die URL der Anwendung auf,
Interaktion mit verschiedenen Webelementen durchführen,
Daten aus externen Testdateien senden,
Überprüfung.
Integration mit CI/CD
Obwohl Testfälle nach Bedarf ausgeführt werden können, ist CI/CD (Continuous Integration and Continuous Deployment) mittlerweile in fast allen Produktunternehmen weit verbreitet. Aus der Testperspektive bedeutet dies die Einrichtung von Testsuiten in einem CI/CD-Tool wie Jenkins.
Nachdem wir sie mit CI/CD eingerichtet haben, können wir die Ausführung der Testsuite planen, z. B. nachts oder führen Sie bei Bedarf Testfälle durch. Ein weiterer Vorteil der Integration der Automatisierungssuite mit CI/CD ist die Möglichkeit, Testfälle nach der Bereitstellung automatisch auszuführen. Bei dieser Konfiguration wird die Versionsstabilität unmittelbar nach der Bereitstellung mit einem Klick durch automatisierte Testsuiten überprüft.
Frameworks für automatisierte Tests
Wenn wir eine Software manuell testen, legen wir eine Reihe von Regeln fest. Zum Beispiel das Format der Testfälle, die Priorisierung der Testdurchführung, verschiedene Verfahren zur Optimierung des gesamten Softwaretestprozesses usw. Auch für automatisierte Tests setzen wir Automatisierungs-Frameworks ein, um die Wartungskosten für automatisierte Skripte zu senken und den gesamten automatisierten Testprozess zu verbessern.
Der Rahmen kann Anweisungen und die Umsetzung verschiedener Faktoren enthalten, die die Qualität der Testsuite beeinflussen, wie z. B.:
- Woher bekommen wir die Testdaten? – Wir fügen sie zum Beispiel direkt in das Skript ein oder laden sie aus externen Dateien herunter.
- Wie sollten wir mit Objekt-Repositories oder Element-Locators (Locators sind Bezeichner für verschiedene Elemente wie Textfelder, Schaltflächen usw.) umgehen?
- Wo sollten wir gemeinsame Funktionen speichern, die wiederverwendet werden können? – Verringerung der Redundanz und Verbesserung der Wiederverwendbarkeit des Codes.
- Welches Format sollten die Nachrichten haben? – HTML, PDF, XLS, usw.
- Wie sollten wir die Protokollierung umsetzen? – Welches Werkzeug/welche Bibliothek sollte verwendet werden?
- Was ist zu tun, wenn ein Test fehlschlägt? – Wollen wir einen Screenshot oder versuchen, den Testfall erneut auszuführen? Na los!
Wir entwickeln einen Rahmen für Automatisierungstests, um diese Regeln zu berücksichtigen und umzusetzen.
Im Folgenden finden Sie einige der am häufigsten verwendeten Automatisierungs-Frameworks:
Modularer Rahmen
Modulare Frameworks sind grundlegende Automatisierungsframeworks, die häufig verwendete Funktionen wie Datenbankverbindung, Anmeldung, eine Methode zum Lesen von Daten aus einer externen Datei usw. identifizieren und erstellen. Anstelle der iterativen Codegenerierung rufen wir einfach wiederverwendbare Methoden nach Bedarf auf.
Datengesteuerter Rahmen
Bei datengesteuerten Frameworks befinden sich die Testdaten in externen Dateien, und auf der Grundlage der Anzahl der Zeilen in den externen Dateien wird der Testfall in jeder Iteration mehrfach mit unterschiedlichen Datensätzen ausgeführt (aus der Datei gelesen). Da Daten die Automatisierung vorantreiben, hat dieser Rahmen den Namen „Data Driven Framework“ erhalten.
Schlüsselwortgesteuerter Rahmen
In einem schlüsselwortgesteuerten Rahmen können wir Testfälle im Klartext schreiben. Wir können die Testfälle zum Beispiel wie folgt in eine Excel-Tabelle schreiben:

Das Framework verfügt bereits über vordefinierte Methoden für jedes verwendete Schlüsselwort, z. B. Automatisierungscode für das Schlüsselwort OpenBrowser, NavigateTo usw. Auf diese Weise kann auch ein nicht technisch versierter Benutzer automatisierte Testskripte im Klartext erstellen.
Mythen über automatisierte Tests
Lassen Sie uns mit einigen Mythen über automatisierte Tests aufräumen:
- 100%ige Automatisierung ist möglich – Abgesehen von einigen sehr spezifischen Anwendungen ist eine 100%ige Automatisierung nicht möglich. Beispiele für Testfälle, die nicht automatisiert werden können, sind explorative Testfälle oder Usability-Testfälle.
- Automatisierung wird die Arbeit von manuellen Testern ersetzen – Es stimmt, dass sich mit dem Aufkommen von automatisierten Tests und verschiedenen Tools die Anforderungen an Tester, die sowohl mit manuellen als auch mit automatisierten Tests arbeiten können, ändern. Die Automatisierung wird jedoch niemals die Notwendigkeit manueller Tests vollständig ersetzen.
- Ein Entwickler ist ein besserer automatisierter Tester – Während ein Entwickler einen kleinen Vorteil im Bereich der Programmierung haben mag, kann ein Tester kritische Einblicke, Aufmerksamkeit für Details usw. in den Bereich der Softwareentwicklung einbringen.
- Automatisierung ist teuer – Richtig ausgeführt, kann die Automatisierung den gesamten Testaufwand und die erforderlichen Ressourcen reduzieren und so langfristig Projektkosten sparen.
Beliebte automatisierte Testwerkzeuge
Auf dem Softwaremarkt gibt es eine Reihe kostenpflichtiger und kostenloser automatisierter Testwerkzeuge. Auf der Grundlage verschiedener Faktoren wie Projektanforderungen, Budget, Fachwissen der Ressourcen usw. sollten wir das richtige Werkzeug wählen, das unseren Bedürfnissen entspricht. Werfen wir einen Blick auf einige der beliebtesten automatisierten Testwerkzeuge auf dem Markt:
- Selenium – Open-Source-Tool für automatisierte Tests. Sie hat eine große und aktive Gemeinschaft. Es ist eines der am weitesten verbreiteten Tools und unterstützt die Skripterstellung in verschiedenen Sprachen – Java, Python, Ruby, JavaScript, C#, usw.
- Katalon Studio – Relativ neues Tool, das aber aufgrund der Aufnahme- und Wiedergabe- und Skripting-Funktionen für technisch versierte Benutzer schnell an Beliebtheit gewinnt. Es ist kostenlos, aber nicht Open-Source.
- UFT One – Ein kostenpflichtiges Tool von Microfocus, mit dem sich sowohl Web- als auch Windows-Anwendungen automatisieren lassen. Unterstützt nur VBScript-Skripting.
- TestComplete – Ein kostenpflichtiges Tool von Smartbear, das zur Automatisierung von Web-, Mobil- und Desktop-Anwendungen verwendet werden kann.
- Tosca – Ein kostenpflichtiges Tool von Tricentis, das Aufnahme- und Wiedergabefunktionen zur Automatisierung von Webanwendungen, APIs und Windows-Anwendungen bietet. Es gilt als eines der beliebtesten Tools, das keine Programmierung erfordert.
- Watir – Open-Source-Automatisierungstool auf Basis der Sprache Ruby, das die Automatisierung von Webanwendungen ermöglicht. Es enthält eine watir-webdriver Komponente, die auf Selenium basiert.
- Appium – Es kann als das Selenium für mobile Anwendungen betrachtet werden. Wie Selenium ist es ein Open-Source-Tool mit einer großen Benutzerbasis.
- TestProject – TestProject ist ein kostenloses, gemeinschaftsbasiertes Tool für automatisierte Tests von Tricentis. Es kann sowohl für die Automatisierung von Web- als auch von mobilen Anwendungen verwendet werden.
- Ranorex – Kostenpflichtiges Instrument mit Aufnahme- und Wiedergabefunktionen. Mit seiner Hilfe können wir Android-, iOS- und Windows-Apps automatisieren. Neben der Aufnahme und Wiedergabe unterstützt es auch die Skripterstellung mit C# und VBScript.
Unsere Tutorials zu automatisierten Testwerkzeugen
Nachdem Sie nun einen ausreichenden Einblick in den automatisierten Testprozess erhalten haben, können Sie das geeignete Werkzeug auswählen, um die Testautomatisierung zu erlernen. Wir bereiten auch Tutorien zu den beliebten automatisierten Testwerkzeugen Selenium, Katalon, Cucumber, TestNG vor.
Wir hoffen, dass dieser Artikel Ihnen geholfen hat, die Grundlagen des automatisierten Testens zu verstehen und sich über die Aktivitäten bewusst zu werden, die im automatisierten Testprozess durchgeführt werden.