loader

Aplikacja Hellobot, personalizowany voicebot, jest innowacyjnym projektem opartym o komendy głosowe, które są jedyną formą komunikacji użytkownika i stanowią interfejs głosowy (voice user interface) oprogramowania. Naszym celem było zbudowanie platformy umożliwiającej uruchamianie botów głosowych automatyzujących procesy biznesowe w kanale głosowym. Specyfika tego nowoczesnego rozwiązania niosła za sobą konieczność zastosowania do niego odpowiednich technik i metod testowania, ponieważ nie jest to typowa aplikacja internetowa czy mobilna.

Testy komend głosowych

Testy komend głosowych są zależne od wielu czynników, między innymi od: siły głosu, doboru słownictwa czy dźwięków współtowarzyszących. Niesie to za sobą duże ryzyko wystąpienia awarii w oprogramowaniu. W tego typu rozwiązaniu ciężko zastosować klasyczne/powszechne narzędzia, techniki oraz metody wykorzystywane podczas testów backendu czy frontendu aplikacji internetowych, mobilnych czy desktopowych.

Nasze innowacyjne rozwiązanie można podzielić na cztery podstawowe części:

  • ASR (automatic speech recognition) lub STT (speech to text)
  • Sztuczna inteligencja (Sieć neuronowa)
  • TTS (Speech to text)
  • Scenariusz rozmowy

Ponadto, testowania wymagała także cała część telekomunikacyjna rozwiązania.

ASR

ASR jest odpowiedzialny za wprowadzanie danych do aplikacji – rozpoznaje mowę i zamienia ją na łańcuch znaków rozumiany przez bota. Testy tego modułu przysparzają wielu trudności i podlegają wielu zmiennym ze względu na fakt, że każdy z nas ma inny ton, barwę czy siłę głosu, a rozmowa może być prowadzona w środowiskach o zróżnicowanym natężeniu hałasu otoczenia. Dodatkowo fonetyka języka polskiego nie ułatwia sprawy – dobrym przykładem jest słowo “TAK”. Zawiera ono dwie głoski bezdźwięczne: “T” i “K”, przy których wypowiadaniu nie są używane struny głosowe, przez co są zdecydowanie ciszej artykułowane niż głoska “A” i mogą być zagłuszane przez otoczenie. 

AI

Sztuczna inteligencja odpowiada za interpretację zrozumianego przez ASR łańcucha znaków. Jest ona niezbędna, ponieważ użytkownik może przeprowadzić rozmowę na wiele różnych sposób. Rozmówca sam definiuje co odpowie, a dzięki rozbudowanemu słownictwu naszego języka, ma możliwość udzielenia takiej samej znaczeniowo odpowiedzi na wiele różnych sposobów np. dla potwierdzenia przybycia na umówioną wizytę, możemy wymyślić kilkanaście zwrotów bliskoznacznych, których później musimy nauczyć naszą sieć neuronową, a mimo to możemy być pewni, że wśród setek użytkowników naszego bota znajdą się tacy, którzy będą bardziej kreatywni od nas i użyją jeszcze innego sformułowania.

TTS

W naszej aplikacji komunikacja odbywa się zarówno w kierunku użytkownik-voicebot, jak i voicebot-użytkownik. Ta druga możliwa jest dzięki wykorzystaniu TTS, który zmienia łańcuch znaków z wypowiedzią bota na mowę (plik audio). Pozwala to na przekazanie użytkownikowi, wszelkich niezbędnych informacji w formie głosowej. Warto podkreślić, że tutaj również kryje się wiele pułapek, na które tester musi zwrócić szczególną uwagę, począwszy od sposobu wypowiadania dat, kwot pieniędzy, numerów telefonów czy nazw własnych i nazwisk oraz ich odmiany. 

Scenariusz rozmowy 

Ta część aplikacji posiada zdefiniowany przebieg rozmowy, który pozwala na spełnienie potrzeb biznesowych korzystania z naszego voicebota. To w tym miejscu definiujemy czy chcemy, aby rozmowa dotyczyła np. pytania o potwierdzenie umówionej wizyty czy informowania o promocjach. Więcej informacji  o możliwych scenariuszach, które może obsłużyć nasz bot do znalezienia tutaj

Testowanie 

W związku z tym, że jest to innowacyjny projekt wszystkie wyżej opisane moduły były dla nas czymś nowym i stanowiły pewnego rodzaju wyzwanie. Ich złożoność sprawiła, że testowanie rozwiązania nie należało do łatwych zadań. Konieczne było dostosowanie procesu testowego do niecodziennego charakteru projektu, co pozwoliło na znalezienie defektów, które znacznie różnią się od typowych zgłoszeń, z jakimi spotykają się testerzy podczas weryfikacji aplikacji mobilnych czy internetowych. 

Werifikacja scenariusza rozmowy

Bardzo istotną i specyficzną kwestią podczas testowania była weryfikacja scenariusza rozmowy, którą voicebot miał przeprowadzić z użytkownikiem. Wyników przeprowadzonych testów nie można było jednoznacznie przypisać do jednej z kategorii: “działa” lub ”nie działa”. Stanowiły one raczej otwartą kwestię wymagającą pogłębionej analizy. W dużej mierze sprowadzała się ona do szukania odpowiedzi na pytanie, dlaczego użytkownikowi nie udało się zrealizować scenariusza i zakończyć go sukcesem. Zadaniem testera było znalezienie przyczyn niepowodzenia oraz weryfikacja czy i dlaczego użytkownik nie zrozumiał, co ma powiedzieć. Niezwykle istotna podczas testów scenariusza rozmowy była także analiza formy jego przebiegu. W tym aspekcie ważne było odpowiedzenie między innymi na pytania: czy scenariusz jest jasny i przejrzysty, czy może jest ułożony w sposób, który wprowadza użytkownika w błąd oraz, jeżeli scenariusz jest niejednoznaczny i mylący, to jak go można naprawić. Jeśli bot będzie tłumaczył użytkownikowi krok po kroku, co należy odpowiedzieć, to scenariusz zrobi się zbyt długi i męczący dla rozmówcy. Jeżeli jest zbyt szybki, to znowu część osób nie będzie wiedziało w dalszym ciągu jak z niego korzystać

Testy alfa i beta

Przy ostatniej fazie testów, szukając odpowiednich sposobów testowania naszej aplikacji, zdecydowaliśmy się na zastosowanie rozwiązań stosowanych głównie w branży gier komputerowych. Po przeprowadzeniu testów w ramach zespołu projektowego i sprawdzeniu stabilności bota wdrożona została faza alfa i beta testów. W pierwszej fazie testerzy, którzy znali tylko podstawowe założenia biznesowe, mieli przejść scenariusze rozmowy oraz przekazać nam swoje spostrzeżenia i uwagi dotyczące działania aplikacji. Natomiast druga została przeprowadzona na większą skalę i angażowała w testy bardzo dużą liczbę osób. 

Analiza pierwszych doświadczeń

Istotną kwestią, o której warto wspomnieć, było zrealizowanie założenia, że każdy, kto nawet pierwszy raz będzie rozmawiał z botem, powinien z łatwością zakończyć z sukcesem scenariusz. Użytkownik podczas rozmowy trwającej od 30 sekund do minuty nie ma  zbyt wiele czasu i możliwości do nauki, w jaki sposób powinien komunikować się z botem. Dlatego ważne było zebranie i analiza doświadczeń osób, które z botem rozmawiały po raz pierwszy. Mały zespół testerów nie miałby możliwości zebrania tak rozbudowanych danych, ponieważ nie byłby w stanie odtworzyć sposobu wypowiadania się i zachowań dużej liczby osób.

Podsumowanie

Przeprowadzenie testów przez pokaźną grupę niezależnych testerów pozwoliło na uzyskanie wystarczająco reprezentatywnej próby i danych, umożliwiając prowadzenie statystyk, których analiza przełożyła się na zdobycie wiedzy niezbędnej do wdrożenia usprawnień produktu. W ten sposób dzięki zdobytej wiedzy udało nam się usprawniać Hellobota. Warto podkreślić, że wdrożenie ulepszeń nie kończy fazy utrzymania, ponieważ nieustannie pracujemy nad tym, by nasze innowacyjne rozwiązanie było jeszcze bardziej perfekcyjne. Voicebot nawet na środowisku produkcyjnym cały czas może być douczany i testowany na potrzeby nowych fraz wypowiadanych podczas rozmowy przez użytkowników systemu.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *