Testautomatisierung

Die Zukunft der Testautomatisierung 1/2

Wir beschäftigen uns bei ANECON mittlerweile seit 15 Jahren mit Testautomatisierung. Seit 2014 gibt es den offiziellen Testautomatisierungs-Ansatz A2A, der inzwischen in über 30 Kundenprojekten erfolgreich im Einsatz ist. Doch damit sind wir noch lange nicht am Ende. Herausforderungen in IT Projekten fordern uns, dass wir uns selbst und unsere Werkzeuge ständig weiterentwickeln. Es wird einiges Spannendes auf uns zukommen. Neugierig was wir so alles an neuen Themen rund um Testautomation am Radar haben? Dann lesen Sie weiter!

Testautomatisierung in der Zukunft_Bild future will be different

 

A2A.TA heute

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

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

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

 

Und was bringt die Zukunft?

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

 

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, z.B.:

  • Wie ging es während der Durchführung der Client-Maschine? Prozessorauslastung? 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 solchen 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 z.B. 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.

Ich arbeite bereits an einem Part 2 des Artikels und soviel möchte ich schon verraten – wir werden uns mit den folgenden spannenden Themen beschäftigen: Fuzz Testing, Machine Learning und Usability & Accessibility.

Passende Artikel

Antwort schreiben

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*