TIL: Chatbots automatisieren in nur 4 Schritten

Die Vorstellung von TestMyBot im letzten Blogartikel hat für viel Furore in der Community gesorgt und uns zudem einen Speaker Slot auf der Agile Testautomation Night beschert. Grund genug für uns, das Thema Testautomation für Chatbots nochmal aufzugreifen.

Dabei sollen heute vor allem die Automationsentwickler, die eigentlichen Rockstars der Testautomation auf ihre Kosten kommen. Vier einfache Schritte in TestMyBot reichen aus, um ganze Testsets zu automatisieren und in die vorhandene Projekt CI-Pipeline zu integrieren.

In 4 Schritten zur Testautomation für Chatbots. TestPlus zeigt wie's geht! Klick um zu Tweeten

Schritt 1: Installation und Konfiguration von TestMyBot

Die TestMyBot Library und einen Test Runner wie Jasmine fügt man zum Chatbot Projekt mit folgenden npm Kommandos hinzu:

$ npm install testmybot --save-dev

$ npm install jasmine --save-dev

$ ./node_modules/.bin/jasmine init

Danach wird die Datei spec/testmybot.spec.js mit folgendem Inhalt angelegt:

const bot = require('testmybot');

const botHelper = require('testmybot/helper/jasmine');

botHelper.setupJasmineTestSuite(60000);

Schlussendlich noch die Datei testmybot.json im Projekt Verzeichnis erstellen:

{

 "containermode": "local"

}

Chatbot Code und TestMyBot Code werden in der Datei jasmine.js im Github Projekt Verzeichnis verdrahtet. Dadurch wird es möglich, Konversationen automatisiert zu testen. Zudem wird Jasmine für die Ausgabe des XML Test Reports konfiguriert.

TestMyBot ist für die Verwendung mit Jasmine und Mocha vorkonfiguriert, kann aber auch mit anderen Test Runnern und Assertion Bibliotheken kombiniert werden. Im “docker”-Modus werden Chatbots aus nahezu allen Programmiersprachen unterstützt (siehe dazu auch die Doku auf Github und Beispiele für verschiedene Projekttypen).

Schritt 2: Komponieren der Testfälle (“convo Dateien”)

Bezogen auf Chatbots bestehen Testfälle aus Konversationen, die mit dem Bot geführt werden. Das sollte automatisch passieren und bei jeder Abweichung vom Transkript zu einem Fehlerreport führen.

Erfahrungsgemäß ist das Automatisieren von Testfällen oft sehr aufwändig. Eine Faustregel besagt, dass sich der Entwicklungsaufwand dabei nahezu verdoppelt. Mit TestMyBot gleicht die Automation von Testfällen einem Kinderspiel.

TestMyBot beinhaltet Tools zum Aufzeichnen und Abspeichern von Konversationen als Transkript bzw. Testfall. Und das ganze passiert in wenigen Minuten.

Das Kommando

$ node chat.ps

startet den Chatbot in einer Sandbox Umgebung. Danach beginnt man zu chatten und speichert das Konversations-Transkript als Testfall ab. Easy as that…

Zudem lassen sich die Testfälle auch in einem Text Editor erstellen, bearbeiten oder mittels browserbasiertem Tool aufzeichnen. Mehr dazu gibt’s in der Doku.

Schritt 3: CI Konfiguration in Codeship

In Codeship wird dazu einfach ein neues Projekt gestartet, das auf das Github Repo zeigt. Alle notwendigen Tools beinhaltet Codeship bereits out-of-the-box. Der Continuous Integration Build wird mit jedem Push ins Github Repo getriggert.

How-to Chatbot testen mit TestPlus

Nachfolgende Befehle installieren die Projektabhängigkeiten (TestMyBot, Jasmine, etc.) und die Amazon AWS Tools. Generierte Test Reports werden in ein Amazon S3 Bucket gepusht.

Codeship Test Setup:

$ npm install

$ pip install awscli

Codeship Test Befehle:

$ npm test

$ npm run-script test-export

$ aws s3 cp test-html-report.html s3://testmybot-sample-calculator/test-html-report.$(date +’%Y_%m_%d_%H%M’).html

Und jetzt der spannende Teil: das ist genau der Punkt, an dem die Testfälle von TestMyBot ausgeführt werden. Der Testreport wird generiert und in einem Amazon S3 Bucket veröffentlicht. Schlägt ein Testfall fehl, bekommt man eine Notification von Codeship.

Schritt 4: Der Test Report

Zum Erstellen des formatierten Test Reports und zur Veröffentlichung werden die Jasmine Erweiterungen jasmine-reporters und jasmine-xml2html-converter verwendet.

Wie teste ich einen Chatbot? Anleitung von TestPlusWer mehr über das Testen von Chatbots erfahren möchte, kann uns gerne bei der Agile Testautomation Night am 21. September in Stockwerk Co-Working in Wien ansprechen. Wir freuen uns auf Ihre Fragen und den Austausch

About Sarah

    You May Also Like