Continuous Testing: Effizienzsteigerung durch Automatisierung und KI

 

Durch unsere jahrelange Erfahrung bei der Mitgestaltung und erfolgreichen Umsetzung der Veränderungsprozesse unserer Kunden wissen wir, dass ein effizienter Change Prozess heutzutage absolut unabdingbar ist. Getrieben von neuen technologischen Möglichkeiten sowie sich ändernden Marktstandards und neuen Anforderungen wird es immer wichtiger, sich effizient an neue Gegebenheiten anpassen zu können.

In der Softwareentwicklung werden hierfür inzwischen immer häufiger agile Vorgehen und das Prinzip der Continuous Integration und Continuous Delivery angewendet. Solche Vorgehen ermöglichen es, nach jedem Sprint ein fertiges, ausrollbares Release der Software zu produzieren und somit neue Funktionalitäten und Anpassungen zeitnah zur Verfügung zu stellen. Um solch ein agiles Vorgehen effektiv umsetzen zu können, bedarf es u.a. zweier Dinge. Zum einen sollte die Software möglichst modularisiert aufgebaut sein, um einzelne Funktionalitäten flexibler und voneinander unabhängiger entwickeln, anpassen und testen zu können.

Abbildung 1: Continuous Testing im Systembetrieb.

Abbildung 1: Continuous Testing im Systembetrieb.

Zum anderen muss ein effizienter an den Entwicklungsprozess angepasster kontinuierlicher Testansatz gefahren werden, um Änderungen schnell, wiederholbar und ohne großen Aufwand, d.h. automatisiert, testen zu können. In der Softwareentwicklung werden hierfür meist verschiedene Teststufen verwendet (Unit-, Komponenten-, Modul- und Schnittstellentests).

Für einen solchen Testansatz sollten Testfälle entsprechend modularisiert und funktionsbasiert aufgebaut werden und Abnahmekriterien sich an der tatsächlichen Verarbeitungsstrecke der Daten und den einzelnen Lieferobjekten orientieren.

Außerhalb der reinen Softwareentwicklung wird in der Praxis jedoch häufig noch immer ein Testansatz mit End-to-End Tests gefahren, in dem Testfälle mehrere Funktionalitäten, Module oder sogar Systeme beinhalten. Dies führt zu einer wachsenden Diskrepanz zwischen der Dauer eines Testzyklus (BAT) und den immer kürzer werdenden Releasezyklen.

Im Folgenden werden wir daher einige Stellschrauben zur Effizienzsteigerung beim Testvorgehen benennen. Diese ermöglichen u.a. eine Reduzierung des Testaufwands durch effektiveres Testfalldesign, durch Automatisierung der Testdurchführung und einer effizienteren Abweichungsanalyse sowie durch eine Auslagerung von Testaktivitäten an den Softwarehersteller oder an Dritte.

 

Teststrategie / Testinfrastruktur

Wie bereits erwähnt, ergeben sich aus agilen Projektvorgehen andere Anforderungen an eine gesamtheitliche Teststrategie, welche nun ein effizientes kontinuierliches Testen ermöglichen muss. Dies kann sich z.B. in häufigeren Releases der Software/Systeme und damit verbundenen Regressions- und Abnahmetests niederschlagen.

Um ein kontinuierliches Testen zu ermöglichen, muss der Testaufwand entsprechend gering sein. Dies beinhaltet sowohl den finanziellen und zeitlichen Aufwand als auch die Anforderungen an die Testinfrastruktur. Insgesamt sollten Tests die folgenden Kriterien erfüllen:

  • einfach und unabhängig ausführbar
  • geringe Anforderungen an Testumgebungen (Datenstand und Schnittstellen)
  • wiederholbar
  • automatisierbar
  • geringe Laufzeit

Um diese Kriterien zu erfüllen, muss der Testansatz weg von aufwendigen End-to-End Tests und hin zu modularisierten Testfällen gehen, welche einen Workflow in seine einzelnen Prozessschritte und Funktionen zerlegen. Hierfür kann u.a. Process Mining hilfreich sein, um relevante Prozessschritte zu identifizieren.

Abbildung 2: Datenfluss mit Transformationsschritten und Prüfpunkten.

Abbildung 2: Datenfluss mit Transformationsschritten und Prüfpunkten.

Eine solche Modularisierung der Testfälle verringert auch die Anforderungen an die Testinfrastruktur, da ein Großteil der Testfälle auf Standalone Umgebungen der Einzelsysteme getestet werden kann und eine integrierte Testumgebung nur für Schnittstellentests und finale Abnahmetests benötigt wird. Dies bedingt allerdings, dass sich Abnahmekriterien und zugehörige Tests möglichst nah an den Lieferstrecken und Lieferobjekten orientieren.

Grundsätzlich ist dabei stets sicherzustellen, dass durch die modularisierten Testfälle eine möglichst vollständige Testabdeckung gegeben ist.

