© Excellent backgrounds/Shutterstock.com
Testautomatisierung von Sprachassistenten mit Java und Cucumber

Hallo Siri, teste meine Alexa!


Haben Sie sich schon mal gefragt, wie das Testen von Sprachassistenten aussehen könnte? Die erste Möglichkeit ist wohl, auf eine Reihe von Testpersonen zurückzugreifen und verschiedenste Spracheingaben mit den Ausgaben zu vergleichen, manuell versteht sich. In diesem Artikel möchte ich jedoch einen Weg zum Testen von Sprachassistenten mit Hilfe von Java und Cucumber aufzeigen.

Obwohl die oben erwähnte Vorstellung, auf eine Reihe von Testpersonen zurückzugreifen, in Anbetracht der unzähligen Kombinationen schwer fällt, ist es sicherlich eine Möglichkeit. Aus praktischer Sicht sollte hier aber auf einen Automatismus zurückgegriffen werden, nicht nur um Kosten und Zeit zu sparen, sondern auch, um die Mitarbeitermotivation hochzuhalten. Diese Problemstellung eignet sich außerdem sehr gut, um verhaltensgesteuert zu testen, daher liegt auch der Einsatz von BDD (Behaviour-driven Development) nahe.

Vor einiger Zeit begann ich, für ein Projekt meinen eigenen Sprachassistenten zu entwickeln. Während der Konzeptionsphase und der Überlegung, wie die Architektur auszusehen hatte, stellte sich die Frage nach einer sinnvollen Testmöglichkeit. Testpersonen, die den ganzen Tag nichts anderes taten, als mit dem Assistenten zu reden, waren aufgrund des Budgets keine Option.

In diesem Artikel werde ich eine Möglichkeit der Testautomatisierung von Sprachassistenten mit Javas Text to Speech Engine (kurz: TTS) vorstellen. Hinzu kommen der Einsatz von Sphinx4 als Speech-to-Text-Technologie und Cucumber. Für die Verwaltung der notwendigen Libraries wird Maven verwendet.

Cucumber

Cucumber ist ein Framework, um Testszenarien in natürlicher Sprache zu beschreiben. Somit können auch Nichtentwickler den Sachverhalt einfach verstehen. Die Cucumber-Syntax erfolgt in Form von given, when, then (Abb. 1).

moll_testautomatisierung_1.tif_fmt1.jpgAbb. 1: Beispiel: Testen eines Log-in-Prozesses

Jeder Schritt zeigt sichtbar auf, welcher Sachverhalt durchgeführt wird. Mit then folgt schließlich die Erfolgsbedingung und Prüfung. Entwickler müssen jetzt nur noch den zugehörigen Code mit den passenden Funktionen füllen (Abb. 2).

Cucumber ist ein vielseitig einsetzbares BDD Framework, das deutlich mehr bietet als das hier kurz Aufgezeigte. Für unser Vorhaben reicht dieser knappe Abriss jedoch aus.

moll_testautomatisierung_2.tif_fmt1.jpgAbb. 2: Beispiel: Zugehörige Java-Funktionen befüllen

TTS – Text to Speech Engine

Es gibt zahlreiche Engines, die sich für die Aussprache von Texten eignen. TTS ist jedoch kostenlos und wird lokal ausgeführt, ohne Kommunikation mit Drittanbie...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang