Gehört die Zukunft den Chatbots?

Testautomation für Chatbots: Raus aus den Kinderschuhen!
Keine Kommentare

Chatbots haben sich enorm weiterentwickelt, seit sie vor fast einem Jahrzehnt das Licht der Welt erblickt haben. Die praktischen Helfer sind auf einer Vielzahl von Webseiten zu finden. Viele Chatbots haben aber noch nicht die Qualität, die die Anwender von Webseiten und mobilen Applikationen gewohnt sind. Schuld daran ist u. a. die Tatsache, dass das Testen von Chatbots noch in den Kinderschuhen steckt. Dieser Artikel gibt grundlegende Einblicke in das Testen von Chatbots und zeigt auf, wie durch die Automation dieser Tests Methoden wie Continuous Testing perfekt unterstützt werden.

Immer mehr Unternehmen haben die Vorteile von Chatbots erkannt um ihre Produkte, ihre Marke und ihre Dienstleistungen an den Mann zu bringen. Statistiken von getresponse.com sagen durch den Einsatz von Chatbots im Dienstleistungssektor Gehaltseinsparung in Milliardenhöhen voraus. Aus diesem Grund bringen immer mehr Unternehmen, von Banken und Versicherungen bis hin zu Einzelhändlern, Chatbots zum Einsatz. Laut Gartner werden bis zum Jahr 2020 85 Prozent aller Kundeninteraktionen über Chatbots abgewickelt.

Gehaltseinsparungen in Milliardenhöhe

Giganten wie Google, Microsoft und Apple erkennen das bahnbrechende Potenzial dieser Technologie und sagen bereits das Ende von Webseiten und mobilen Applikationen voraus. Sie betreiben großen Aufwand, um mittels künstlicher Intelligenz (KI), Big Data und maschinellem Lernen der menschlichen Intelligenz so nahe wie möglich zu kommen, denn die Konversationsschnittstelle der Zukunft sind Chatbots. Studien haben ergeben, dass Verbraucher sich immer für den einfachsten verfügbaren Kanal entscheiden, wenn es darum geht, mit einem Unternehmen, einem Produkt oder einer Marke in Kontakt zu treten. Und was ist einfacher, als einen Chatbot zu fragen, wieviel Geld sich auf dem Konto befindet oder wann die Haushaltsversicherung abläuft (Abb. 1)?

Abb. 1: Chatbot im Einsatz

Fast jedes Unternehmen erklärt, dass es sich inmitten einer digitalen Transformation befindet und durch Chatbots die Tür für die Einführung neuer Geschäftsmodelle öffnet oder alte Geschäftsmodelle wiederbelebt. 2019 werden 65 Prozent der Weltbevölkerung Chatbots in Form von Messaging-Apps für die tägliche Arbeit verwenden. Doch noch stecken Chatbots vielfach in den Kinderschuhen. Insbesondere beim Testen von Chatbots wird oftmals mit unausgereiften Methoden gearbeitet. Doch es gibt vielfältige Lösungen.

Herausforderungen beim Test von Chatbots

Chatbots funktionieren anders als traditionelle Software. Das Hauptproblem für jeden Chatbot ist es, den Kontext der Benutzerkonversation zu verstehen. Drei wichtige Begriffe dürfen nicht fehlen, wenn von Chatbots geredet wird: Utterances, Intents und Entities. Äußerungen (Utterances) sind alles, was der Benutzer sagt oder schreibt. Ein Intent gibt die Absicht des Benutzers wieder. Die Eingabe von „Zeige mir die Filmliste!“ ist die Äußerung mit der Absicht (Intent) die Liste der Filme abzurufen. Eine Absicht wird durch eine Entität (Entity) geändert. Beim Intent „Zeige die Filmliste von George Clooney!“ ist „George Clooney“ die Entität, die die Absicht ändert.

Natural Language Understanding/Processing

Um den Benutzer verstehen zu können, verwendet ein Chatbot „Natural Language Processing“ (NLP). NLP ist das Herzstück des Chatbots. Ein Chatbot, der die Absicht des Benutzers nicht versteht, ist seinen Code nicht wert. Die meisten Chatbots basieren auf künstlicher Intelligenz, die durch Cloud-Dienste zur Verfügung gestellt wird und durch maschinelles Lernen ihr Verhalten ändern kann. IBM Watson, Wit.ai und LUIS gehören zu diesen NLU- (Natural Language Understanding) und NLP-Diensten. Eine nicht deterministische Komponente im getesteten System macht einen Softwaretest unbrauchbar, sofern sie den Grund für einen fehlgeschlagenen Testfall – einen Fehler in der Chatbot-Software oder eine Verbesserung des Cloud-Service – nicht erkennen können.

Der Umgang mit Nichtdeterminismus ist ein kritisches Thema beim Testen von Software. Aufgrund der Natur der menschlichen Sprache ist es unmöglich, dass Softwaretests alle möglichen Situationen abdecken. Das heißt, sie müssen versuchen einen risikobasierten Testansatz anzuwenden, der diesem Nichtdeterminismus gerecht wird.

Testdurchführung wirkt sich auf das Testergebnis aus

Bei der Testdurchführung ist zu bedenken, dass die Tests selbst Auswirkungen auf die Cloud-Dienste haben können. Wenn nämlich ein Cloud-Service immer wieder mit den gleichen Testfällen gefüttert wird, wird der Cloud-Service „maschinell“ dazulernen und die Antworten variieren. Das bedeutet, dass ein Test, der fünfmal fehlerfrei durchgeführt wird, beim sechsten Mal keinen Erfolg hat, weil der Chatbot eine nicht erwartete Antwort liefert. Bei einem Chatbot gibt es keine Interaktionsbarrieren für Benutzer. Websites und mobile Applikationen ermöglichen nur vordefinierte Interaktionsmöglichkeiten mit gängigen Komponenten der Benutzeroberfläche (anklickbare Hyperlinks, Schaltflächen, Texteingabefelder etc.). Chatbots müssen jedoch alle Arten von unerwarteten Benutzereingaben angemessen abdecken.

Was sollte getestet werden?

Abgesehen von Chatbots mit trivialen Konversationsflüssen müssen sie sicherstellen, dass ihr Chatbot sich nach der Änderung eines Anwendungsfalls (oder Konversationsschritts) wie erwartet in allen anderen Anwendungsfällen verhält. Hauptaugenmerk sollten dabei auf folgende Bereiche gelegt werden.

Verstehen: Was versteht der Chatbot? Das Testen des Verständnisses eines Chatbots befasst sich hauptsächlich mit den NLU-/NLP-Diensten. Findet er die richtigen Antworten? Das Verstehen kann in folgende Unterkategorien unterteilt werden: akzeptierte Eingaben, Smalltalk, Wörter mit Rechtschreibfehler, Grammatik, ähnliche Worte.

NLU/NLP ist aber trotzdem nur ein statistisches Vorgehen und kann keine 100-prozentige Korrektheit liefern. Der Chatbot wird also Fehlerverhalten aufweisen. Die Tests müssen demnach unbedingt damit umgehen können.

Navigation: Beim Chatbot gibt es keine Breadcrumbs, Backbuttons oder ein Suchfeld, um Benutzern zu helfen. Die Benutzer haben jedoch die gleichen Bedürfnisse, die sie bei herkömmlichen GUIs haben: Sie ändern ihre Meinung, wollen zurückgehen, wollen Schritte überspringen. Bereiten sie daher Testfälle vor, um diese Bedürfnisse abzudecken. Der Albtraum eines jeden Chatbot-Entwicklers sind Sackgassen und Konversationsschritte aus denen es kein Entkommen gibt.

Error-Handling: Sie sollten unbedingt Testfälle haben, die testen, wie der Chatbot mit Fehlern umgeht. Vor allem in der Anfangsphase sind diese sehr hilfreich, um die Qualität ihres Chatbots zu überprüfen.

Risikobasiert: Ein systematisches, risikobasiertes Testmanagement reduziert die Anzahl an Testfällen auf das Wesentliche: Es priorisiert für die Kunden wesentliche Chatbot-Funktionen und -Eigenschaften, während weniger relevante Bereiche bewusst gar nicht oder nicht systematisch getestet werden. Erst diese Priorisierung erzielt eine wirtschaftliche Kosten-Nutzen-Bilanz der Testausführung.

Automatisierte Tests

Bereits von Anfang an, sollten die sicherstellen, dass sich ihr Chatbot nach einer Codeänderung genauso verhält wie vor der Anpassung. Sie prüfen also, ob sich Regression oder Seiteneffekte in den Chatbot eingeschlichen haben. Wie bei jedem anderen Softwareentwicklungsprojekt sollte es selbstverständlich sein, dass nach jedem Build Tests automatisch ausgeführt werden. Softwareprojekte ohne kontinuierliche Integration und kontinuierliches Testen grenzen an geschäftlichen Selbstmord. Aus diesem Grund sollten sie von Beginn an auf Testautomationstools setzen. Durch die Einbettung von Tests während des gesamten Entwicklungsprozesses werden Unsicherheiten reduziert und Rückkopplungsschleifen beschleunigt, sodass sichergestellt wird, dass die Änderungen der Entwicklungsteams korrekt sind.

Testen ist die Antwort auf die Frage nach der Qualitätssicherung, Testautomation die Antwort auf die Frage nach einem Sicherheitsnetz. Jeder Entwickler schätzt eine stabile, automatisierte Test-Suite und ihre Fähigkeit, funktionierenden Code sicherzustellen. Automatisierte Tests ermöglichen es Entwicklern, schneller kostengünstige neue Features zu liefern, mit der Gewissheit, dass keine neuen Fehler eingeführt wurden. Oft scheitern Automatisierungsprojekte an unrealistischen Anforderungen. Dazu kommen technische Risiken wie etwa unzuverlässige Technologien oder unzureichende Schnittstellen bei den eingesetzten Test- und Integrationswerkzeugen. Denn die Werkzeuglandschaft für das Testen von Chatbots ist noch jung, was sich in hoher Volatilität, Wildwuchs, Fehlern und allgemeiner Unreife der Werkzeuge selbst niederschlägt.

International PHP Conference 2018

Getting Started with PHPUnit

by Sebastian Bergmann (thePHP.cc)

Squash bugs with static analysis

by Dave Liddament (Lamp Bristol)

API Summit 2018

From Bad to Good – OpenID Connect/OAuth

mit Daniel Wagner (VERBUND) und Anton Kalcik (business.software.engineering)

Testtools

BotTester: BotTester ist ein einfaches Testframework für das Microsoft Bot-Builder-Framework. Es ermöglicht das einfache Sende von Nachrichten an den Chatbot und überprüft die erwarteten Antworten. Die Tests können mit Mocha und Chai ausgeführt werden.

QMetry BOT Tester: Der QMetry BOT Tester erleichtert das Testen von Chatbots, indem es GUI-basierte und Headless Tests möglich macht. QMetry BOT ermöglicht den Tests des Interaktionsflusses komplexer Chatbots für Facebook Messenger, Skype und Slack. Es ermöglicht die Automatisierung ohne Code, und unterstützt die Erstellung der Tests mittels Assistenten-basierten Ablauf.

chatbottest: chatbottest ist ein Open-Source-Drehbuch mit 120 Fragen, mit denen sie ihren Chatbot und seine UX testen können. Ähnlich wie mit einer heuristischen Bewertung auf herkömmlichen Schnittstellen, können Sie mit diesem Drehbuch herausfinden, was Benutzer von ihrer Interaktion erwarten. Die Fragen sind in sieben Kategorien unterteilt und helfen Probleme in der Mensch-Chatbot-Interaktion zu finden.

Botium: Selenium ist der Standard zum Testen von Webanwendungen, Appium zum Testen von Smartphone-Anwendungen. Botium entwickelt sich zum Standard für Chatbots. Botium ist ein Testautomationsframework für Chatbot-Projekte und völlig unabhängig von den eingesetzten Entwicklungswerkzeugen und Plattformen. Das Open-Source-Tool spielt seine Stärke vor allem im Zusammenhang von Continuous Delivery aus. Im Folgenden stelle ich das Tool näher vor.

Selenium für Chatbots –  Einführung in Botium

Testautomationstools für Chatbots steckten 2016 noch in den Kinderschuhen, stellten doch die verschiedenen Messenger Plattformen die üblichen Testautomationsansätze vor einige Probleme. Seit 2017 werden diese Kinderschuhe immer mehr abgelegt. Einen großen Anteil daran hat die Selenium-Open-Source-Community. Nach Selenium für das Web und Appium für mobile Applikationen, wurde mit Botium die Testautomation erfolgreich in die Chatbot-Welt überführt. So wie Selenium und Appium stellt Botium eine generische API für die Interaktion mit Chatbots zur Verfügung. Dazu kommen verschiedene Tools, mit denen ein Chatbot in einer isolierten Docker-Umgebung in einer Continuous-Delivery-Pipeline ausgeführt werden kann (Abb. 2).

Unterstützte Chatbot-Technologien: Botium unterstützt eine große Anzahl an Technologien, APIs und SDKs, die in der Welt eines Chatbot-Entwicklers üblich sind. Folgenden Technologien können mit Botium automatisiert getestet werden:

  • Facebook Messenger Platform
  • Slack API
  • Microsoft Bot Framework
  • IBM Watson Conversation Service
  • Google Dialogflow
  • Voice Chatbots
  • REST APIs
  • Amazon Alexa Skills

Botium-Komponenten

Botium-API: Botium exportiert ein einfach zu bedienendes API, um das Starten, Interagieren und Stoppen Ihrer Chatbot-Anwendung zu automatisieren.

Abb. 2: Botium-Komponenten

Listing 1 zeigt das typische Hello World am Beispiel eines Facebook Messenger Chatbots:

 
const driver = new BotDriver()
.setCapability(Capabilities.PROJECTNAME, 'Hello World Chatbot')  
.setCapability(Capabilities.FACEBOOK_API, true)  .setCapability(Capabilities.FACEBOOK_WEBHOOK_PORT, 3000)  //(1)
// some other stuff
.setSource(Source.GITURL, 'https://github.com/codeforequity-at/helloWorld.git')  //(2)
.setSource(Source.GITPREPARECMD, 'npm install')
.setCapability(Capabilities.STARTCMD, 'node index.js')  //(3)
.setEnv('NODE_TLS_REJECT_UNAUTHORIZED', 0)  //(4)
.setEnv('NODE_ENV', 'dev')  //(4)
.setEnv('page_token', 'sample')  //(4)
.setEnv('verify_token', 'sample') //(4)
driver.BuildFluent()
.Start()  //(5)
.UserSaysText('Hello Chatbot!')  //(6)
.WaitBotSaysText((text) => assert('Hello World!', text))  //(7)
.Stop()  //(8)
.Clean()  //(9)

Bei diesem Test passiert Folgendes:
(1) Botium wird für den Test mit dem Facebook Messenger konfiguriert.

(2) Botium holt den Sourcecode von Github, installiert und startet den Chatbot (3).

(4) Umgebungsparameter werden eingestellt.

(5) Die Konversation mit dem Chatbot wird gestartet.

(6) Botium simuliert den Benutzer und gibt den Text ‚Hello Chatbot!‚ ein.

(7) Der Chatbot antwortet und Botium prüft ob der Chatbot richtig mit der Antwort ‚Hello World!‚ reagiert.

