Se ha denunciado esta presentación.
Se está descargando tu SlideShare. ×

QA Fest 2019. Ірина Ярославцева. Майбутнє вже тут, або як тестувати систему обробки природньої мови у чатботах

Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Cargando en…3
×

Eche un vistazo a continuación

1 de 64 Anuncio

QA Fest 2019. Ірина Ярославцева. Майбутнє вже тут, або як тестувати систему обробки природньої мови у чатботах

Ще якихось 3 роки назад важко було уявити, що роботи зможуть увійти в життя людей і полегшити виконання повсякдених речей. Сьогодні штучний інтелект частково замінив працю людей, допомагаючи бізнесу досягати своїх цілей і стаючи пріорітетним напрямом розвитку.
Зі збільшенням попиту на чатботи, збільшується кількість інструментів для їх розробки, змінюються технології та ускладнюються задачі, які робот повинен виконувати. Розмови клієнтів з чатботом заощадять близько $8 мільярдів до 2022 року завдяки системам NLP (обробка природньої мови), яка є основною складовою частиною чатботів. В залежності від задач, які виконує NLP, ціна помилки може бути дуже вагомою.
Доповідь розкриє тему обробки природньої мови, як частину чатботів та побудови стратегії тестування моделей: яким чином розподілити пріорітети, які задачі можна автоматизувати і як успішно випускати чатботи в умовах нескінченної гонки за інноваціями.

Ще якихось 3 роки назад важко було уявити, що роботи зможуть увійти в життя людей і полегшити виконання повсякдених речей. Сьогодні штучний інтелект частково замінив працю людей, допомагаючи бізнесу досягати своїх цілей і стаючи пріорітетним напрямом розвитку.
Зі збільшенням попиту на чатботи, збільшується кількість інструментів для їх розробки, змінюються технології та ускладнюються задачі, які робот повинен виконувати. Розмови клієнтів з чатботом заощадять близько $8 мільярдів до 2022 року завдяки системам NLP (обробка природньої мови), яка є основною складовою частиною чатботів. В залежності від задач, які виконує NLP, ціна помилки може бути дуже вагомою.
Доповідь розкриє тему обробки природньої мови, як частину чатботів та побудови стратегії тестування моделей: яким чином розподілити пріорітети, які задачі можна автоматизувати і як успішно випускати чатботи в умовах нескінченної гонки за інноваціями.

Anuncio
Anuncio

Más Contenido Relacionado

Similares a QA Fest 2019. Ірина Ярославцева. Майбутнє вже тут, або як тестувати систему обробки природньої мови у чатботах (18)

Más de QAFest (20)

Anuncio

Más reciente (20)

QA Fest 2019. Ірина Ярославцева. Майбутнє вже тут, або як тестувати систему обробки природньої мови у чатботах

  1. 1. Future is here or how to test NLP in chatbots Iryna Yaroslavtseva
  2. 2. ● 5 years of testing; ● 3+ years of testing chatbots; Cherkasy, Ukraine IRYNA YAROSLAVTSEVA
  3. 3. of businesses want chatbots by 2020
  4. 4. Rule based AI based
  5. 5. Rule based AI based
  6. 6. Current project tech stack NLPStructure Messenger
  7. 7. “Show me yesterday’s financial news” Utterance
  8. 8. “Show me yesterday’s financial news” Utterances ● Delivery ● Thanks! ● Book me a flight to Rio next week. ● I already have a phone 9. What the plan going to cost me ulimited switching over from crickety eyes you have anything without 1st month.
  9. 9. “Show me yesterday’s financial news” Intent: showNews Verb Noun
  10. 10. “Show me yesterday’s financial news” ● checkCoverage ● buyIphone ● findBus Intents ● bookFlight ● changeLine ● bookAppointment
  11. 11. “Show me yesterday’s financial news” Entity Entity
  12. 12. Intent ● bookFlight ● checkCoverage ● buyIphone Entities ● City, Date ● Location, Country ● Model, Color, Capacity
  13. 13. DISCOVERY MODEL TRAINING TESTING LEARNING ON PRODUCTIO N
  14. 14. DISCOVERY
  15. 15. Key requirements ● Bot language ● Feature scope ● Target audience (user’s profile)
  16. 16. Key requirements ● Bot language ● Feature scope ● Target audience (user’s profile)
  17. 17. Key requirements ● Bot language ● Feature scope ● Target audience (user’s profile)
  18. 18. MODEL TRAINING
  19. 19. TESTING
  20. 20. Challenges ● Unlimited inputs quantity ● No definition of quality ● No clear exit criteria Solutions ● Risk analysis ● Data analysis
  21. 21. Challenges Solutions ● Unlimited inputs quantity ● No definition of quality ● No clear exit criteria ● Risk analysis ● Data analysis
  22. 22. Challenges Solutions ● Unlimited inputs quantity ● No definition of quality ● No clear exit criteria ● Risk analysis ● Data analysis
  23. 23. Challenges Solutions ● Unlimited inputs quantity ● No definition of quality ● No clear exit criteria ● Risk analysis ● Data analysis
  24. 24. Challenges Solutions ● Unlimited inputs quantity ● No definition of quality ● No clear exit criteria ● Risk analysis ● Data analysis
  25. 25. Structured response Turning on / Turning off NLP Lost in the flow Business restrictions Profanity words Similar intents Default answer Acronyms Informal shortening Shortening in writing Emojis Slang words Intent + other words Intent + small talk Intent + other sentences Misspellings Synonyms Similar phrases NLP testing checklist
  26. 26. ● Order pizza = Order piza ● Change day to Monday = Change day to Mobday ● Send picture = Senf picture Misspellings
  27. 27. ● New offers = New deals ● Some help = Some support = Some assistance ● Order iPhone = Purchase iPhone Synonyms
  28. 28. ● What benefits do you have? = Show me the advantages ● Where is my parcel? = Track my order ● Make a reservation on Friday = Book appointment, Friday Similar phrases
  29. 29. Can I order bundle of two headphones, one for me and one for my dad? Intent + other words I saw your promo, how to order the headphones orderHeadphones
  30. 30. Hello, find my bus station please. Intent + small talk findStation Morning! Nearest bus station. Thanks.
  31. 31. My inbox is a dumpster! I'm like flooded with all the messages. How can I unsubscribe ? Intent + other sentences unsubNews
  32. 32. ● Lol - laugh out loud ● Asap - as soon as possible ● Np (No Problem), But how can I send my booking confirmation Acronyms confirmBooking
  33. 33. Informal shortening ● Gonna - going to ● Lil’ - little ● Wanna - want to
  34. 34. Formal shortening ● I’m - I am ● Smth. - something ● I’ve - I have
  35. 35. Top: 👍 😀 😂 ❤️ Emoji Banned: 🔪 🖕 🍑 🍆 💩 🖕🖕🌈 + 🚫 ⛪️ +
  36. 36. ● Kudos! = praise and honor received for an achievement ● You rock! = You're awesome (at something) ● On fleek = smooth, nice, sweet Slang words
  37. 37. ● I’d like to order dress ● I’d like to know where is my dress? Similar intents trackOrder makeOrder
  38. 38. ● Sorry, I didn’t get that. Try again ● If you didn’t find what you wanted feel free to see information in the Main Menu or type ‘show me main menu’ Default (None) intent
  39. 39. Score for None intent ● If utterance score < 0.3 ● Avoid repetitions none
  40. 40. Dogs suffer = stop animal testing Business restrictions getInfo
  41. 41. ● Bullshit ● Dammit ● Go to hell Profanity
  42. 42. ● Friday, 29 May 2015 05:50:06 ● Test@test.com ● $ 1,234.60 = 1 234,6 Structured response
  43. 43. ● Feedback forms ● Free form surveys Turning off/ turning on NLP
  44. 44. Lost in the flow
  45. 45. Lost in the flow
  46. 46. ● Intents - 3 ● Utterances - 30 ● Checklist based testing ≈ 8 hours Checklist execution time
  47. 47. LEARNING ON PRODUCTION
  48. 48. ● Gathering the stats ● Analyzing what to add/change/delete in NLP model ● Training of the new version of NLP ● Testing ● Monitoring the results Learning on production
  49. 49. ● Gathering the stats ● Analyzing what to add/change/delete in NLP model ● Training of the new version of NLP ● Testing ● Monitoring the results Learning on production
  50. 50. ● Gathering the stats ● Analyzing what to add/change/delete in NLP model ● Training of the new version of NLP ● Testing ● Monitoring the results Learning on production
  51. 51. ● Gathering the stats ● Analyzing what to add/change/delete in NLP model ● Training of the new version of NLP ● Testing ● Monitoring the results Learning on production
  52. 52. ● Gathering the stats ● Analyzing what to add/change/delete in NLP model ● Training of the new version of NLP ● Testing ● Monitoring the results Learning on production
  53. 53. New project roles NLP model training Statistics Bot flow Copy NLP model training Statistics CONVERSATIONAL DESIGNER CONTENT MANAGER
  54. 54. ● Chatbot project = regular project ● NLP is the only unique component ● Analyze risks and statistics to enforce effective and efficient testing QA takeaways
  55. 55. ● Chatbot project = regular project ● NLP is the only unique component ● Analyze risks and statistics to enforce effective and efficient testing QA takeaways
  56. 56. ● Chatbot project = regular project ● NLP is the only unique component ● Analyze risks and statistics to enforce effective and efficient testing QA takeaways
  57. 57. NLP testing checklist
  58. 58. Thank you!
  59. 59. Questions
  60. 60. About me Facebook LinkedIn