Ein weiterer Aspekt der Testinfrastruktur ist die Anzahl an Testumgebungen und der Aufwand für die Bereitstellung und den Betrieb. Dabei ist zu berücksichtigen, dass sich insbesondere der Analyseaufwand erheblich reduzieren lässt, wenn mit einem weitgehend konstanten Datenstand getestet wird. Darüber hinaus kann der Aufwand beim Umgebungsaufbau/-refresh durch Automatisierung verringert werden.

 

Testfall Design

Ziel ist es, Testfälle so zu kreieren, dass sie die Kriterien für ein kontinuierliches Testen erfüllen. Insbesondere die Automatisierbarkeit der Testdurchführung ist hierbei von entscheidender Bedeutung.

Wie bereits erwähnt sollten Testfälle dafür funktionsbasiert aufgebaut werden. Dabei kann das Testvorgehen in der Softwareentwicklung mit seinen verschiedenen Teststufen als Vorbild dienen. Insbesondere sind aufwendige End-to-End Testfälle ggfs. nicht mehr geeignet, da diese häufig einen kompletten Workflow abdecken, welcher mehrere Funktionalitäten und/oder Systeme beinhaltet. Ziel ist es, die Prozesskette in einzelne, kleinere Testfälle zu zerlegen, welche folgende Eigenschaften haben:

  • ohne (große) Vorbedingungen und Aufwand testbar
  • geringe Laufzeit
  • wiederholbar
  • möglichst wenige komplexe Funktionen in einem Testschritt/Testfall

⇒ Einfach automatisierbar

Die Idee ist Testschritte und Testfälle so aufzusetzen, dass bei Abweichungen möglichst wenig Aufwand für die Fehlersuche und Fehleranalyse nötig ist. Komplexe Schritte werden soweit wie möglich zerlegt und möglichst viele Informationen sollten ausgegeben werden. Die Fragen, die man sich hierbei stellen sollte, sind u.a.:

  • Welche Informationen sind für die Analyse der Ergebnisse relevant?
  • Welche Faktoren/Konstellationen führen am wahrscheinlichsten zu Fehlern?
  • Ist eine weitere Zerlegung fachlich und technisch machbar/sinnvoll (bzgl. Laufzeit, Kapazitäten, Mehrwert)?
Abbildung 3: Sensitivitäten-Berechnung mit zu testenden Prüfpunkten.

Abbildung 3: Sensitivitäten-Berechnung mit zu testenden Prüfpunkten.

Eine solche Modularisierung der Testfälle bedarf zwar eines hohen initialen Aufwands für die Aufteilung und Erstellung einer vollständigen Testbasis, jedoch bietet eine solche Aufteilung letztlich erhebliche Vorteile:

  • Sie bildet die Grundlage für Automatisierung und somit eine schnellere und wiederholbare Ausführung der Testfälle ohne großen manuellen Aufwand.
  • Modulare Testfälle sind leichter zu warten und anzupassen, falls Änderungen auftreten.
  • Die einzelnen Testschritte können wiederverwendet und zu verschiedensten Szenarien und Workflows kombiniert werden.
  • Funktionsbasierte Testschritte vereinfachen die Fehleranalyse, da fehlerhafte Funktionen direkt identifiziert werden können.

Mit Hilfe von Automatisierung lässt sich der Aufwand für zusätzliche Testfälle sowie für den Abgleich der Ergebnisse erheblich reduzieren, was ein solches Vorgehen ermöglicht. Am Ende sollte eine Fehlerquelle idealerweise direkt erkennbar sein, sodass der Aufwand sowohl beim Testen als auch bei der Analyse deutlich geringer wird.

Generell kann ein solches funktionsbasiertes und modularisiertes Testfalldesign nicht nur eine Automatisierung der Testdurchführung, sondern auch die Verlagerung von Testaktivitäten zurück zum Entwickler oder zu Dritten erleichtern und bringt das Testen somit näher an die Entwicklung.

 

Automatisierung der Testdurchführung

Abbildung 4: Vorteile der Testautomatisierung mit RPA-Tools.

Abbildung 4: Vorteile der Testautomatisierung mit RPA-Tools.

Eine automatisierte Testdurchführung ermöglicht es, eine große Anzahl an Testfällen in kurzer Zeit und ggfs. über Nacht, beliebig oft wiederholbar und ohne signifikanten Aufwand durchzuführen und die Ausführung auditkonform zu dokumentieren.

Voraussetzung dafür ist jedoch, dass die Testfälle wie zuvor erwähnt funktionsbasiert aufgesetzt sind, um entsprechend automatisiert werden zu können.

Für eine automatisierte Testdurchführung stehen verschiedene sogenannte Robotic Process Automation (RPA) Tools zur Verfügung. Diese können entweder systemspezifisch oder systemagnostisch sein.

Wichtige Aspekte bei der Wahl der Automatisierungssoftware sind u.a. die Kosten, die Performance und die Bedienbarkeit durch den Nutzer. Darüber hinaus können die initiale Anlage der Testfälle sowie die Anpassung und Wartung bei etwaigen Änderungen ggfs. einen hohen Aufwand im Betrieb bedeuten. Je nach Software kann hier auch eine Abhängigkeit zum Hersteller entstehen, die es zu vermeiden gilt.