(8) (9) Der Chatbot wird gestoppt und das System wird in den Ursprungszustand versetzt.

Botium Chatbot Sandbox: Die Botium Chatbot Sandbox ermöglicht es, den Chatbot in einer isolierten Umgebung laufen und testen zu lassen, womit die Komplexität der verwendeten Softwareumgebung reduziert wird. Dadurch verliert die Aussage „works on my machine“ an Gültigkeit. Vor allem im Zusammenspiel in einer Continuous-Delivery-Pipeline spielt diese Architektur ihre Stärken aus.

Botium verwendet Docker um diese Sandbox zu erstellen und zu betreiben. Im Docker-Container wird der zu testende Chatbot installiert und ausgeführt. Der Chatbot verbindet sich nicht mit irgendwelchen Onlinediensten (Facebook Messenger Plattform SDK, Microsoft Bot Framework, Slack API …), sondern spricht nur mit Botium-Treiber. Der eigentliche Test läuft dann gegen diesen Container. Nach dem Ende der Testdurchführung wird der Docker-Container automatisch wieder gelöscht.

Botium Grid und der Botium Agent: Botium Grid ermöglicht die Lastverteilung auf Botium Agents, die lokal, auf anderen Maschinen oder in der Cloud ausgeführt werden. Botium Grid ermöglicht damit die parallele Ausführung der Botium-Skripte, was zu massiver Zeitersparnis bei der Durchführung führt.

Botium Configuration: Botium bietet verschiedene Möglichkeiten an, um den Chatbot und seine Laufzeitumgebung zu konfigurieren:

  • Capabilities sind ähnlich den Desired Capabilities wie sie von Selenium und Appium bekannt sind. Capabilities beschreiben unter anderem in welchem Kontext der Chatbot gestartet werden soll und wie sich Botium zu dem Chatbot verbindet.
  • Sources definieren, aus welcher Docker Registry Botium das Docker Image lädt, das dann für die Instanziierung der Docker-Container verwenden wird. Abhängig vom eingestellten Configuration Mode, ist die Angabe des Docker-Images verpflichtend oder nicht.
  • Umgebungsvariablen, die abhängig vom Operation Mode sind.
    Operation Mode: Abhängig von den eingestellten Capabilities wählt Botium eine Technologie aus, um eine Verbindung zu einem Chatbot herzustellen (Betriebsmodus). Dies ist eine der wichtigsten Einstellungen, da sie den Botium-Betriebsmodus definiert. Die gültigen Werte sind:

 

  • „docker“ zum Ausführen des Chatbot in einer Docker-Umgebung
  • „fbdirect“ für den Zugriff auf den Chatbot, der bereits in Facebook implementiert und ausgeführt wird
  • „watsonconversation“, für den Zugriff auf den Watson Konversationsdienst
  • „simpleRest“, für den Zugriff auf REST-basierte Chatbots
  • „dialogflow“ für den Zugriff auf Google Dialogflow Chatbots
  • „webspeech“ für die akustische Ausführung einer Chatbot Unterhaltung

Operation Mode „docker“: Mithilfe von Docker startet Botium den Chatbot in einer sicheren Sandbox-Umgebung. Alle Dienste, Komponenten und Datenbanken, die der Chatbot für den Betrieb benötigt, werden auch in derselben Sandbox-Umgebung gestartet, die mit einem freigegebenen privaten Netzwerk verbunden ist – der Chatbot hat keine Ahnung, dass er in einer Sandbox-Umgebung ausgeführt wird.

Abb. 3: Operation Mode „Docker“

