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

Наша цель — не только заставить ботов работать в продакшене, но и сделать их надежными и отказоустойчивыми. На команду QA (Quality Analyst) возложена обязанность поставлять живых ботов с минимальными или нулевыми ошибками в производстве. Следовательно, для QA огромная ответственность — выпускать этих чат-ботов с минимальными ошибками и поддерживать качество.

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

– Тестирование конечных пользовательских потоков для пользовательских запросов без сбоев. — Проверка бизнес-логики, выполняемой ботом — Общие ответы (приветствия, положительные отзывы, отрицательные отзывы и т. д.) — Тестирование функциональности отдельных задач (задачи — это не что иное, как варианты использования, поддерживаемые чат-ботом)

– Проверка пользовательского интерфейса элементов чата, изображений, грамматики, личности и т. д.

Поток ботов

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

Чтобы понять, как выглядит простой поток бота, давайте рассмотрим приведенный выше пример, где пользователь говорит: «Установить напоминание о пробуждении». При получении сообщения происходит следующее:

1. Предложение проходит через наш конвейер машинного обучения (механизм NLU, состоящий из наших серверных микросервисов машинного обучения, которые отвечают за определение намерений, сущностей, исправление орфографии, грамматики). и понимание того, чего хочет пользователь)
2. Как только мы это узнаем, конвейер проходит весь путь от «напоминание о пробуждении» до «установить напоминание».
3. При выборе соответствующего и наиболее релевантного ответа бот отвечает: «Помогите мне с датой и временем» (ответ обрабатывается нашей системой ответов ML).

Проблемы при тестировании бота?

1. Широкий спектр тестирования

  1. В отличие от других типов тестирования, тестирование чат-бота зависит от нескольких факторов: домена, для которого создан чат-бот, целевых пользователей, целевой возрастной группы, типа разговора, который чат-бот должен вести с пользователем (обычный или профессиональный). Принимая во внимание все эти факторы, можно обдумать большое количество перестановок и комбинаций. Создание тестовых случаев для каждого из этих сценариев снова является сложной и утомительной задачей.
  2. При тестировании чат-ботов тестер также должен сосредоточиться на ответах чат-бота на различные общие запросы. (Пользователь вводит что-либо в свободной форме)
  3. Ответ, который давал бот, когда он не понимает запросы пользователя.

2. Затраты времени и увеличение рабочей силы

Давайте разберемся в этом с помощью предыдущего примера. Здесь у нас есть. Создатель бота внес следующие изменения:
разделил намерения даты и времени, как показано ниже:

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

3. Сбои API

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

4. Создание отчета

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

Введение в инструмент тестирования ботов

Чтобы преодолеть эти повседневные проблемы и развернуть высококачественного бота в кратчайшие сроки, мы знали, что только автоматизация может прийти нам на помощь. Так родился наш инструмент для тестирования ботов. Этот инструмент можно запускать по запросу, а также он автоматически запускается через скрипт cron в нашей среде UAT каждый день, чтобы убедиться, что боты работают в соответствии с требованиями. Итак, давайте посмотрим, как именно работает инструмент тестирования ботов и как он облегчил нашу жизнь.

Чтобы настроить и запустить инструмент тестирования ботов, необходимо выполнить 4 важных шага. Ниже приводится обзор того, что именно делает этот инструмент:

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

Если приведенное выше верно, то тестовые случаи помечаются как пройденные, в противном случае инструмент проверки качества бота вызывает исключение и отправляет электронное письмо со сценариями сбоя.

"Прелесть этого инструмента в том, что он не зависит от копии сообщений".

Некоторые дополнения:

Этот инструмент можно запустить через Дженкинс, по нажатию одной кнопки. Нам просто нужно взять URL-адрес листа системных сообщений для конкретного бота из папки S3, добавить его в поле с именем URL-адрес файла и указать user_id (уникальный для пользователя) учетной записи, на которой мы хотим запустить инструмент тестирования бота.

После этого нам просто нужно нажать кнопку сборки, и тестовые примеры начнут выполняться. Сообщения, которые отправляет система, видны на устройствах пользователя, чей user_id указан. Благодаря этому пользователь может узнать, работает ли чат-бот должным образом или нет. Инструмент Bot QA фактически имитирует общение реального пользователя на платформе.

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

Все эти отчеты доступны на S3 и могут быть доступны в любое время для проверки предыдущего состояния. Это помогает очень легко отлаживать проблемы.

"Инструмент тестирования ботов запускается каждую ночь, начиная с 1:00, и дает результат для 25 ботов примерно за 2 часа"
Без этого инструмента тестирование и развертывание 25 ботов займет более 3–4 дней.

Ограничения

  • Создатели ботов / разработчики, меняющие поток, ломают инструмент, поэтому общение является ключевым моментом, когда что-то меняется.

Планы на будущее

  • Чтобы использовать этот инструмент тестирования ботов для тестирования голосовых ботов.
  • Создайте некоторые функции вокруг этого инструмента для поддержки тестирования многоязычного чат-бота.
  • Оптимизация времени запуска инструмента тестирования ботов с нескольких часов до минут.

Преимущества

  • Время, затрачиваемое на тестирование любого чат-бота, сократилось с 1–2 часов до 7–8 минут.
  • Инструмент тестирования ботов позволяет одновременно тестировать несколько чат-ботов.
  • Однократная попытка протестировать чат-бота вручную.
  • Один бот может работать для нескольких клиентов. Это также позволяет тестировать бота на разных клиентах.

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

Первоначально опубликовано на сайте haptik.ai 15 марта 2019 г.