Viele Automatisierungstools beinhalten darüber hinaus auch eine Abgleichfunktion mit deren Hilfe Output-Dateien von Reports oder Schnittstellen automatisiert abgeglichen werden können. Um relevante Abweichungen möglichst schnell und übersichtlich zu sehen, sollte ein solcher Abgleich u.a. dateispezifische Regeln sowie reguläre Ausdrücke und Abweichungstoleranzen berücksichtigen können. Auch hier gibt es verschiedene Tools für einen automatisierten Datenabgleich.

 

Optimierung der Abweichungsanalyse

Abbildung 5: Decision-Tree Output aus ML-Tool.

Abbildung 5: Decision-Tree Output aus ML-Tool.

Neben der eigentlichen Testdurchführung ist die Abweichungsanalyse der aufwendigste Teil eines Testzyklus. Für eine effiziente Abweichungsanalyse ist es essentiell, dass die Testfälle und einzelnen Testschritte so modularisiert und punktuell aufgesetzt sind, dass bei Abweichungen möglichst schnell erkennbar ist, wo die Fehlerquelle liegt. Hierbei sollte u.a. bereits im Testfalldesign berücksichtigt werden, inwieweit z.B. aggregierte Reports gegebenenfalls aufgesplittet werden können, um die Fehlerursache schneller zu finden.

Wie im vorigen Abschnitt beschrieben, kann auch hier der Aufwand mithilfe von Automatisierung erheblich reduziert werden. So können z.B. zusätzliche Reports oder statische Informationen automatisiert bereitgestellt, Daten transformiert und Analysedateien aufbereitet werden. Mithilfe von automatisierten Abgleichen kann dann schnell und einfach eine Übersicht der relevanten Abweichungen mit entsprechenden zusätzlichen Informationen erstellt werden.

Dies eröffnet schließlich die Möglichkeit der technisch unterstützten Datenauswertung und Analyse durch Machine Learning Tools. Auch hier gibt es verschiedene Verfahren, welche schnell und automatisiert eine erste Identifizierung von möglichen Fehlerkonstellationen liefern können und somit den Analyseaufwand weiter reduzieren.

 

Zusammenfassung des neuen Testansatzes

Die aktuelle Entwicklung in der Softwareentwicklung sowie im allgemeinen Projektvorgehen stellt neue Herausforderungen an das Testen. Testzyklen müssen häufiger durchgeführt werden und daher schneller und mit weniger Aufwand ausführbar sein.

Um dies zu erreichen ist eine weitgehende Automatisierung der Testdurchführung unausweichlich. Hierfür muss die Teststrategie weg von aufwendigen End-to-End Tests und hin zu modularisierten, funktionsbasierten Testfällen gehen.

Solch ein Ansatz reduziert darüber hinaus auch den Analyseaufwand bei Fehlern. Zusätzlich können auch bei der Abweichungsanalyse durch Automatisierung und den Einsatz von Machine Learning Tools sowohl der zeitliche Aufwand als auch die Kosten reduziert werden.

test autom 3.png

Unser Angebot

Aufgrund unserer jahrelangen Erfahrung bei der Unterstützung unserer Kunden bei der Gestaltung und erfolgreichen Umsetzung ihres Veränderungsprozesses, besitzen wir ein tiefgreifendes Know-how in den Bereichen Change Prozess Optimierung, System Integration, Testmanagement sowie Automatisierung und Datenanalyse.

So war Finbridge u.a. bereits auf unzähligen System Integrations- und Upgrade-Projekten tätig und konnte diese mit der sowohl fachlichen als auch technischen Expertise unserer zertifizierten Testmanager und Tester sowie Business Analysten stets erfolgreich abschließen.

Entlang der gesamten Themenkette Testmanagement, Teststrategie, Testfalldesign, Automatisierung der Testdurchführung sowie Optimierung der Abweichungsanalyse kann Finbridge Sie mit Rat und Tat sowie Best-Practice Lösungen unterstützen.

Unter anderem hat Finbridge kürzlich einen Prototyp für eine Machine Learning unterstützte Datenauswertung und Analyse entwickelt, welcher nun bei den ersten Kunden eingesetzt wird.

Gerne unterstützen wir auch Sie bei der Optimierung Ihres Change Prozesses und der Automatisierung des Testvorgehens.

 

TEAM

 
Aloys HüntemannGeschäftsführerFinancial Engineringaloys.huentemann at finbridge.de+49 151 58 25 89 93LinkedIn | Xing

Aloys Hüntemann

Geschäftsführer

Financial Enginering

aloys.huentemann at finbridge.de

+49 151 58 25 89 93

LinkedIn | Xing


Michael ArbeiterSenior ConsultantFinancial EngineeringLinkedIn | Xing

Michael Arbeiter

Senior Consultant

Financial Engineering

LinkedIn | Xing

 

Mehr Insights und Themen