Die Verbindung zu den Chatbot-APIs wird jedoch von Botium abgefangen. Während also der Chatbot so funktioniert, als wäre er mit der Facebook Messenger Plattform, dem Microsoft Bot Framework oder der Slack API verbunden, wird die gesamte Kommunikation mit ihnen von und zu Botium geleitet (Abb. 3). Normalerweise ist keine Änderung des Verhaltens oder der Konfiguration des Chatbots erforderlich, da Botium die Auflösung des Hostnamens im gemeinsam genutzten privaten Netzwerk manipuliert. Botium wird mit Capabilities und Source-Einstellungen initialisiert, erstellt eine Konfiguration für eine dockerisierte Umgebung und startet diese mit Docker Compose in einem privaten Netzwerk.

Beim Senden einer Nachricht an den Chatbot verbindet sich Botium innerhalb dieses privaten Netzwerks und sendet die vorgesehene Nachricht an den Chatbot, genau wie es das echte Chatbot API tun würde. Der Chatbot bemerkt den Unterschied nicht und behandelt die Eingabe. Beim Empfangen einer Nachricht stellt der Chatbot eine Verbindung zu einem der Endpunkte her, die Botium im privaten Netzwerk platziert hat, genau wie der Chatbot eine Verbindung zum realen Chatbot API herstellen würde. Der Chatbot wird den Unterschied auch hier nicht bemerken.

Continuous Testing/Botium meets Chatbot

Genug der Theorie. Im folgenden Beispiel wird anhand eines Chatbots (Abb. 4), der mit dem Microsoft Bot Framework erstellt wurde, gezeigt, wie Botium funktioniert.

Botium-Chatbot-Beispiel (Quelle: Github)

Botium Installation

Schauen wir uns noch die Botium-Installation genauer an. Voraussetzung für Botium sind Node.js, Docker und Docker Compose. Botium wird wie folgt installiert:


mkdir botium
cd botium
npm init
npm install --save botium-core

Botium Test Case

Der Test Case sieht wie in Listing 2 aus.

const BotDriver = require('../../index').BotDriver  //(1)
const Capabilities = require('../../index').Capabilities  //(2)
const Source = require('../../index').Source  //(3)

function assert (expected, actual) {  //(4)
  if (!actual || actual.indexOf(expected) < 0) {
    console.log(`ERROR: Expected <${expected}>, got <${actual}>`)
  } else {
    console.log(`SUCCESS: Got Expected <${expected}>`)
  }
}

const driver = new BotDriver()  //(5)
  .setCapability(Capabilities.PROJECTNAME, 'core-CreateNewConversation')  //(6)
  .setCapability(Capabilities.BOTFRAMEWORK_API, true)  //(7)
  .setCapability(Capabilities.BOTFRAMEWORK_APP_ID, 'my microsoft app id')  //(8)
  .setCapability(Capabilities.BOTFRAMEWORK_CHANNEL_ID, 'facebook')  //(9)
  .setCapability(Capabilities.CLEANUPTEMPDIR, false)  //(10)
  .setSource(Source.GITURL, 'https://github.com/Microsoft/BotBuilder-Samples.git')  //(11)
  .setSource(Source.GITDIR, 'Node/core-CreateNewConversation')  //(12)
  .setSource(Source.GITPREPARECMD, 'npm install')  //(13)
  .setCapability(Capabilities.STARTCMD, 'npm start')  //(14)
  .setEnv('MICROSOFT_APP_ID', 'my microsoft app id')  //(15)
  .setEnv('MICROSOFT_APP_PASSWORD', 'my microsoft app password')  //(16)
  .setEnv('NODE_DEBUG', 'botbuilder')  //(17)
  .setEnv('DEBUG', '*')  //(18)

