Testkonzept - Testfallautomatisierung

Testautomatisierung steht für die Entlastung der Tester von manuell durchzuführenden Testaktivitäten. Dies kann einerseits die automatisierte Eingabe von Daten sein, die zur Abarbeitung eines Testfalles notwendig sind oder auch die vollautomatisierte Abarbeitung von mehreren Testfällen.

Testautomation ist eine Langzeit-Investition in eine Softwareentwicklung, die die bisherigen manuellen Tests ergänzt bzw. ersetzt und den Entwicklungsprozess letztendlich beschleunigt.


Automatische Testdurchführungen machen für Entwickler und für Tester eine Software bezüglich ihrer Qualität einfacher messbar und zeigen mögliche Nebeneffekte und Folgefehler von vorgenommenen Änderungen direkt und erkennbar an.

Aus organisatorischer Sicht ist es notwendig, dass für automatisierte Tests eine separate Benutzerkennung genutzt und protokolliert wird.

Unter Testautomatisierung ist die Verwendung eines Softwarewerkzeuges unter definierten Vorbedingungen zur maschinellen Durchführung oder Steuerung von Testaktivitäten zu verstehen und diese anschließend danach mit den erwarteten Testergebnissen zu vergleichen (Soll/Ist-Vergleich).

Eine Durchführung von automatisierten Tests kann prinzipiell parallel in derselben Testumgebung durchgeführt werden, in der auch manuelle Tests durchgeführt werden.

Um bei den Testdaten keine Wechselwirkungen mit dem manuellen Test zu haben ist sollten für den automatisierten Test separate Testdaten aufgebaut (bzw. synthetisch erzeugt) und verwaltet werden.

In den Fachbereichen besteht im Wesentlichen nur noch die Erfordernis zu fachlichen Sichtprüfung sowie zum Testen von nicht automatisierten Rest-Funktionalitäten.

Durch eine Testautomatisierung werden folglich die Tester von Routineaufgaben im Regressionstest entlastet.
Die Testfälle für die Testfallautomatisierung müssen genau so beschrieben werden, als ob eine Person ohne Kenntnisse in der Lage sein müsste, die dem Testfall zugrunde liegenden fachlichen Sachverhalte auszuführen.

Um eine erfolgreiche Testfallautomatisierung erstellen zu können müssen in den Testfällen genaue Informationen zu den einzelnen auszuführenden Aktionen beschrieben – die nach Fachlichkeit und Technik zu trennen sind – beschrieben werden.

Für eine Testfallautomatisierung ist es weniger wichtig, dass möglichst viele Varianten des gleichen Workflows mit unterschiedlichen Daten beschrieben werden sondern vielmehr eine Beschreibung von unterschiedlichen Workflows. Die Ausführung von Tests mit verschiedenen Daten sollte von daher erst bei der Zusammenstellung der Testfälle beschrieben werden.

Die folgenden Aktivitäten können grundsätzlich toolunterstützt durchgeführt werden

» Testfallerstellung

» Testdatenerstellung

» Testskripterstellung

» Testdurchführung

» Testauswertung

» Testdokumentation

Zielsetzung von automatisierten Tests

Automatisierte Tests sind eine Komponente in modernen Softwareentwicklungsprozessen, insbesondere wenn es darum geht, die Effizienz, Genauigkeit und Wiederholbarkeit der Tests zu verbessern. Diese Tests werden genutzt, um manuelle Fehler zu minimieren und die Testabdeckung in großen und komplexen Systemen zu erweitern.

  • Effizienzsteigerung
    Reduzierung der für Tests benötigten Zeit durch Eliminierung menschlicher Interaktion.

  • Erhöhung der Testabdeckung
    Ermöglichung regelmäßiger Tests von Anwendungsfällen, die manuell zu zeitaufwendig wären.

  • Verbesserung der Genauigkeit
    Minimierung menschlicher Fehler bei der Testdurchführung.0

  • Unterstützung kontinuierlicher Integration und Deployment
    Ermöglichung schnellerer Releases durch schnelles Feedback zu neuen Änderungen und deren Auswirkungen.

Unterstützung der Tester, Teilautomatisierung

Ziel ist die Entlastung der Tester von repetitiven, zeitraubenden Aufgaben durch spezialisierte Testtools. Beispielsweise kann das Anlegen eines Kontos automatisiert werden, um die Basis für weitere Testfälle zu schaffen. Dies erhöht die Qualität der Eingaben und reduziert die Fehleranfälligkeit.

Vollautomatische Testfallabarbeitung

Vollautomatische Testtools führen komplexe Testfälle ohne menschliches Eingreifen durch, vergleichen Ergebnisse automatisch mit den Soll-Werten und generieren entsprechende Berichte. Diese Automatisierung führt zu einer erheblichen Zeitersparnis und erhöht die Konsistenz der Testausführung.

