Was sind automatisierte Tests?

Wie die meisten Menschen in der Softwarebranche wissen, gibt es deutliche Unterschiede zwischen manuellen und automatisierten Tests. Manuelle Tests erfordern physische Zeit und Mühe, um sicherzustellen, dass der Softwarecode auch alles tut, was er tun soll. Darüber hinaus müssen manuelle Tester ihre Untersuchungsergebnisse protokollieren. Dazu gehört die Überprüfung von Protokolldateien, externen Services und der Datenbank auf Fehler. Wenn Sie mit manuellen Tests vertraut sind, wissen Sie, dass dieser Vorgang extrem zeitaufwendig und monoton sein kann.

Automatisierte Tests sind, wie der Name schon sagt, automatisiert. Dies unterscheidet sie von manuellen Tests, bei denen ein Mensch dafür zuständig ist, die Funktionalität der Software in Eigenregie so zu testen, wie es ein Benutzer tun würde. Da automatisierte Tests über ein Automatisierungstool durchgeführt werden, ist weniger Zeitaufwand für explorative Tests und mehr Zeit für die Pflege von Testskripten erforderlich, während gleichzeitig die gesamte Testabdeckung erhöht wird.

Der Vorteil manueller Tests besteht darin, dass es dem menschlichen Verstand möglich ist, Erkenntnisse aus einem Test zu gewinnen, die andernfalls von einem automatisierten Testprogramm übersehen werden könnten. Automatisierte Tests eignen sich gut für große Projekte, d.h. Projekte, die immer wieder dieselben Bereiche testen müssen, und Projekte, die bereits einen ersten manuellen Testprozess durchlaufen haben.

Implementierung einer Strategie für die Testautomatisierung

Der Wechsel zu agilen Verfahren hat viele Teams dazu veranlasst, eine pyramidale Teststrategie zu verfolgen. Diese Strategie der Testautomatisierung erfordert die Automatisierung von Tests auf drei verschiedenen Ebenen. Der Unit-Test stellt die Grundlage und den größten Teil dieser pyramidalen Testautomatisierung dar. Danach folgen Tests der Serviceebene oder der API. Und zu guter Letzt haben wir die GUI-Tests an der Spitze. Die Pyramide sieht in etwa so aus:

Testautomatisierungspyramide

Eine integrierte GUI- und API-Testlösung wie TestComplete kann den Prozess der Implementierung einer Testautomatisierungspyramide vereinfachen, da sie sicherstellt, dass Änderungen an den API-Testfällen automatisch auch auf GUI-Ebene abgebildet werden.

Wer sollte an der Testautomatisierung beteiligt sein?

Das Testen in diesen kurzen agilen Wiederholungen erfordert oft den Ansatz der “Linksverschiebung”. Diese Verschiebung im agilen Entwicklungsprozess bedeutet, dass die Tests viel früher im Lebenszyklus einer Anwendung beginnen. Infolgedessen werden bei einem solchen Ansatz zunehmend Entwickler mit ausgeprägter technischer Expertise für das Testen verantwortlich gemacht, und arbeiten daher häufig mit Testern zusammen, um Testautomatisierungs-Frameworks zu erstellen.

Wenn man eine Testlösung beurteilen möchte, sollte man über ein Werkzeug verfügen, das den Bedürfnissen der verschiedenen Teams entspricht, die in den Testprozess einbezogen sind. Darunter unter anderem Folgende:

  • Manuelle Tester: Die Aufzeichnung und Wiedergabe ist für manuelle Tester (insbesondere für diejenigen, für die Automatisierung Neuland ist) von entscheidender Bedeutung. Die Möglichkeit, dasselbe aufgezeichnete Skript mit einer Vielzahl von Eingabedaten zu verwenden, kann bei der Erkennung und Behebung von Problemen in verschiedenen Umgebungen sehr hilfreich sein.
  • Automatisierungstechniker: Für Automatisierungstechniker ist eine robuste Unterstützung von Skriptsprachen, die Integration in CI-Systeme und die einfache Skalierbarkeit von Tests von Bedeutung.
  • Entwickler: Das Einbinden von Tests in den Entwicklungsprozess setzt die Fähigkeit voraus, Tests innerhalb von IDEs [Integrated Development Environment (Integrierte Entwicklungsumgebung)], wie beispielsweise „Eclipse“ und „Visual Studio“ durchzuführen.

Häufige Missverständnisse in Bezug auf automatisierte Tests

Nachdem wir in der Einführung in die Testautomatisierung gesehen haben, wie sie funktioniert und wer beteiligt sein sollte, lassen Sie uns jetzt einen genaueren Blick auf einige verbreitete Missverständnisse in Bezug auf die Testautomatisierung werfen:

  1. Mit der Automatisierung haben Sie mehr Freizeit

    Die irrige Vorstellung, dass automatisierte Tests Ihnen mehr freie Zeit einräumen, ist sowohl wahr als auch falsch. Beim manuellen Tests widmet man sich in den meisten Fällen explorativen und funktionalen Tests, bei denen man manuell nach Fehlern sucht. Wenn dieser Vorgang abgeschlossen ist, muss der manuelle Tester immer wieder die gleichen Schritte durchlaufen.

    Mit automatisierten Tests wird diese Zeit drastisch verkürzt. Bei automatisierten Tests müssen stattdessen die Tests mit einigem Zeitaufwand kodiert und bei Änderungsbedarf immer wieder nachgebessert werden. Nach der Fertigstellung ermöglichen automatisierte Tests jedoch die Wiederverwendung von Tests, so dass man diesen gesamten Vorgang nicht erneut durchlaufen muss. Im Grunde genommen wird die Zeit, die für die alltäglichen Aufgaben und Wiederholungen aufgewendet wird, die ein manueller Tester durchlaufen würde, stattdessen auf größere, wichtigere Themen konzentriert, die die Software betreffen, die Sie entwickeln.

  2. Die Kosten für automatisierte Tests sind zu hoch

    Auf den ersten Blick mag die Investition in automatisierte Tests unerschwinglich teuer erscheinen – insbesondere für kleinere Unternehmen. Analysen haben jedoch gezeigt, dass sich automatisierte Tests im Laufe der Zeit von selbst bezahlt machen.

    Wie bereits erwähnt, geben Ihnen automatisierte Tests die Möglichkeit, sich auf größere Themen wie Kundenbedürfnisse, Funktionalität und Verbesserungen zu konzentrieren. Automatisierte Tests senken außerdem die Kosten und die Notwendigkeit mehrerer Code-Revisionen, so dass sich die Investition im Laufe der Zeit auszahlt. Darüber hinaus können bei jeder Änderung des Quellcodes die Softwaretests wiederholt werden. Die manuelle Wiederholung dieser Tests ist kostspielig und zeitaufwendig, während automatisierte Tests ohne weitere Kosten immer wieder wiederholt werden können.

  3. Automatisierte Tests sind besser als manuelle Tests

    In Wirklichkeit kann man beim Vergleich zwischen manuellen und automatisierten Tests nicht von “besser” oder “schlechter” sondern nur’von “unterschiedlich sprechen.” Jeder Ansatz hat seine Vor- und Nachteile. Manuelle Tests werden von einem Menschen durchgeführt, der vor einem Computer sitzt und die Anwendung mittels SQL und Protokollanalyse sorgfältig durchgeht, verschiedene Nutzungs- und Eingabekombinationen ausprobiert, die Ergebnisse mit dem erwarteten Verhalten vergleicht und die Ergebnisse aufzeichnet. Automatisierte Tests werden häufig eingesetzt, nachdem die Software erstmals entwickelt wurde. Langwierige Tests, die beim manuellen Testen oft vermieden werden, können unbeaufsichtigt ausgeführt werden. Sie können sogar auf mehreren Computern mit unterschiedlichen Konfigurationen ausgeführt werden.

    Letztendlich haben sowohl manuelle als auch automatisierte Tests ihre Berechtigung, insbesondere wenn die von Ihnen entwickelte Software zu groß und zu komplex ist, um sich nur auf den manuellen Ansatz zu verlassen.

  4. Automatisierte Tests verhindern menschliche Eingriffe

    Ein weiteres häufiges Missverständnis bezüglich automatisierter Tests ist, dass sie die menschliche Interaktion untergraben. Ehrlich gesagt, sind automatisierte Tests präziser und schneller als das, was Menschen ohne erhebliche menschliche Fehler tun könnten, so dass dieser Irrglaube durchaus verständlich ist. Allerdings sind Produkte wie TestComplete so konzipiert, dass sie einen kollaborativen Ansatz erleichtern, da sie Funktionen enthalten, die es den Mitarbeitern ermöglichen, die Testcodierung durchzugehen und das Skript zu kommentieren.

    Dies ersetzt nicht die persönliche Kommunikation, die ein notwendiger Bestandteil der Softwareentwicklung ist. Stattdessen erweitert es diesen Aspekt, indem es einen weiteren Kanal für die Kommunikation bietet. Betrachten Sie es einfach so – E-Mail hat das Telefon nicht ersetzt, sie war lediglich ein zusätzliches Werkzeug, das zur Kommunikation verwendet werden konnte. Das Gleiche gilt für Tools wie TestComplete von SmartBear – sie sollen keinen Ersatz für die persönliche Kommunikation darstellen, sondern Möglichkeiten zur Verbesserung der Kommunikation bieten.