Notas del editor

  • Доброго дня.

    Сьогодні я б хотіла розповісти про тестування NLP в чатботах. І відразу розшифруємо абревіатуру NLP - від англійських слів Natural Language Processing - системи обробки природньої мови.
  • Пару слів про мене і мій досвід в данному питанні.

    Я працюю в компанії Master of Code Global, яка фокусно займається розробкою конверсейшнл додатків, які об’єднують у собі чатботів та інтеграції зі сторонніми сервісами (таких як платіжні системи, клієнтські СіЕрЕм, AR ефекти). Також ми маємо експертизу в eCommerce продуктах, веб та мобайл розробці.

    Маю 5 років досвіду взагалі в тестуванні, 3 з яких саме в тестуванні чатботів.
  • За цей час мала змогу співпрацювати з багатьма компаніями, які представлені різними доменами.

    Наприклад, компанія T-Mobile, яка працює працює в області мобільного зв’язку, косметичний бренд Aveda та спортивна організація Всесвітня ліга серфінгу.
  • Власне, чому я вважаю тему тестування NLP актуальною?

    Ще якихось 3 роки назад важко було уявити, що розумні боти зможуть увійти в життя людей і полегшити виконання повсякдених задач.

    Але вже сьогодні ми бичимо, що штучний інтелект вже частково замінив працю людей, допомагаючи бізнесу досягати своїх цілей і стаючи пріорітетним напрямом розвитку.

    За даними ресерча від Оракл близько 80% бізнесів відповіли, що хочуть мати чатбота до 2020 року.

  • Перші спроби зарелізити API для побудови чатботів були на таких месенджерах, як WeChat, Телеграм.

    Пізніше до них приєднались Facebook messenger, Slack, Skype, ABC та інші.

    І вже за кілька років майже кожен мессенджер має підтримку ботів.

    Використання чатботів для бізнесу стає майже необхідністю, адже вони хочуть бути там, де є їхні потенційні клієнти, тобто всередині мессенджингових платформ.

    Але повної та змістовної інформації саме по тестуванню НЛП і чатботів дуже мало, тому моя мета поділитись нашим досвідом і дати корисну і цікаву інформацію.
  • Основний челедж при створенні чатбота - це обробка запитів людини.

    Це можна зробити двома способами.

    Перший - задати строгий набір команд у вигляді “запитання-відповідь”, так званих команд.

    Але в такому випадку бот буде вузьконаправлений і обмежений.

    Наприклад, якщо юзер каже Buy dress, бот відповідає галереєю з товарами.

    Але якщо юзер напише Buy A Dress, бот відповість помилкою, адже саме такого правила у списку не було.

    Такі системи називаються Ruled based і їх використання можна порівняти з запитами на веб сторінку.

    URL адреса повинна мати певний набір та порядок символів, і у випадку зайвого символа ми побачимо 404 помилку.
  • Інший спосіб, на якому ми зосередились, - це підключити машинне навчання, яке дозволяє навчити бота розуміти юзера по кільком ключовим словам.

    Тоді навіть з довгого речення: “Hi, I want to buy a dress”, бот зможе розпізнати намір і відповісти підходящим контентом.

    Такі системи називають AI based, а в їх основі лежать моделі NLP - від англійських слів Natural language processing - системи обробки природньої мови.

    Саме про такі системи і їх тестування далі і піде мова.



  • Зараз на ринку достатньо NLP платформ, які пропонують готові рішення девелоперам.

    Наприклад, Luis від Microsoft, DialogFlow від Google, Lex від Amazon та інші.

    Усі вони мають свої плюси та мінуси.

  • Ми на своєму поточному проекті використовуємо Luis від Microsoft як НЛП платформу і ChatFuel як платформу для побудови структури бота (текстових блоків, зображень, кнопок).

    Потім все це інтегрується в FB Messeger, і вже кінцеві користувачі спілкуються з готовим ботом безпосередньо всередині аплікейшена.

    На даному проекті ми використовували і інші НЛП платформи: експериментували з вбудованим НЛП від ChatFuel, тестували роботу DialogFlow від Google.

    Але Luis від Microsoft показав кращі результати, тому ми зупинились на ньому.

    Який би інструмент ви не вибрали, усі вони об’єднуються спільною базою понять для тренування моделі.
  • І для того щоб вибрати найоптимальніші методи тестування, необхідно ознайомитись з цими поняттями.

    Почнемо з поняття Utterance - в перекладі з англійської мови - висловлювання.

    Utterance - це все те, що юзер може написати в бот.
  • Це може бути символ, слово, словосполучення, фраза, речення, абзац. Все, що завгодно.
  • Друге поняття, яке необхідно розглянути, - це інтент (в перекладі з англійської мови - намір).

    Інтент - це бажання юзера викликати в боті певну дію або переглянути певний контент.

    Наприклад в данному висловлюванні наміром юзера буде переглянути финансові новини за минулий день.

    Зазвичай, інтенти записуються у вигляді пари: дієслово+іменник для їх швидкої ідентифікації з-поміж схожих інтентів.

    Для данного прикладу це буде пара showNews.
  • Кілька прикладів інтентів, щоб ви побачили як вони утворюються і які бувають в залежності від функцій бота: наприклад, bookAppointment, checkCoverage, buyIphone.
  • І останнє поняття - це ентіті (в перекладі з англійської - сутність).

    Ентіті - це слова чи словосполучення, які надають додаткової інформації до наміру користувача.

    Наприклад, в данному випадку додатковою інформацією до наміра переглянути новини буде категорія новин та часовий період, за який треба ці новини відфільтрувати: тобто це слова financial та yesterday.
  • Ентіті описують усі властивості навколишніх об’єктів та процесів, тому майже кожен інтент може мати свої ентіті.

    Наприклад, маємо інтент buyIphone - ентіті для нього будуть Model, Color, Capacity, Price.
  • Це були основні поняття, а тепер перейдемо до процесів.

    Робота з НЛП триває протягом усього циклу розробки і поділяється на 4 фази: діскавері, тренування модеоі, власне тестування та навчання на продакшені.
  • Почнемо з перешої фази - діскавері.
  • Тестування НЛП (як і будь якого іншого проекту) розпочинається якомога раніше, ще на фазі збору вимог.

    Основні пункти, які необхідно обговорити до початку розробки і які будуть впливати на тестування це наступні.

    Перше - це мова. Може бути multy-language бот, або якась іноземна мова, яка вам невідома.

    Це може вплинути на вибір НЛП інструмента (адже не кожен з них підтримує усі мови); на кількість ефорда, який треба закласти в тест-план; також може вплинути на залучення додаткових спеціалістів в команду у зв’язку з іноземною мовою.
  • Другий пункт, але не менш важливий - це feature scope.

    Може статися так, що клієнт захоче покрити через діалоги лише Смол ток, а основні фічі розробити як кліки по кнопкам, а може бути навпаки - усі бізнес кейси заімплементити через діалоги з ботом (тобто використання НЛП).

    Це вплине на к-сть атеренсів, інтентів в моделі і на час розробки та тестування.
  • І останнє, але не менш важливе - це цільова аудиторія.

    Це може бути стать, вік, геолокація, соціальне становище.

    Усе, що допоможе вибрати валідні висловлювання для тренування і тествання.
  • Переходимо до наступної фази - тренування моделі.
  • Після того, як затвердили усі вимоги, ми приступають до наповнення моделі атерансами (словами, реченнями, словосполученнями), виділяють інтенти та ентіті.

    На скріншоті показано як виглядає дашборд НЛП платформи на прикладі Luis від Microsoft.

    Ми бачимо один інтент showNews, три атеранси і виділені ентіті.

    Простими словами система працює наступним чином: якщо юзер пише find financial news, атеренс, якого немає в цьому списку, система все одно повинна проматчити його на цей інтент.

    Ми працюємо з нативними спікерами, які допомагають з підбором найоптимальніших фраз.

    Також в цьому можуть допомогти спеціалісти зі сторони клієнта, які знають специфічну термінологію свого домена або знають як саме користувачі спілкуються з їх бізнесом.
  • Переходимо безпосередньо до фази тестування.
  • Основною складністю тестування НЛП є те, що важко визначити класи еквівалентності і вибрати представників з цих класів серед нескінченної к-сті інпутів (символів, слів, речень).
  • Також є ризик витратити забагато часу на тестування через відсутність чітких критеріїв якості.

    Завжди будуть баги - тобто завжди будуть ситуації, коли НЛП дасть відповідь не таку, яку очікуємо.
  • І як результат неможливо узгодити і затвердити критерії закінчення тестування.
  • Але що дозволяє нам ефективно тестувати незалежно від цих проблем, це те що використовуємо наступні два методи.

    По-перше, ми використовуємо аналіз ризиків і на основі нього виставляємо пріорітети.

    Це допомагає нам знайти підходящі приклади для тестування, зробити смоук чи регрешн критичних ділянок і швидко дати фідбек стейкхолдерам про проблеми на проекті.
  • І другий солюшен - це аналіз даних.

    Ми збираємо статистику усіх юзерських інпутів в боти і виділяємо топ випадків, які варті уваги.
  • Результатом роботи над статистикою та ризиками став так званий QA basic чекліст, який покриває основні тестові ідеї.

    Чекліст має чимало цікавих випадків, про які далі піде мова.

    Приклади будуть англійською мовою, але усі пункти підходять до будь якої з мов.
  • Найперше з чим ми працюємо - це перевірка помилок.

    НЛП інструменти мають вбудовану функцію перевірки помилок, тому немає потреби вводити усі варіанти написання слів з помилками.

    Але якщо ми говоримо про підбір слів для тестування - тут необхідно використати аналіз ризиків та вибрати найкритичніші варіанти.

    Наприклад, якщо у нас бот, основною функцією якого є доставка піцци, то важливо перевірити усі варінти написання слів Order та pizzа.
  • Також пріорітетними є кейси використання слів-синонімів.

    Тут вам допоможуть численні словники.

    І фокусуватись необхідно на найбільш уживаних словах.

    Наприклад, фрази new offers і new deals - повинні вести юзера на однаковий інтент.

    Іноді розповсюджених слів-синонімів може бути більше: наприклад, help, support, assistance.
  • Можуть бути цілі фрази-синоніми.

    Але на відміну від слів-синонімів, для яких в НЛП інструментах є окрема таба, де можна їх додати усі через кому, з фразами так не вийде.

    Адже слово Have не є синонімом в загальному значенні до слова Show, але фрази Show me your advantages і What benefits do you have? повинні бути синонімічними, тобто вести на однакову відповідь.
  • 1 - Наступні кейси для перевірки - це більш довші речення, де крім ключових фраз є ще інші слова, які не несуть суттєвої ваги (так званний шум).
    2 - Наприклад, обидва речення повинні вести на інтент orderHeadphones, а решту слів система повинна проігнорувати.
  • Схожий випадок - це речення, у яких крім ключових слів є ще фрази смол току.

    Кейс майже як попередній, але ми тестуємо його окремо, тому що фрази смол току належать окремому інтенту smallTalk.

    І нам необхідно перевірити, що фраза hello, find my bus station please поведе юзера саме на інтент findStation, а НЕ на інтент smallTalk.
  • Аналізуючи юзерські інпути, ми помітили досить багато довгих і неструктурованих атеренсів.

    Зазвичай, по контексту можна зрозуміти, що юзер не знав, що спілкується з ботом і висловлював думки так, ніби до живого агента сапорта.

    В цьому випадку задача бота продовжувати відповідати юзеру адекватно і намагатись допомогти, розпізнавши навіть з неструктурованого висловлювання ключові слова.

    А наша задача це перевірити.
  • В нашому столітті, переповненому інформацією, часу на спілкування і на листування залишається все менше і менше.

    Як би це парадоксально не звучало, але чим більшою кількісю інформації людина володіє, тим більше способів її скорочення вона шукає.

    Одним з найдієвіших способів скоротити мову є використання акронімів.

    Зараз вони є повсюди: в діловому та повсякденному спілкуванні, в міжнародних термінах та технічній документації, тому не дивно, що юзери будуть їх використовувати під час розмови з ботом.

    Акронім може бути одиничним атеренсом (наприклад, asap, lol), або частиною більш повного атерена - необхідно перевіряти обидва випадки.
  • Ще одним дієвим способом скоротити висловлювання - це використання скорочень на письмі.
    Скорочення можуть бути неформальні і формальні.
    Пару прикладів неформальних скорочень: lil - від слова little, wanna від слів want to.
  • І формальні скорочення, які є більш розповсюдженними, адже є затвердженими правилами на письмі.
    Для того, щоб коректно перевірити їх вживання, треба знати їх розшифровку.
    Наприклад: smth. Скорочення від something, I’ve - скорочення від I have.
  • Разом з актонімами і скороченнями, ще одне явище увійшло в письмову мову - це вживання емодзі.

    Вони стали настільки популярними, що у 2015 році Оксфордський словник назвав словом року - емодзі, який плачу від сміху.

    Але використання емодзі - це окрема тема для ресерча, адже ми знаємо, що жести можуть означати різне для різних культур і країн, тому треба знати свою аудиторію, щоб не зробити помилок.

    Ми перевіряємо топ емодзі і в залежності від вимог, перевіряємо заборонені емодзи: які відображають релігійні чи расові образи, зброю, наркотики чи інтерпритуються, як чистини тіла.
  • Вживання сленгу - також розповсюджений випадок.

    Сленг - емоційна і яскрава складова лексики будь якої мови.

    Ми знаємо наш айтішний сленг, що є різновидом професійного сленгу; також є студентський, молодіжний, дитячий сленг, які є найдинамічнішими через швидку зміну поколінь.

    Сленгових фраз велика кількість, тому треба знати вашу цільову аудиторію.

    Вивчаючи вік, стать, профисію можна вибрати підходящі варіанти, які будуть притаманні вашим юзерам.
  • Іноді трапляються ситуації, коли одне і те саме слово повинно бути ключовим у різних інтентах, які відрізняються між собою.

    Відрізняються настільки, що повести юзера на інший інтент - рівноцільно його втраті.

    Наприклад, якщо юзер зробив покупку, не дочекався вчасної доставки і запитує у бота I’d like to know where is my dress, що є trackOrder інтентом, то повести його на makeOrder інтент буде вкрай недоречно.

    Юзер навряд чи зробить ще одну покупку, але знервований він точно покине бот і піде шукати сапорт на вебсайті.

    Іноді такі кейси місматчинга не є критичними, але вони все одно покажуть недосконалість НЛП і погіршать експірієнс юзера в боті.

  • Незважаючи на те, що НЛП модель можна натренувати доволі якісно, все одно бутуь кейси, коли юзер буде писати фрази, які є поза межами скоупа функціональності бота.

    Наприклад, якщо бот займається продажем канстоварів, він навряд чи розповість щось юзеру про погоду.

    В таких випадках використовують None (Default) інтент - це резервний інтент, на який система буде відправляти все те, що не проматчилось з жлдним з існуючих інтентів.

    По змісту він може звучати як короткий меседж Sorry I didn’t get that, try again, а може бути значно довшим і містити повний мануал того, зо юзер може зробити в боті.
  • Також в залежності від вимог можна налаштувати мінімальний скор для того, щоб відображати юзеру цей дефолтний меседж.

    Кожному атеренсу система дає скор, ймовірність попадання в той чи інший інтент.

    Наприклад, фраза order iPhone має скор 1 для попадання в інтент orderIphone і скор 0,1 наприклад для попадання в інтент orderPizza.

    Щоб не було таких місматчингів можна задати правило: якщо атерант скор менший 0,3, наприклад, вести юзера на дефолт меседж.

    Але тут треба бути обережним і перевіряти уважно, адже може бути ситуація, що кожен юзерський інпут буде вести на дефолт меседж і юзер буде злим кожно разу читаючи, Sorry I didn’t get that.
  • Цікавими є кейси перевірки випадків, пов’язаних з бізнес специфікою клієнта.

    Наприклад, бот косметичної компанії повинен усі фрази, які пов’язані з тестуванням косметичної продукції на тваринах відправляти на специфічний інтент з меседжом, який пояснить юзеру політику компанії щодо цього питання.

    У випадку місматчингу на інший інтент, особливо якщо це веселий смол ток, компанія може бути скомпроментована і понести збитків.

    Тому такі критичні кейси треба перевіряти якомога прискіпливіше і виділяти на них більше часу.
  • Окремий скоуп на тестування - це лайливі слова.

    В залежності від вимог, бот може мовчати у відповідь, вести на дефолтний інтент або на меседж, який пояснить, що бот спілкується з ввічливими юзерами.

    Так як таких слів багато - збираємо топ зі статистики.

    Перевіряти їх треба як одиничний інтент і також в поєднанні з іншими фловами, фразами смол току.
  • Іноді для певних фіч нам необхідно відправляти атеранс юзера на бекенд для обробки.

    В таких випадках ми просимо ввести такі інпути в певному форматі.

    Наприклад, якщо це номер автобуса - ми очікуємо натуральне число.

    Або якщо юзер вводить ціну: він може ввести у вигляді десяткового дробу, або цілого числа, може використати символ валюти, або ж відправити без нього.

    В таких випадках ми використовуємо так званні пребілд ентіті, які пропонує НЛП платформа і які допомагають розпізнавати такий структурований контент.

    Тестування таких видаків дещо сходе на перевірку вебформи.

    Кілька прикладів такого структурованого контенту: це може бути імейл, телефон, дата час.
  • Незважаючи на те, що френдлі бот повинен постійно вести діалог з юзером і підтримувати його зацікавленність, існують такі флоу, де бот (а точніше НЛП) повиннен мовчати.

    Наприклад, фіча фідбек форма - які б ключові слова і фрази не були б в інпуті юзера, бот усім повинен відповісти однаковим Thank you месенджем. І нам необхідно це перевірити.

    В таких точках флоу ми ставимо так званні заглущки, які вимикають вмикають НЛП назад.

    Але тут є проблема з непослідовністю дій юзера, які можуть собі вимкнути НЛП назавжди.

    Тому тестуючи такі випадки, ми завжди використовуємо тест дизайн техніку State transition flow, щоб не пропустити жодну з послідовностей виконання дій у флоу.
  • І останній кейс з чекліста - це перевірка випадків, коли НЛП допомагає юзеру не заблукати у флоу.
    Структура бота може бути доволі послідовною, так що ви не зможете перейти до степа 2 не завершивши попередній степ 1.
    Такі експірієнси можуть мати негативні наслідки.
    Наприклад, покупка товару з опціями. Юзер вибрав товар - степ 1, вибір кольору - степ 2 і покупка - степ 3.
    Якщо, юзер замість того, щоб вибрати колір, клікнувши по кнопці, напише текстовий меседж в бот, він вийде з флоу покупки і не завершить транзакцію.
  • В таких випадкам ми пропонуємо сетапити повторні запитання, щоб повернути юзера у ту ж точку.

    Але повторний меседж може нервувати юзера, тому конверсейшн дизайнери повинні або знайти кілька варіантів одного і того самого запитання, або знайти якийсь цікавий інтерактив, щоб все таки витягти з юзера потрібеу відповідь і рухатись далі.

    Який би варіант ви не вибрали, обов’язково треба передбачити вихід з такого цикла для юзера, який точно не хоче купувати товар, додавши кнопки back чи exit.
  • Це був останній пункт з чекліста.

    Незважаючи на достатнью кількість тестових ідей для перевірки, за один повний робочий день один тестувальник може перевірити 3 нові інтенти, при умові, що там немає складної логіки чи ризикових кейсів і при умові, що він в контексті поточної моделі НЛП і в контексті усього проекту.
  • І нарешті ми дійшли до останньої фази - навчання на продакшені.
  • Після релізу на продакшен починається сама цікава фаза в тестуванні НЛП - це збір статистики.


  • Тут нас цікавить чи дійсно юзери пишуть, те що ми очікували, чи є якісь топ по інпутам та атеренсам, як система реагує на валідні та неваліндні інпути.
    Аналізуючи всю інформацію ми визначаємо, що можна покращити: додати, змінити чи навіть видалити в поточній моделі.

  • Потім необхідно перетренувати модель.

  • І обов’язково зробити ще один раунд тестування, так як перетренована модель - це нова модель, і як вона себе поведе ніхто не знає.
  • Такий цикл може повторюватись з періодичністю 1-2 в місяць в залежності від нових фіч, побажань клієнта та результатів попереднього аналізу.



  • Такий постійний процес навчання на продакшені і паралельно реліз нових фіч потребує розширення команди і залучення спеціалістів, які фокусно будуть працювати саме над НЛП складовою.

    Таким чином з’явились нові професії і ролі в команді.

    Конверсейшн дизайнер працює над побудовою флоу і структури бота, дизайнить діалоги, щоб бот приносив користь і був зручним и швидким у користуванні. Разом з контент менеджером вони займаються тренуванням моделі: підпороб атеренсів (слів, словосполучень, речень), виділенням ентіті, інтентів.

    Також саме вони займаються збором і аналізом статистики після релізу і визначають слабкі сторони для покращення.

    Тестувальники залучені на кожну з фаз: під час діскавері ми разом з бізнес аналітиками приймаємо учисть в обговоренні та валідації вимог; під час фази тренування моделі можемо допомогти з підбором атеренсів, пріорітизациєю інтентів.

    А під час фінальної фази приймаємо участь в обговоренні змін в НЛП, адже знайємо продукт у цілому і можемо визначити як зміни можуть вплинути на інші частини бота.
  • Як висновок, хочу сказати, що в цілому тестування чатбот проекту майже нічим не відрізняється від тестування інших проектів і його можна розкласти на складові, які нам вже знайомі: це функціональне тестування, юзабіліті, UI, секьюріті, перформанс, тестування мобайл спесифік кейсів (так як бот працює всередині мобайл аплікейшена) і так далі.
  • Але частинка НЛП - це нова і найменш досліджена для нас складова бота, тестування якої супроводжується складнощами, але є надзвичайно важливим.

    Кастомер саппорт, покупки онлайн та букінг апойнтмента - всі ці функції вже давно доступні користувачам вебсайтів.

    Але чатботи можуть запропонувати більше: миттєву консультацію 24/7, швидку покупку у вигляді діалога, персоналізований експірієнс та легкий інтерфейс чатбота у вже відомому месенджері (що позбавляє потреби встановлювати додаткові аплікейшени).

    Вдалий експірієнт роботи з чатботом може підвищити задоволення користувача (так званний - кастомер сатісфекшн, який є одним з основних КПІ для бізнесу), але це станеться лише тоді, коли НЛП складова, яка зустрічає юзера та проводить його через весь бот, буде протестована на бездоганному рівні.
  • А це в свою чергу буде залежити від тестової стратегії, яку ви обираєте.

    Наш досвід показує, що зробити тестування ефективним нам допомагає аналіз ризиків та робота зі статистикою.

  • Тут знаходиться чекліст, який був в основі доповіді.

    Звичайно у вас на прокті може бути своя специфіка і контекст, але його можна юзати як темплейт для вашої власної тестової стратегії.

×