Planung und Entwicklung automatisierter Tests

  • Auswahl der Testwerkzeuge
    Entscheidung für geeignete Automatisierungswerkzeuge, die die Programmiersprachen und Technologien des Projekts unterstützen (z. B. Selenium, JUnit, TestNG, Cypress).

  • Definition der Testfälle
    Auswahl der zu automatisierenden Tests basierend auf ihrer Häufigkeit, Wichtigkeit und Eignung für die Automatisierung.

  • Skripterstellung
    Entwicklung von Testskripten, die die definierten Testfälle abbilden. Diese Skripte führen Aktionen in der Software aus und vergleichen die tatsächlichen Ergebnisse mit den erwarteten Ergebnissen.

Durchführung automatisierter Tests

  • Testumgebung einrichten
    Vorbereitung einer stabilen Testumgebung, die die Produktionsumgebung genau widerspiegelt, um realistische Testbedingungen zu schaffen.

  • Testausführung
    Regelmäßige Durchführung der automatisierten Tests durch Integration in die Build-Pipeline oder durch geplante Testläufe.

  • Wartung der Testskripte
    Anpassung und Aktualisierung der Testskripte, um Änderungen in den Anforderungen oder in der Software selbst zu berücksichtigen.

Auswertung der Ergebnisse

  • Ergebnisanalyse
    Automatische Sammlung und Analyse der Testergebnisse zur Identifizierung von Fehlern und Problemen.

  • Berichterstattung
    Erstellung von Berichten und Dashboards, die die Testergebnisse visualisieren und leicht verständlich aufbereiten.

Initialaufwand einer Testfallautomation

Durch die Implementierung automatisierter Tests können Teams schneller und mit höherer Qualität entwickeln, Fehler frühzeitig erkennen und effizienter auf Änderungen reagieren.

Methodische Testfallermittlung

Applikationsanalyse

Erstellung Datenbankmodell/ Regelmatrix

Abstimmungen mit Fachbereich(en)

Definition und Koordination Vertragsdatenbereitstellung

Testautomation

Konzeption Testautomation mit zentraler Testdatenhaltung

Erstellung Testskript / Framework zur Testdatensteuerung

Ergebnisverifikation

Regressionstest

Herausforderungen und Best Practices

  • Vermeidung von "Flaky Tests"
    Entwicklung stabiler und zuverlässiger Testskripte, die konsistente Ergebnisse liefern.

  • Kontinuierliche Überprüfung
    Regelmäßige Überprüfung der Relevanz und Effektivität der automatisierten Tests, um sicherzustellen, dass sie weiterhin wertvolle Ergebnisse liefern.

  • Integration in den Entwicklungsprozess
    Enge Integration der Testautomatisierung in den Entwicklungs- und Deployment-Prozess, um eine kontinuierliche Qualitätssicherung zu gewährleisten.

Workflow einer Testautomatisierung - Aufgabenverteilung

Testfallermittlung

Eine Testautomatisierung zielt grundsätzlich auf die Automatisierung von Regressionstestfällen, welche künftig erneut für eine Ausführung im (jeden) Release notwendig erscheinen.

Im Vorfeld der Testautomatisierung bedarf es zunächst einet Ermittlung der Testobjekte und eine Bewertung der Testpriorität, die anhand manuell bereits erfolgreich ausgeführter und als wichtig angesehener Tests erfolgen.

Testfallerstellung

Testfälle, für die eine Automatisierung erstellt werden soll, müssen anhand verschiedener Kriterien aus bereits erstellten manuellen Testfällen ermittelt und näher beschrieben werden.
Dabei ist insbesondere die Fähigkeit und Notwendigkeit (wichtig, werden immer wieder gebraucht) der Testfälle zur Automatisierung zu beachten. Die zu verwendeten Kriterien können sich von Automatisierungsprojekt zu Automatisierungsprojekt unterscheiden und müssen zu Beginn des Projektes mit den Beteiligten abgestimmt werden.

Testfallaufwandschätzung

Für die Schätzung der Testaufwände, die für eine Testautomatisierung von Testfällen anfallen, sind diverse Aspekte zu berücksichtigen, deren Aktivitäten nachfolgende exemplarisch – jedoch nicht abschließend - aufgeführt werden: Testfallermittlung/ -beschreibung, Testdatenermittlung, Initialtestfälle erstellen, Komponenten (erstellen, programmieren, erweitern bzw. überarbeiten), Grunddaten (Anzahl und Art der betroffenen Masken/ GUI Elemente), automatisierte Testdatenbereitstellung (inklusiv deren Rücksetzbarkeit), Pflege der Testautomatisierung, Erweiterung/ Wartung der Testautomatisierung

Testfallautomatisierung

Eine Testautomatisierung wird mit der Methode eines Geschäftsprozesstests – der die einzelnen Prozessschritte so bestimmen soll, dass diese in möglichst vielen Varianten (Ausprägungen) des Geschäftsprozesses Verwendung finden können - geprüft.
Für die in einzelne Prozessschritte unterteilten Geschäftsprozesse werden die notwendigen Eingansparameter bestimmt und die Komponenten erstellt. Letztendlich können unterschiedlichen Geschäftsprozesses - so wie benötigt - aus den Komponenten zusammengesetzt und dann als Testfälle ausgeführt werden.

Testfallausführung