Tipps für die ersten Schritte mit automatisierten Tests

Die Entwicklung einer erfolgreichen Strategie für automatisierte Tests ist schwierig und der Ansatz wird von Team zu Team unterschiedlich sein. Kein Team ist völlig identisch mit einem anderen. In einigen können manuelle Tester gegenüber Automatisierungsingenieuren überwiegen, während andere eine Linksverschiebung durchgeführt haben und von Entwicklern abhängig sind, welche die Schwerstarbeit übernehmen. Budget, Termine, Anwendungstyp und Entwicklungsmodell sind Faktoren, die sich darauf auswirken, wie eine automatisierte Teststrategie umgesetzt werden soll.

In unserem Starterkit für automatisierte Tests bieten wir Ihnen eine Vielzahl von Ressourcen und Tools, mit denen Sie den Stein ins Rollen bringen können. Sie werden lernen, wie Sie Ihre Bemühungen effizient planen, skalierbare und einfach zu pflegende Automatisierungs-Frameworks entwickeln, und wie Sie das richtige Tool für Ihre Bedürfnisse auswählen können. Und machen Sie sich keine Sorgen: Wir haben auch Tipps darüber für Sie zusammengestellt, welche Testarten manuell bleiben sollten. Nicht alle Tests können oder sollten automatisiert werden, und daher möchten wir nochmals bekräftigen, dass es für Ihren Erfolg unerlässlich ist, dass einige Testarten wie etwa explorative Tests, manuell durchgeführt werden.

Benötigen Sie Hilfe bei der Einführung in die Testautomatisierung?

Weitere Informationen finden Sie in unserem Starterkit.
Entdecken Sie das Starterkit

Automatisierte Tests mit TestComplete

Mit Werkzeugen wie TestComplete ist die Umstellung von manuellen auf automatisierte Tests nicht unbedingt schwierig. Da man jede Aktion sehen kann, die man etwa beim Generieren von Testcode oder beim Verwalten von Tests durchführt, können manuelle Tester genau sehen, wo sie Anpassungen vornehmen müssen, während sie lernen. Nach dem Einsatz automatisierter Testwerkzeuge und -techniken hat sich das manuelle Testen als effektive Möglichkeit erwiesen, die Software nochmals zu überprüfen, um sicherzustellen, dass wirklich nichts übersehen wurde. In diesem Sinne gehen manuelle und automatisierte Tests Hand in Hand und können bei richtiger Anwendung gewährleisten, dass das Endprodukt optimal ist.