driver.BuildFluent()  //(19)
  .Start()  //(20)
  .UserSaysText('hi bot')  //(21)
  .WaitBotSaysText((text) => assert('You\'ve been invited to a survey! It will start in a few seconds...', text))  //(22)
  .WaitBotSaysText(null, 10000, (text) => assert('Hello... What\'s your name?', text))  //(23)
  .UserSaysText('John')  //(24)
  .WaitBotSaysText((text) => assert('Hi John, How many years have you been coding?', text))  //(25)
  .UserSaysText('5')  //(26)
  .WaitBotSaysText((text) => assert('What language do you code Node using?', text))  //(27)
  .UserSaysText('CoffeeScript')  //(28)
  .WaitBotSaysText((text) => assert('Got it... John you\'ve been programming for 5 years and use CoffeeScript.', text))  //(29)
  .Stop()  //(30)
  .Clean()  //(31)
  .Exec()  //(32)
  .then(() => {  //(33)
    console.log('TEST SUCCESSFUL')
  })
  .catch((err) => {
    console.log('ERROR: ', err)
  })

(1) – (3) Laden der Botium Bibliotheken und der benötigten Klassen.

(4) Definiert die Verification-Funktion.

(5) – (10) Teilt Botium mit, welche Art von Chatbot getestet wird und wie die Verbindung stattfindet. In diesem Beispiel wird der Chatbot in einen Docker-Container geladen und das Microsoft Bot Framework wird geladen.

(11) – (18) Botium ruft den Chatbot-Code direkt aus dem Github Repository ab. Alternativ könnte das Repository zuerst geklont und aus einem lokalen Verzeichnis geladen werden. Darüber hinaus wird der Chatbot installiert und gestartet.

(19) (20) Botium Driver wird initialisiert und der Test wird gestartet.

(21) – (29) Die Konversation wird gestartet, indem eine Eingabe an den Chatbot gesendet wird (UserSaysText) oder indem auf eine Reaktion vom Chatbot gewartet wird (WaitBotSaysText). Falls der Chatbot nicht reagiert oder eine unerwartete Reaktion zeigt, wird die Konversation sofort beendet.

(30) – (32) Die Konversation wird beendet und Aufräumarbeiten werden durchgeführt.

(33) Fehlerbehandlung

Testausführung

Auf der Kommandozeile wird der Test jetzt durch folgenden Aufruf gestartet:

node botiumFluent.js

Die Ausgabe auf der Kommandozeile zeigt an, dass alle Test-Steps (Expectations) erfolgreich durchgeführt wurden und der Test erfolgreich war:


SUCCESS: Got Expected <You've been invited to a survey! It will start in a ...>
SUCCESS: Got Expected <Hello... What's your name?>
SUCCESS: Got Expected <Hi John, How many years have you been coding?>
SUCCESS: Got Expected <What language do you code Node using?>
SUCCESS: Got Expected <Got it... John you've been programming for 5 years ...>
TEST SUCCESSFUL

Fazit

Die Antwort auf die Frage „Gehört die Zukunft den Chatbots?“ ist mit einem klaren Ja zu beantworten. Die Chatbot-Revolution befindet sich zwar noch in der Anfangsphase, aber die Begeisterung bei Kunden und Unternehmen wächst und wächst. Immer mehr Unternehmen investieren in die kleinen Helfer, um ihre Produkte und Dienstleistungen in den Mittelpunkt zu stellen. Chatbots verändern die Art und Weise, wie Unternehmen mit Kunden kommunizieren.

Derzeit steckt das Testen von Chatbots, vor allem das automatisierte Testen, noch in den Kinderschuhen. Es gibt nur ein paar Frameworks, die hier unterstützen. Sieht man sich den Werdegang von Selenium und Appium an, so wird hier kein Weg an Botium vorbeiführen.

PHP Magazin

Entwickler MagazinDieser Artikel ist im PHP Magazin erschienen. Das PHP Magazin deckt ein breites Spektrum an Themen ab, die für die erfolgreiche Webentwicklung unerlässlich sind.

Natürlich können Sie das PHP Magazin über den entwickler.kiosk auch digital im Browser oder auf Ihren Android- und iOS-Devices lesen. In unserem Shop ist das Entwickler Magazin ferner im Abonnement oder als Einzelheft erhältlich.

Unsere Redaktion empfiehlt:

Relevante Beiträge

X
- Gib Deinen Standort ein -
- or -