Как протестировать чат-бот — Почему это так сложно?

Из Wikipedia:

Тестирование программного обеспечения — это исследование, проводимое для предоставления заинтересованным сторонам информации о качестве тестируемого программного продукта или услуги.

Когда текущим и потенциальным клиентам компании необходимо предоставить наилучший клиентский опыт взаимодействия с компанией (customer experience), наиболее перспективной технологией являются чат-боты. Чат-боты, установленные на веб-сайте, в социальных сетях или в мессенджерах, позволяют клиентам связываться с компанией в любое время суток, чтобы получить необходимую им информацию.

Однако, несмотря на то, что технология является «продвинутой», она является новой, и важно быть уверенным, что она работает правильно для вашего бизнеса, а это означает необходимость тестирования технологии для того, чтобы убедиться, что чат-бот дает правильные ответы.

Чат-боты, создаваемые в нашей компании, преимущественно являются комбинированными решениями, которые создаются на основе предопределенных сценариев c применением техник искусственного интеллекта. Разговор по сценарию позволяет легко автоматизировать ключевые коммуникационные бизнес-процессы.  А NLU / NLP-сервисы (понимание и обработка естественного языка) позволяет научить чат-бота принимать вопросы на человеческом языке в свободной форме ввода и отвечать на основе существующих знаний в предметной области.

Поскольку чат-бот представляет из себя диалоговый (разговорный) интерфейс взаимодействия человека с компьютером для выполнения заранее определенных задач, то чат-бот как диалоговый интерфейс должен быть удобным и понятным для пользователя и прост в использовании. Соответственно, проблема в создании чат-бота не столько техническая, сколько является проблемой построения опыта взаимодействия с пользователем (customer experience / user experience / сonversational experience). Таким образом, наиболее успешными будут те боты, которые предоставляют постоянную ценность и пользу пользователям в соответствии с требованиями и запросами пользователей.

Соответственно, и стратегию тестирования чат-бота в первую очередь необходимо создавать исходя из соображений о customer experience, а также необходимо учитывать стандартные технические особенности разработки программного обеспечения (например, работоспособность интеграций).

Что отличает тестирование чат-ботов от тестирования других видов ПО?

Существуют хорошо зарекомендовавшие себя методы и метрики тестирования программного обеспечения, но что отличает тестирование чат-ботов? В чем разница между тестированием веб-сайта или приложения для смартфона?

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

Причина 1: недетерминированные взаимодействия с пользователем

Работа с недетерминизмом — важная тема в тестировании программного обеспечения. Из-за природы человеческого языка тесты чат-бота не могут охватить все возможные ситуации.

❌ Откажитесь от цели обеспечить 100%-ный охвата тестированием. Убедитесь, что тест-кейсы охватывают наиболее распространенные ситуации.

Причина 2: никаких препятствий для пользователей

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

Пользователь: «Умный бот, пожалуйста, забронируйте рейс из Вены в Берлин».
Умный бот: «Конечно, на какой день вы хотели бы запланировать вылет?»
Пользователь: «Яблоки и бананы»
Умный бот: «…»

✔️ Создавайте тест-кейсы с учетом непредвиденных действий пользователя.

Стратегия тестирования чат-ботов

При планировании тестирования мы рекомендуем включать следующие задачи в ваши тест-планы.

1. Тестирование разговорных сценариев / UI/UX-тестирование

Технически разговор — это процесс, в котором два говорящих обмениваются сообщениями между собой с помощью значимых предложений. Этот обмен словами также известен как диалог. Поскольку чат-боты основаны на аналогичной концепции разговоров, тестирование разговорного потока/сценария является важным шагом в тестировании чат-ботов.

Чат-бот имеет очень простой, интуитивно понятный пользовательский интерфейс — устный или письменный человеческий язык в сочетании с UI-элементами среды, в которой он работает, для ускорения пользовательского опыта (кнопки, списки и т.д).

Тестовый кейс в этом контексте можно описать как диалог за которым должен быть способен следовать чат-бот. Поэтому, 1 Диалог = 1 Тестовый кейс. Каждый путь через схему сверху вниз — это отдельный тестовый кейс. Но имейте в виду, что 100% тестовое покрытие невозможно для чат-ботов (причины см. выше).

В иерархии уровней тестирования тестирование UI / UX находится на самом высоком уровне, поскольку вы в основном тестируете всю систему, включая все зависимые системы.

