ELITE NETZWERK BAYERN

English  Sprachen Icon  |  Gebärdensprache  |  Leichte Sprache  |  Kontakt


Forschungsarbeit


Konzepte des bestärkenden Lernens zum Test verteilter Systeme

von André Reichstaller

Tests können das Vertrauen in die korrekte Funktionalität erhöhen. So beschäftigen sich die Forschungsbereiche des Protokoll-Konformitäts- und des Interoperabilitätstestens damit, wie sich das Kommunikationsverhalten unterschiedlicher Komponenten prüfen lässt. Ein wichtiger Teilaspekt ist dabei die Formulierung von Testfällen, durch deren Ausführung auf dem zu testenden System mögliche Fehler aufgedeckt werden sollen.

Moderne Softwaresysteme bestehen häufig aus mehreren Komponenten, die auf unterschiedlichen Recheneinheiten wie Computern, Prozessoren eingebetteter Systeme oder Smartphones ausgeführt werden. Solche Systeme nennt man verteilt. Da die Komponenten verteilter Systeme über keinen gemeinsamen Speicher verfügen, kooperieren sie durch den Austausch von Nachrichten. Die Kommunikation hat deshalb entscheidenden Einfluss auf deren Funktionalität. Schlägt diese fehl, kann ein spezifizierter Dienst meist nicht korrekt erbracht werden. Ein Beispiel dafür sind Client-Server Anwendungen. Dort kommuniziert eine Komponente auf einer Recheneinheit des Nutzers (Client) mit einer Komponente auf einer Recheneinheit des Anbieters (Server). Sendet der Client eine fehlerhafte Nachricht, so kann der Server keine adäquate Antwort liefern. Sendet der Server eine fehlerhafte Nachricht, so liefert der Client dem Nutzer fehlerhafte Inhalte.

Tests können das Vertrauen in die korrekte Funktionalität erhöhen. So beschäftigen sich die Forschungsbereiche des Protokoll-Konformitäts- und des Interoperabilitätstestens damit, wie sich das Kommunikationsverhalten unterschiedlicher Komponenten prüfen lässt. Ein wichtiger Teilaspekt ist dabei die Formulierung von Testfällen, durch deren Ausführung auf dem zu testenden System mögliche Fehler aufgedeckt werden sollen. Die Anzahl ausführbarer und auswertbarer Testfälle ist in der Praxis meist beschränkt. Übersteigt die Zahl abgeleiteter Testfälle diese Schranke, stellt sich die Frage, welche davon ausgewählt werden sollen. Eine mögliche Lösung liefern risikobasierte Teststrategien. Sie priorisieren Testfälle nach dem durch sie abgedeckten Risiko. Bei gegebener oberer Schranke für die Anzahl an Testfällen können nun diese gewählt werden, die die vermeintlich riskantesten Fehler aufdecken. Die Definition möglichen Fehlverhaltens und die Bestimmung des Risikos wird dabei meist Experten überlassen. Das führt zu erheblichem Aufwand, den Testbudgets in der Praxis nur selten zulassen. Deshalb werden oftmals Testsammlungen gewählt, die weder in Bezug auf Ansätze des Protokoll-Konformitäts- und Interoperabilitätstesten noch in Bezug auf Ansätze des risikobasierten Testens adäquat sind. Um in der Praxis anwendbar zu sein, sollte ein Verfahren zur strukturierten Ableitung von Testfällen einen hohen Automatisierungsgrad aufweisen. Weiter sollte es die Priorisierung von Testfällen zulassen, sodass bei einer oberen Schranke für die Anzahl ausführbarer Testfälle eben diese gewählt werden können, die das Vertrauen in die korrekte Funktionalität maximieren.

Wir haben ein neues Verfahren entwickelt, welches Konzepte des bestärkenden Lernens auf den Test des Kommunikationsverhaltens interagierender Komponenten anwendet, um genannte Eigenschaften zu erfüllen. In Simulationen interessanter Abläufe des zu testenden Systems erlernen intelligente Softwareagenten die Kritikalität möglicher Fehler in Bezug auf deren erwartete Auswirkung. Darauf aufbauend bewertet eine Risikometrik die Relevanz bestimmter Systemaktionen dafür, getestet zu werden. Gegeben eine obere Schranke für die Anzahl ausführbarer und auswertbarer Testfälle werden diese generiert, welche möglichst relevante Systemaktionen testen.

In einer industriellen Fallstudie wurde ein Prototyp auf Teile der Spezifikation eines mobilen Bezahlsystems angewandt. Es hat sich gezeigt, dass sich weite Teile der Risikobewertung sowie der Testfallgenerierung automatisieren lassen. Die generierten Testfälle stimmten mit denen überein, die von Testern erwartet wurden.

Zur Person

André Reichstaller studierte von 2010 bis 2013 Medieninformatik an der Ludwig-Maximilians-Universität in München. In Anschluss an sein Bachelor-Studium absolvierte er den Elitestudiengang Software Engineering an der Universität Augsburg, welchen er erfolgreich mit dem akademischen Grad Master of Science abschloss. Von  2013 bis 2015, während seines Master-Studiums, erhielt er das Deutschlandstipendium. Seit 2015 arbeitet André als wissenschaftlicher Mitarbeiter an der Universität Augsburg. (23.09.2016)

 

Abb. 1: System des bestärkenden Lernens. Ein Agent interagiert mit seiner Umwelt. Für eine getätigte Aktion erhält er eine Bestärkung.

Abb. 2: Repräsentation der erlernten Wertefunktion eines beispielhaften Agenten im Graph-Tool yEd.

Abb. 3: Komponenten des mobilen Bezahlsystems aus der Fallstudie.

veröffentlicht am