Teil 1/2

Die Zukunft der Testautomatisierung

Serie

Seit 2014 gibt es den offiziellen Testautomatisierungs-Ansatz A2A, der zwischenzeitlich in über 30 Kundenprojekten im Einsatz ist. Entwicklet wurde die Methodik bei Anecon, mittlerweile Teil der Nagarro Group, als Ergebnis aus 15 Jahren Praxiserfahrung in der Testautomation.

Herausforderungen in IT-Projekten fordern, dass man sich selbst und seine Werkzeuge ständig weiterentwickelt. Sind Sie neugierig, was so alles an neuen Themen rund um Testautomation auf dem Radarschirm ist? Dann lesen Sie hier weiter!

Anzeige

A2A.TA heute

Zunächst ein kurzer Rückblick, was sich seit dem Launch von A2A im Oktober 2014 getan hat:

  • Es wurden Lösungen für nachhaltige, lesbare und effiziente Regressionstests geschaffen.
  • Das Portfolio an Werkzeugintegrationen ist stetig gewachsen und integriert mittlerweile viele Technologien und Schnittstellen.
  • Die Reporting-Engine liefert nachvollziehbare und übersichtliche Ergebnisreports, direkt in den Testmanagement-Systemen der Kunden.
  • Testdatenmanagement, Testumgebungsmanagement und Service Virtualisierung sind feste Bestandteile des Vorgehens geworden.
  • Testartefakte sind in vielen Projekten fixer Bestandteil nicht nur des Vorgehens, sondern auch des Lieferobjekts.
  • Zu Technologien für Continuos Integration, Continuous Delivery und Continuous Deployment wurden auch Continuous Testing und Lösungen für DevOps Organisationen beigesteuert.

All diese Bausteine und noch mehr sind nicht nur Teildes Ansatzes, sondern kommen in jedem Testautomatisierungsprojekt direkt quasi im Werkzeugkoffer mit. Damit ist eine solide Basis für gewinnbringende Testautomatisierung gelegt.

Was bringt die Zukunft?

Im Folgenden geben wir einen kleinen Überblick über einen Auszug der Themen, die uns alle beschäftigen, und mit denen wir uns derzeit und in den nächsten Jahren intensiv auseinandersetzen werden. Einige dieser Themen werden intern entwickelt – andere in konkreten Kundenprojekten aufgesetzt. Diese Lösungen werden in den nächsten Monaten Teil eines offiziellen A2A-Packages werden und damit für alle Anwender verfügbar sein.

Newsletter
Newsletter Box

Mit Klick auf den Button "Jetzt Anmelden" stimme ich der Datenschutzerklärung zu.

Mehrdimensionale Analysierbarkeit von Testergebnissen

Testautomatisierung liefert dann Mehrwert, wenn sie häufig durchgeführt wird. Doch gerade dann muss sie robust sein, um zuverlässige Ergebnisse zu liefern. Doch auch wieder nicht zu robust, damit alle relevanten Auffälligkeiten auch gefunden werden können.

In jedem Fall fordern fehlgeschlagene Testfälle eine Analyse der Fehlerursache. Und darin liegt, neben Wartungsaktivitäten, der Löwenanteil der Aufwände für Testautomatisierung im laufenden Betrieb. Es ist ein Kostenmultiplikator, da es üblicherweise hunderte oder tausende von Testfällen gibt, die alle das Risiko haben, fehlzuschlagen. Daher lohnt es sich, in die Analysierbarkeit der Testläufe zu investieren.

Gute Testautomatisierung liefert bereits jetzt detaillierte Informationen über die Testdurchführung: ein Log mit den fachlichen und technischen Testschritten, Screenshots und Videomitschnitte der Testdurchführung sind mittlerweile Standard in den meisten Tools.

Doch wir wollen weitergehen, um ein vollständigeres Bild des Testlaufs zu bekommen, zum Beispiel:

  • Wie ging es während der Durchführung der Client-Maschine? Der Prozessorauslastung? Dem Speicher?
  • Wie ging es den Servern? Waren sie verfügbar? Was stand zum Zeitpunkt des Laufs in den Logfiles? Exceptions? Auslastung? Reaktionszeiten?
  • Wie sah während der Durchführung das Netzwerk aus? Gab es Aussetzer? Reduzierten Throughput?
  • Gab es Wartungsfenster, die unseren Lauf beeinflusst haben?
  • Wie sahen im Vergleich die letzten X Testläufe aus? Gibt es „Dauerbrenner“ oder „Wackelkandidaten“? Hat sich die Geschwindigkeit verändert?
  • Welche Changes gab es in der aktuellen Version der Applikation gegenüber dem letzten Lauf?
  • Welche bekannten Issues gibt es, die unseren Lauf beeinträchtigen könnten?