2. Сопоставление NLP намерений, обучающие фразы и ответы

Чего не показывают блок-схемы боты, так это безграничных возможностей для пользователя выразить намерение с помощью вопроса в свободной форме.

Намерения (или интенты/intents) — это цели или предназначение ввода данных пользователем, или, как мы их еще называем, «наборы фраз». Чат-бот обычно имеет несколько намерений, которые мы создаем для описания прикладной области применения чат-бота.

Если чат-бот предназначен для оформления заказа в кафе, мы можем протестировать его по обучающим фразам, которые относится к одному и тому же намерению «оформить заказ», например:
«Я хочу заказать кофе».
«Можно мне кофе?»
«Можно мне эспрессо?»

С другой стороны, ответ бота должен быть подтверждением заказа, например: «Какой кофе вы хотите выпить?» или «Ваш заказ подтвержден» или «Спасибо за ваш заказ».

3. Обработка исключительных ситуаций, проверка валидности ввода, безопасность

Чат-бот должен корректно обрабатывать ситуации не корректного ввода от пользователя.

Также необходимо проверить механизм фолл-беков (Fallbacks). Fallback (фолл-бек) — резервный сценарий для непредвиденных случаев. Например, пользователь может задать вопрос, который чат-бот не понимает. В этом случае, чат-бот должен ответить, например, «Извините, я вас не понял. Попробуйте сформулировать иначе».

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

4. Навигация, удобство, понятность пользователю как пользоваться ботом

Как инструмент само-самообслуживания, чат-бот должен быть понятен и удобен для конечного пользователя любого возраста. Чат-бот должен быть интуитивно понятен и/или содержать подсказки как им пользоваться.

В диалоговом интерфейсе нет таких опций, как кнопки возврата или окно поиска, которые помогали бы пользователям переходить от одних частей взаимодействия к другим. Однако у пользователей те же потребности, что и у традиционных интерфейсов; они  могут передумать и хотеть вернуться, или хотеть пропустить шаги и т. д.

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

5. Сквозное тестирование всех систем, точки интеграции

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

Также, бот обычно встраивается в коммуникационную среду — так называемые, каналы. Это может быть чат-виджет для сайта, социальная сеть, мессенджер или другие средства коммуникации. Работоспособность чат-бота необходимо проверять в совокупности от точки контакта пользователя через каналы до интеграции с бизнес-системами для обмена данными.

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

6. Перевод диалога на оператора и обратно, гибридная поддержка bot-human

В наших решения чат-бот обычно выступает как нулевой уровень поддержки и способен закрывать до 70-90% типовых сценариев и обращений. В некоторых случаях, для решения более сложных и творческих задач необходимо подключение специалистов-людей. Также, для пользователей, которые предпочитают общаться только с людьми может быть размещена такая опция.

Для работы оператора используются омниканальные агентские системы. Например, Метабот интегрирован с Jivo, LiveTex, Webim, Umnico, Bitrix24.

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

7. Small talk \ небольшие разговоры

Небольшие разговоры — это, по сути, обычный разговор между пользователем и ботом.

Пример:
Пользователь: Как дела?
Бот: Как всегда замечательно. Спасибо за вопрос.

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

8. Экспертность и корректность коммуникаций

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

При тестировании необходимо убедиться, что бот отвечает точно и лаконично, предоставляет экспертные ответы в соответствие с предметной областью знаний, а также корректно представляет продукты и услуги компании.

9. Целостность и соответствие коммуникаций бренду, эмоции

Поскольку чат-бот всегда представляет бренд, то и коммуникации которые он осуществляет и то восприятие которое он создает у пользователей должны соответствовать бренду и духу компании. В случае когда чат-бот обладает виртуальной личностью, нужно убедиться что ответы всегда бота соответствуют его аватару.

Эмоция — это тон языка, который включает гнев, страх, радость, печаль и отвращение. В случае, если чат-бот понимает настроение пользователя, необходимо написать контрольные примеры, чтобы понимать эмоции и соответствующим образом реагировать на пользователя.

Благодарим Флориана Тремла, со-основателя и CTO компании Botium, создавшей инструмент для тестирования чат-ботов, за его замечательный блог о тестировании чат-ботов, некоторые идеи и материалы из которого были использованы в подготовке этой публикации.