Die Ausführung der Testfälle, die im Rahmen einer Testautomatisierung erstellten wurden, erfolgt prinzipiell analog der bisherigen manuellen Vorgehens, das Abarbeiten der einzelnen Testschritte wird jedoch technisch unterstütz.

Testfallauswertung

Die Auswertung von ausgeführten automatisierten Testergebnissen erfolgt nach der Durchführung der Tests unter Verwendung eines Qualitätssicherungstools, welches die benötigten Auswertungsfunktionen und -möglichkeiten zur Verfügung stellt.

Kriterien zur Auswahl von zu automatisierenden Testfällen

Kriterium

Beschreibung

Stabilität Testobjekte

Eine Automatisierung ist wirtschaftlich und aus Testsicht nur in den Systemteilen sinnvoll, die eine hohe Anwendungsreife (d.h. es werden keine großen Systemänderungen erwartet) sinnvoll.

Release Planung

Für Funktionen, die in einem kommenden Release entfernt oder umfangreicher geändert werden sollen, lohnt sich unter dem Aspekt einer Return-Of-Invest (ROI) eine Testfallautomatisierung nicht.

Testdaten

Testdaten müssen ausschließlich einem automatisierten Test zugeordnet werden können. Eine Störung durch parallele Nutzung der Testdaten im manuellen Test muss daher durch geeignete Maßnahmen verhindert werden können.

Testumgebung

Eine automatisierte Ausführung von ausgewählten Tests erfordert die Verfügbarkeit einer geeigneten Testumgebung.

Testfokus

Testfallautomatisierungen sind insbesondere für Funktionstest oder Funktionskettentest - mit Einschränkungen auch für einen User Acceptance Test - geeignet.

Drittsysteme

In Drittsystemen werden oft eigene Daten vorgehalten. Dadurch wird es erschwert, dass über alle Systeme konsistente Daten für eine Testfallautomatisierung zur Verfügung stehen können.

 

Von daher sind die Testfälle für eine Testfallautomatisierung so auszuwählen, dass die Anzahl der notwendigen Drittsysteme möglichst gering gehalten wird.

Testfallermittlung

Methodisch ermittelte Testfälle eignen sich (aufgrund einer allgemein höheren Qualität) grundsätzlich eher zur Testfallautomatisierung als intuitiv ermittelte Testfälle.

 

Dennoch kann es vorkommen, dass auch intuitiv ermittelte Testfälle von sehr guter Qualität sind und sich damit auch für eine Testfallautomatisierung eignen.

Manuelle Ausführung

Um eine Reife für eine Testfallautomatisierung nachzuweisen, muss ein Testfall bereits manuell erfolgreich getestet worden sein.

 

In diesem Zusammenhang sollte eine Risikoanalyse durchgeführt werden. Bevorzugt sind die Testfälle zur Automatisierung auszuwählen, die bei hoher Kritikalität eine möglichst niedrige Komplexität (Komplexitätsbewertung) aufweisen.

Genauigkeit der

Testfallbeschreibung

Eingabeparameter und erwartete Ergebnisse von Testfällen, deren Testfalldurchführung automatisiert werden soll, sind so genau zu beschreiben, dass eine fachfremde Person ohne Fachwissen die Testfälle ausführen könnte.

 

Je höhere die Detaillierung von Testfallbeschreibungen ist, umso mehr wird die Testfallautomatisierung erleichtert.

Eine Beratung, so wie sie sein soll – Hettwer UnternehmensBeratung GmbH – Eine Beratung, so wie sie sein soll – Hettwer UnternehmensBeratung GmbH – Eine Beratung, so wie sie sein soll – Hettwer UnternehmensBeratung GmbH – Eine Beratung, so wie sie sein soll – Hettwer UnternehmensBeratung GmbH – Eine Beratung, so wie sie sein soll – Hettwer UnternehmensBeratung GmbH

Hettwer UnternehmensBeratung

Hettwer UnternehmensBeratung GmbH - Spezialisierte Beratung - Umsetzungsdienstleistungen im Finanzdienstleistungssektor – Experte im Projekt- und Interimsauftragsgeschäft - www.hettwer-beratung.de

H-UB ERFOLGSGESCHICHTE

Auszeichnung:

Gold-Partner-Zertifikat

Hettwer UnternehmensBeratung GmbH wurde aufgrund der erbrachten Beraterleistungen in den exklusiven Kreis der etengo Gold-Partner aufgenommen.

H-UB EXPERTENWISSEN

Hettwer UnternehmensBeratung GmbH – Expertenprofil Klaus Georg Hettwer (Geschäftsführer): Beratungskompetenz, Fachliche Kompetenz, Methodische Kompetenz, Soziale Kompetenz, Kommunikationskompetenz; Sonderthemen: SEPA, EMIR, TARGET2, MiFID, T2S

- Eine Beratung mit PROFIL -

H-UB Leistungskatalog

H-UB Leistungskatalog.pdf
Adobe Acrobat Dokument 89.4 KB

H-UB SOCIAL MEDIA PRÄSENZ

© 2010-2024 Hettwer UnternehmensBeratung GmbH