Wir widmen uns also dem Aggregieren und Übereinanderlegen von vielen Informationen aus unterschiedlichen Quellen, um nicht nur die Perspektive der Testautomatisierung selbst, sondern ein umfassendes Bild der Testdurchführung zu erhalten, und dadurch schneller und zielgenauer Fehlerquellen und Beeinträchtigungen identifizieren zu können. Dadurch sparen wir nicht nur Analyseaufwand bei jedem einzelnen fehlgeschlagenen Testfall, sondern können auch grundlegende Probleme deutlich besser und schneller erkennen und beseitigen – sowohl in der Automatisierung als auch im getesteten Produkt.

Property Based Testing

In der Regel bestehen automatisierte Tests aus einem Ablauf, den erwarteten Ergebnissen und Testdaten. Es ist also eine Sequenz von Aktionen und Verifikationen, die automatisch durchgeführt wird, um das Verhalten der Applikation gegen die Erwartungen des Test-Designers zu überprüfen. Doch es gibt auch andere Formen, um das Verhalten von Applikationen zu beschreiben – und einige davon können automatisch geprüft werden. Als Beispiel wollen wir kurz „Property Based Testing“ vorstellen.

Diese Testmethode besteht nicht, wie klassische Testfälle, aus Ablauf, Erwartungen und Daten, sondern nutzt Aussagen über das Testobjekt, um dieses automatisch zu prüfen.
Ein Beispiel: Die Filterung von Datensätzen in einer Kundentabelle.

Nehmen wir die folgende Tabelle an:

| Registrierungsdatum | Name |
| 01.01.2017 | Martina Musterfrau |
| 03.05.2015 | Max Mustermann |
| 23.07.1981 | Peter Tester |

Wir definieren nun eine Funktion, die eine solche Liste filtern soll, und zwar nach dem Registrierungsdatum. Es gibt die Parameter Datum, und als Filter-Modus „größer“, „kleiner“ und „gleich“.

Ohne auf die spezifische Funktionalität einzugehen, können wir bereits Erwartungen an diese Funktion (und damit an deren Ergebnis) beschreiben.

Einige dieser Erwartungen:

  • Im Ergebnis sind gleich viele, oder weniger, Datensätze, als in der Ursprünglichen Tabelle.
  • Im Ergebnis gibt es keine Datensätze, die nicht in der ursprünglichen Tabelle enthalten waren.
  • Das Ergebnis enthält keine Duplikate.
  • Die Datensätze sind im Ergebnis so sortiert wie in der ursprünglichen Tabelle.

Daher bauen wir für Aussagen dieser Art einen automatisierten Baukasten an Überprüfungen auf, die wir dann auf Elemente des zu testenden Systems anwenden können (also etwa Masken, Webservices, Jobs, Datenbanken, etc.). Damit können wir auch ohne „exaktes“ Test-Design und Soll-Ergebnis eine Aussage darüber treffen, ob das Verhalten den spezifizierten Kriterien entspricht.

Hochgradig skalierbare und Enterprise-orientierte Testautomatisierung

Testautomatisierung in großen und heterogenen Landschaften ist an sich bereits eine Herausforderung. Asynchrone Aktionen in der zu testenden Systemlandschaft machen schnelle und zuverlässige Testdurchläufe schwierig. Eine hohe Anzahl von Testfällen kann zu schwerfälligen und langläufigen Testdurchführungen führen.

Servicevirtualisierung, Testumgebungsmanagement und Continuous Delivery helfen uns bereits dabei, gezielte und umfassende Tests durchführen zu können.

Doch was gibt es darüber hinaus zu tun? In diesem Themenkontext befassen wir uns unter anderem mit:

  • Parallelisierung von Testdurchführungen zur Reduktion der Gesamtlaufzeit
  • automatisches Testen von asynchronen und langläufigen Aktionen (z.B. Queues, Jobs, etc.)
  • Wiederverwertung von Testautomatisierungsartefakten in anderen Projekten und im Systemintegrationstest
  • Über Organisationen und Organisationseinheiten verteilte Testdurchführung, in unterschiedlichen Netzwerken und Unternehmen
  • Rasches Setup von neuen Testautomatisierungsprojekten – technisch und organisatorisch

All diese Aspekte sind wichtig für Unternehmen mit komplexen und heterogenen Systemlandschaften – aber auch für Unternehmen, die auf Microservice-Architekturen setzen. Und damit ist dieses Thema hoch-relevant für viele unserer Kunden, und daher für uns ein starker Fokus.

In Teil 2 des Artikels werden wir uns mit den folgenden spannenden Themen beschäftigen: Fuzzy Testing, Machine Learning und automatisiertes Accessibility Testing.

Thomas Steirer, Anecon Software Design und Beratung GmbH

Thomas SteirerNach Abschluss seines Studiums Informatik/Computational Intelligence an der TU Wien legte Thomas Steirer seine Schwerpunkte vor allem auf Testautomatisierung, Test-Tool-Evaluierung, Testframework-Entwicklung und Testmanagement. Der Test-Experte arbeitet in Wien bei Anecon, die Teil der Nagarro Group ist.

 

 

Anzeige

Artikel zu diesem Thema

Weitere Artikel

Newsletter
Newsletter Box

Mit Klick auf den Button "Jetzt Anmelden" stimme ich der Datenschutzerklärung zu.