Основные различия между Viber и Telegram и как тестировать боты для них
Чат-боты сейчас набирают большую популярность и уже используются в разных сферах деятельности: заказ одежды, спецпредложения от торговых сетей, покупка авиа и ж/д билетов, почтовые сервисы, банковские услуги, информация от коммунальных служб и т.д.
Что же это такое? Чат-бот — это специальная компьютерная программа, с помощью которой можно общаться с клиентом 24/7. В чат-боте прописаны определенные сценарии, которые помогают клиенту без привлечения соответствующего персонала в любое время суток оформить свой заказ или найти ответ на интересующий его вопрос.
Сейчас достаточно много статей как создавать чат-боты, их описание (из чего они должны состоять или как их лучше проектировать), но слишком мало, как их тестировать.
В этой статье хотим поделиться своим опытом тестирования чат-ботов. Рассказать об основных особенностях и подходах к тестированию чат-ботов на платформах Telegram и Viber.
За последние пару лет значительно возросло количество пользователей, использующих различные мессенджеры. Это связано с развитием технологий смартфонов, которые стали еще более доступными для широкого круга пользователей. Что заметно «развязало руки» разработчикам мессенджеров, которые в свою очередь уже стали заметно расширять функционал, и это способствует привлечению более широкой аудитории.
По данным немецкого онлайн-портала статистики самым популярным мессенджером в мире стал WhatsApp, но в постсоветских странах и непосредственно в Украине лидирующие позиции занимают Viber, FB и Telegram по данным на 2019 год.
Так все же, почему Viber и Telegram? Давайте рассмотрим чем они похожи, а чем отличаются.
Самым популярным мессенджером в мире стал WhatsApp, но в постсоветских странах и непосредственно в Украине лидирующие позиции занимают Viber, FB и Telegram по данным на 2019 год.
Сравнение возможностей Viber и Telegram
Возможности мессенджеров | Viber | Telegram |
Отправка сообщений и синхронизация со всеми устройствами | + | + |
Приложение для десктопа | + | + |
Использование ника | — | + |
Подключение нескольких аккаунтов | — | + |
Создания группового чата | + | + |
Расширение группового чата (для участия большего количество человек) | — | + |
Возможность обращения к выбранному собеседнику через «@» | — | + |
Создание канала | + | + |
Облачное хранение данных | — | + |
Безопасность | + | ++ |
Использование ботов | + | + |
По данным из таблицы можно заметить отличия, но необходимо отметить, что эти мессенджеры не просто то, чем мы пользуемся каждый день для развлечений, но они уже становятся своего рода плато для различного рода продвижения бизнеса.
Поскольку оба мессенджера могут поддерживать использование ботов, давайте рассмотрим особенности работы для каждого из них.
Особенности работы Viber и Telegram
Достоинства и недостатки чат-ботов
Для этого вернемся к главному определению чат-бота, о котором мы уже писали выше.
Необходимо обратить внимание на то, что существует два вида ботов:
- Чат-бот с фиксированной информационной базой данных, они запрограммированы на ограниченный диапазон сценариев поведения, относится кнопочный бот и бот-суфлер.
- Чат-бот на основе искусственного интеллекта с возможностью самообучения и самообновления данных, относится к типу «умный бот».
Стоит отметить то, что боты с фиксированной информационной базой более надежны и просты из-за того, что они не содержат искусственный интеллект, они не смогут выйти из-под контроля разработчиков.
Чат-боты с реализованным (внедренным) искусственным интеллектом, более “отзывчивы”, и их интеллект подразумевает способность реагировать в зависимости от сложившейся ситуации.
Таким образом, можно выделить следующие достоинства и недостатки для чат-ботов:
Достоинства | Недостатки |
Использование 24/7 | Сбои в работе чат-бота при нестабильном интернете |
Моментальный ответ бота | Избыток функций |
Понятный и простой интерфейс | Сложный и запутанный интерфейс |
Дешевизна для компаний | Неспособность бота распознать сарказм, иронию, юмор и сленг |
Расширение покрытия платформ | Нестандартное поведение пользователя может вызвать вывод бота из строя |
Для общения с чат-ботом не обязательна установка приложения | Не для всех видов бизнеса |
Из таблицы видно, что у Telegram больше возможностей при создании чат-бота, соответственно и функционала для тестирования будет больше.
Так что принципиального различия в тестировании чат-ботов для Viber или для Telegram не будет. Дальше рассмотрим, как в целом тестировать чат-боты.
С чего начать тестирование чат-ботов
Так с чего начать?
Сначала необходимо выполнить первые шаги, которым учат на курсах QA тестировщика -выяснить, для кого и для чего создавался ваш чат-бот, узнать его целевую аудиторию и для решения каких задач он понадобится пользователю. Уточнить, какие команды при работе с чат-ботом может применять пользователь. Хорошо если пользователю будет доступен этот список (например, будет выводится после регистрации/авторизации или будет ссылка на сайт с короткой инструкцией по использованию бота). Обратите внимание на список команд для Viber и Telegram, скорее всего он будет отличаться. Выяснить, на какие страны ориентирован чат-бот и какие языки будут поддерживаться. И уточнить для каких платформ будет разработан ваш чат-бот.
Еще рекомендуем перед началом тестирования вашего чат-бота ознакомиться со схожими чат-ботами в той же области (установить и посмотреть как работают чат-боты для Viber и Telegram).
Непосредственно при тестировании, необходимо пройти основные позитивные сценарии и посмотреть насколько интуитивно понятна работа с чат-ботом. В диалогах с чат-ботом не должно быть тупиков — есть отклик на все действия пользователя. Не должно быть ситуаций, что при каком-то действии, пользователь не получает ответа от чат-бота. Или наоборот, паузы между сообщениями очень маленькие, и пользователь не успевает реагировать. Убедитесь, что есть возможность вернуться к предыдущему шагу в диалоге с ботом. Проверить, корректно ли выполняются команды.
Если бот поддерживает разные страны/языки, проверить наличие переводов для диалогов с чат-ботом и на корректность построения их, опираясь на культуру и традиции той или иной страны, грамматических особенностей построения предложений. Стоит обратить внимание на то, что при регистрации/авторизации (или если это используется в других сценариях чат-бота) маска/валидация номеров телефонов, адрес соответствует формату выбранной страны.
Удостовериться, что элементы, обозначающие одно и то же, называются одинаково. При удалении любого элемента выводится сообщение о подтверждении действия. Проверить соответствие дизайну/макету — хорошо, если внешний вид чат-бота выдержан в одной стилистике и цветовой гамме для разных платформ.
Приемы для тестирования чат-ботов
Также в ходе тестирования можно использовать следующие классические приемы.
Одной из Best Practice является именно то, что тестировщиков желательно привлекать на ранних этапах разработки как при тестировании web-сайтов, десктопных и мобильных приложений, игр, так и непосредственно чат-ботов. Это нужно именно для того, чтобы в будущем уменьшить количество дефектов и обеспечить их исправление на ранних этапах, что значительно уменьшит затраты на проект.
Когда вы получите чат-бота на тест, нужно помнить, что процесс тестирования зависит от контекста. Если вы занимались тестированием только длительных проектов, например, таких как медицинское оборудование, документооборот, программное обеспечение для автомобилей, то нужно изучить подходы к тестированию непосредственно чат-ботов, поскольку они будут принципиально разниться не только по предметной области, но и по видам и техникам тестирования, которые вам придется применять.
Не забывайте о тестовых артефактах. Если вы приняли решение о целесообразности использования тест-кейсов, чек-листа или любой другой тестовой документации, старайтесь актуализировать ее, в противном случае вы пропустите fault, который превратится в failure.
Само тестирование продукта непосредственно показывает наличие дефектов и определяет слабые места чат-бота. В ходе тестирования задумайтесь о том, что тестирование помогает выявить дефекты, а не доказать то, что чат-бот не пригоден к использованию.
Обратите внимание что, если вы нашли дефект в чат-боте, двигаясь по позитивному сценарию, стоит продолжать копать в этом направлении, так вы сможете увидеть целый кластер дефектов.
Если вы не выявили дефекты, это совсем не означает, что их нет. Попробуйте пересмотреть сценарии кейсов и выявить слабые места чат-бота.
Абсолютно все сценарии проверить не получится, составляйте тестовую документацию, кроме позитивных сценариев, используйте негативные и исследовательские, оценивайте их на реалистичность, приоритезируйте кейсы.
Подходите к тестированию чат-ботов, так же, как если бы вы тестировали web-сайт, десктопное или мобильное приложение. В любой области есть что-то общее и есть свои нюансы. Как раз на эти нюансы мы и хотели обратить ваше внимание и поделиться своим опытом в тестировании чат-ботов.
Онбординг Telegram-бота и его A/B-тест
В пока еще «прошлом» 2019 году на хакатоне мы вместе с сокомандниками сделали телеграмм бота @pussybotsbot. В те времена бот работал следующим образом: просил селфи у пользователей и какое-нибудь предложение или фразу, а в ответ применял к отправленному селфи забавный фильтр (его подбор делался по отправленной фразе при помощи ML, всего фильтров было несколько сотен). После хакатона бот остался у меня, но денег на поддержку нейронки не было — ее пришлось отключить, а фильтры бот стал применять рандомно.
Чуть позже я добавил для пользователей возможность применять определенный фильтр по id, а также поделил все фильтры на разделы и добавил кнопку «настройки» для выбора нужного раздела. Своей аналитики не было, кроме сохранения id пользователей. В таком виде бот просуществовал полтора года.
Времени заниматься ботом не было до этой осени. Поэтому, когда в октябре я открыл статистику по пользователям, был приятно удивлен: активаций (количество пользователей с момента релиза) оказалось более 180 000. Мне сразу захотелось немного изменить логику работы бота, прикрутить аналитику действий пользователей, накопить данные, а затем попробовать улучшить некоторые из его метрик.
Эта статья о том, какую метрику телеграм бота я решил вырастить при помощи онбординга и как проводил A/B тест перед его запуском для всех новых пользователей.
Перед тем, как внедрять онбординг и проводить A/B-тест, я добавил некоторые функции в старую версию бота. Путь нового пользователя в актуальной версии бота без онбординга показан на скриншотах, а все изменения по сравнению со старой версией описаны в тексте ниже.
Это было первое, что я сделал. Не буду останавливаться на техническом описании своего решения — просто скажу, что в итоге аналитика собирается по всем событиям в боте, можно легко доставать из базы любые данные или визуализировать их в дашбордах.
Пользователям это дало возможность применять понравившийся фильтры без запоминания их id. Мне же появление этой функции дало возможность выявить наиболее популярные фильтры. При онбординге я использовал эти знания (об этом будет ниже).
Если пользователь 3 раза получил результат обработки, бот требует от него подписаться на канал для продолжения работы. Пока требуется подписаться на канал, созданный для этого бота — в нем публикуются обновления бота (новые функции, добавление фильтров, информация о неисправностях). Возможно, в будущем таким способом получится продавать рекламу, но пока у меня нет никаких сведений относительно интереса со стороны рекламодателей к такого рода продвижению.
Насколько мне известно, самый популярный формат рекламы в ботах — это делать рассылки по всем пользователям бота, но это негативно воспринимается пользователями. Кстати, интересно узнать у владельцев ботов — как вы их монетизируете?
При проектировании онбординга, я старался добиться двух целей:
- с самого начала показать такую обработку, которая понравится пользователю и тем самым подтолкнуть его к продолжению работы с ботом;
- продемонстрировать работу основных управляющих элементов бота (кнопка «обновить» для применения нового фильтра и «настройки» для выбора группы фильтров).
Первый шаг при онбординге такой же, как и при обычной работе бота: пользователя просят прислать селфи. После этого бот присылает обработку и показывает лишь 1 кнопку «обновить», а не все элементы управления, доступные в обычном режиме. Кроме того, заранее устанавливается фильтр для первой обработки пользователя.
Я выбрал фильтр «омультяшивание», который придает фотографии эффект векторного рисунка, так как знал, что данный фильтр популярен среди пользователей и результат обработки скорее всего понравится новому пользователю. Расчет был на то, что применение популярных фильтров приведет больше новых пользователей к целевому действию — подписки на канал.
При нажатии «обновить», пользователь получает обработку уже другим фильтром и видит кнопку «настройки», которая отображает доступные для выбора категории фильтров. На этом шаге онбординга также используется популярный среди текущих пользователей фильтр. В дальнейшем я планирую устроить A/B-тесты по разным фильтрам в онбординге, но пока просто взял один из самых популярных, которые добавляют в «избранное».
После выбора категории, пользователь получает обработку случайным фильтром из выбранной категории, а онбординг на этом заканчивается и становится доступным обычное меню управления. На этом шаге бот ожидает от пользователя команды и при попытке получить следующую обработку попросит пользователя подписаться на канал: отправляет ссылку для перехода в канал и кнопку, которую требуется нажать после подписки. В дальнейшем при помощи telegram api бот проверяет подписку на канал при каждой обработке и выдает результат только тем, кто подписан.
В A/B тесте принимали участия только новые пользователи бота, так как онбординг запускается лишь на старте. Группе A показывалась версия бота без онбординга, а группе B — версия с онбордингом. Пользователи разделялись по группам случайным образом (если telegram id нового пользователя был нечетный, он попадал в группу A, а если четный — в группу B).
Это стандартные правила проведения A/B теста. Перед началом, я определил этапы воронки, через которые проходят все новые пользователи бота. Всего получилось 5 этапов:
- Начало работы — стартовый этап, на котором бот просит у нового пользователя селфи.
- Получение результата — наступает в момент выдачи новому пользователю первого результата обработки.
- Получение ссылки — наступает, когда новый пользователь уже получил три обработки и бот выдал ему ссылку на канал с требованием подписаться.
- Переход по ссылке — фиксируется переход по отправленной ссылке. Пользователям давалась не прямая ссылка на телеграм канал, а ссылка на web страницу с редиректом в канал. Кстати, конверсия при переходе по прямой ссылке и по ссылке с редиректом отличаются, но так как редирект использовался для обеих версий, это не имеет значения.
- Подписка на канал — бот отслеживает подписку на канал при каждой обработке, а также по таймауту спустя некоторое время после получения ссылки (на случай, если кто-то из пользователей подписался, но не стал осуществлять обработку).
Далее начертил 2 таблицы. Первая понадобилась для записи количества пользователей в группе А и в группе B на каждом из этапах воронки. Вторая таблица — для подсчета относительных конверсий на каждом из этапов воронки, а также абсолютной конверсии в подписчика. Относительные конверсии в таблице это конверсии с C1 по C4, а абсолютная — C абс.
Ключевой метрикой выбрал относительную конверсию C2 «получение результата» — «получение ссылки». Дело в том, что до момента получения первого результата работа версии бота с онбордингом ничем не отличается от работы версии без онбординга, а сразу перед этапом «получение ссылки», версия с онбордингом начинает работать также, как и версия без онбординга. Таким образом, чем больше пользователей окажется на этапе «получение ссылки», тем лучше работет онбординг.
Значения остальных относительных конверсий я ожидал увидеть примерно одинаковые в обеих группах, за исключением конверсии в переход по ссылке. Я предполагал, что пользователи, прошедшие через онбординг, будут активнее кликать по ссылке, но в реальности это оказалось не так.
A/B тестирование дает ответ на вопрос какой из двух вариантов обладает лучшей конверсией, но зачастую для получения статистически значимого результата, исключающего случайную ошибку, приходится ждать много времени.
До начала проектирования теста, я подсчитал необходимое количество пользователей и время ожидания в калькуляторе Эвана Миллера. У меня уже были накоплены данные по исследуемой конверсии: в своем прогнозе я предполагал, что она увеличится примерно на 15% при добавлении онбординга.
Калькулятор дал прогноз, что ожидать набора пользователей при таком прогнозе для статистически значимого результата придется около 4 дней — для меня это было приемлемо. В итоге изменение конверсии оказалось существеннее прогнозируемого и статистически значимый результат удалось получить менее чем за 2 дня.
Как видно из заполненных таблиц с результатом, все конверсии кроме ключевой C2 и C абс. оказались примерно одинаковыми. Разницу конверсий C2 в группах я выделил в таблице зеленым, так как статистическая значимость этого результата была подтверждена калькулятором Эвана Миллера. Конверсия C3 в обеих группах также оказалась примерно одинаковой — это значит, что те пользователи, которые дошли до этапа получения ссылки имели примерно равную мотивацию ее нажать в обеих группах.
При этом онбординг отлично справился со своей задачей и довел гораздо больше новых пользователей до этапа получения ссылки и требования подписаться на канал, чем версия без онбординга. Абсолютная конверсия изменилась примерно на тоже значение, что и C2 — это говорит о том, что отрицательного влияния онбординга на нее не было. После окончания теста онбординг был запущен для всех новых пользователей.
Полученный в калькуляторе результат дает понимание, что конверсия в группе B (с онбордингом) оказалась выше. Также в калькуляторе можно посмотреть доверительный интервал полученной конверсии. В моем случае этот интервал достаточно существенный, но пока я решил не тратить время на его сужение. Мне было достаточно простого сравнения двух версий.
- Онбординг в телеграм ботах так же важен, как и в других продуктах.
- Чтобы сделать хороший онбординг, нужно знать предпочтения пользователей.
- При проведении A/B-тестов пользователи в двух группах должны совершать действия в один период времени, то есть нельзя сначало давать пользователям версию A, замерять результат, а затем давать версию B.
Если какие-то метрики на этапе тестирования противоречат здравому смыслу, нужно обязательно перепроверить все шаги на наличие программных ошибок.
До начала тестирования стоит спрогнозировать вероятное время накопления данных, иначе вы рискуете потратить на тест больше времени, чем у вас есть.
Если вас интересуют продуктовые исследования и эксперименты, то загляните на мой телеграмм канал @petprojectblog — в нем я описываю реальные продуктовые кейсы, а для данной статьи там есть небольшой скринкаст. В комментариях под статьей хотел бы пообщаться с другими разработчиками ботов и продакт менеджерами. Мне особенно интересны аналитика и способы монетизации ботов.
Как тестировать бота telegram
Copy raw contents
Тестирование чат-бота (Chatbot)
Чат-бот — это программа, предназначенная для имитации общения с человеком. Разработчики обычно проектируют чат-ботов так, чтобы пользователям было сложно определить, общаются ли они с живым человеком или с роботом.
Чат-боты — это не что иное, как приложения, которые имеют прикладной уровень, базу данных и API. Чтобы упростить работу чат-бота, мы можем сказать, что он работает на сопоставлении с образцом для классификации текста и выдачи подходящего ответа на вопросы/запросы, заданные пользователем. Чат-бот отвечает пользователю согласно заложенной в него программе. Чат-боты бывают разных типов, в зависимости от того, как они используются. Существует три основных типа чат-ботов:
- Чат-бот на основе правил (Rule-Based Chatbot): это базовый чат-бот, пользователь взаимодействует с этим типом бота, используя предопределенные параметры. Чтобы получить ответы от этих ботов, пользователям необходимо выбрать определенные параметры. Такие боты собирают запрос пользователя, анализируют его, а затем предлагают результаты в виде кнопок. Эти боты обычно используются для замены часто задаваемых вопросов;
- Независимые (Keyword) чат-боты: это боты с машинным обучением, в отличие от чат-ботов на основе правил, они анализируют то, что хочет пользователь, и реагируют соответствующим образом. Эти чат-боты используют настраиваемые ключевые слова и машинное обучение, чтобы определить, как эффективно и результативно реагировать на запросы пользователей;
- НЛП (Contextual) чат-боты: на данный момент это самые продвинутые чат-боты. Они представляют собой комбинацию лучших чат-ботов на основе правил и ключевых слов. Эти чат-боты используют NLP, чтобы понять контекст и намерения запросов пользователей и действовать соответственно. Эти чат-боты могут легко обрабатывать несколько запросов от одного и того же пользователя.
Частые проблемы чат-ботов:
- Сломанные скрипты, которые приводят к сбоям в работе;
- Долгие паузы перед ответами;
- Нет связи с другими бизнес-каналами;
- Слишком много намерений или бизнес-задач для одного бота;
- Недостаток речи и/или точности (Lack of utterance and/or accuracy);
- Нет права на ошибку;
- Плохая навигация;
- Плохой дизайн разговора.
Виды тестирования чат-ботов
1. Functional Testing
Чат-бот может быть эффективным только в том случае, если он понимает контекст, в котором работает. Чтобы это произошло, разработчикам необходимо «научить» приложение различным категориям слов и конкретным терминам. Допустим, у нас есть чат-бот для кофейни, который позволяет пользователям размещать заказы. Вы можете перечислить варианты и сделать их кликабельными или научить бота распознавать заказы. В первом случае разработчикам может быть проще программировать функционал, но это может быть менее удобно для пользователей. Взгляните на пример такого потока:
Этот поток может варьироваться, и вам может потребоваться добавить другие этапы — горячий, холодный и ледяной; с чаем, алкоголем или ароматизатором; и так далее. Логика будет усложняться, когда вы добавите возможность заказать кофе в зернах, десерты или другие продукты, которые покупатель обычно может найти в кофейне.
Другой сценарий более сложен. Он обрабатывает прямые запросы пользователей и извлекает необходимую информацию. Например, пользователь видит «Привет! Что бы вы хотели заказать?» сообщение и набирает ответ. Пусть это будет «Капучино с одним сахаром и холодный напиток без сахара для Бена». Здесь есть несколько сущностей, которые чат-бот должен понимать:
- Тип кофе — капучино, колд брю;
- Варианты сахара — да, нет;
- Количество сахаров — один, ноль;
- Имя заказчика — Бен.
Разработчики вставляют эти данные на ранних этапах и строят на их основе логику чат-бота. Чтение и извлечение информации функционирующим ботом также называется заполнением слотов (slot filling).
ТЕСТИРОВАНИЕ: Чтобы узнать, знаком ли бот с основными сущностями, инженеру по контролю качества необходимо будет выполнить тесты, специфичные для предметной области. Важно убедиться, что чат-бот понимает все термины, связанные с кофе, которые могут использовать клиенты.
СОВЕТЫ ПО КАЧЕСТВУ: Убедитесь, что вы добавили достаточное количество объектов и значений для каждого, чтобы чат-бот мог правильно понять запрос. В идеальном случае вам нужно будет охватить оба сценария — один для тех, кто уже знает, и один для тех, кто выбирает, что заказать.
2. Валидация входных данных (Validating Inputs — Some More Functional Testing)
Если чат-бот принимает такие входные данные, как адреса электронной почты, номера телефонов и почтовые индексы, для системы очень важно распознать правильный формат данных.
ТЕСТИРОВАНИЕ: Скармливайте чат-боту адреса электронной почты, номера телефонов и почтовые индексы в разных неправильных форматах, например:
- адрес электронной почты без символа @;
- адрес электронной почты с пробелами;
- неправильное количество цифр в почтовом индексе;
- буквы в номере мобильного телефона.
Таким образом, вы узнаете, как система принимает неверные данные, и предложите улучшения, если ответ не удобен для пользователя.
СОВЕТЫ ПО КАЧЕСТВУ: Проверка данных должна быть немедленной и сопровождаться соответствующим сообщением. Сообщение может показывать пример правильного адреса электронной почты, номера мобильного телефона и т. д. или просто уведомлять об ошибке. Если ввод действителен, пользователь должен увидеть «сообщение об успехе» — доказательство того, что система получила ваши данные и распознала их как действительные.
3. Негативные входные данные (Unknown Inputs — Error Handling & Limit Value Testing)
Команда не может предусмотреть все возможные пользовательские вводы, особенно если есть вариант ввода, позволяющий ввести запрос. Поэтому необходимо исследовать границы запрограммированной логики. Другая задача — убедиться, что бот адекватно реагирует на входные данные, которые он не понимает.
ТЕСТИРОВАНИЕ: Запустите исследовательские тесты, чтобы узнать, как чат-бот обрабатывает нестандартные входные данные. Они могут включать:
- Случайные разговоры, не связанные с целью чат-бота;
- Бессмысленные предложения или выражения, которые обычно не используются;
- Грамматические ошибки, опечатки, сленг, разные варианты английского языка;
- Сбивающие с толку и оскорбительные сообщения.
СОВЕТЫ ПО КАЧЕСТВУ: Креативность клиентов не имеет границ, особенно когда они хотят поиграть с чат-ботом. Вы не можете охватить все возможные сценарии и сообщения. Есть несколько вещей, которые нужно сделать:
- Добавьте варианты общих ключевых слов с опечатками в жаргон чат-бота. Если бот не может понять небольшие изменения запроса, разработчикам нужно научить его это делать;
- Работайте над светской беседой, чтобы поддержать основную непринужденную беседу. Это придаст человечности, сделает разговор непринужденным и веселым. Эти запросы привлекают внимание пользователей и оказывают положительное влияние на пользовательский опыт;
- Придумывайте ответы на оскорбительные сценарии. Вам нужно будет создать несколько дополнительных слотов для ненормативной лексики, чтобы чат-бот мог дать остроумный ответ. Напишите экстренный ответ на несоответствующие запросы. Хотя приведенные выше пункты являются скорее рекомендациями, этот является обязательным. Вы можете использовать ответ «Извините, я не понял» для любого запроса, который не полностью соответствует логике;
- Избегайте бесконечных циклов. Когда чат-бот не получает соответствующий запрос или ответ на вопрос, он должен попросить уточнить запрос или предложить дополнительные варианты. Убедитесь, что разговор завершен, и программа не показывает один и тот же ответ вечно. Вместо этого запрограммируйте чат-бота на завершение разговора или подключите человека-эксперта после трех или пяти запросов «Я не понял» подряд.
Чат-бот — это бизнес-инструмент, а не игрушка, которую пользователи могут тестировать на наличие умных ответов. И тем не менее особенности гуманизации положительно сказываются на имидже бренда и пользовательском опыте. Однако когда дело доходит до ругательств, было бы разумно не отставать от тона голоса бренда. Пошутите и ответьте на оскорбительные вопросы, если можете. В противном случае просто выходите стратегически. Единственное, что является общим вне зависимости от стратегии общения, — это никогда не ругаться матом. Это не очень вежливо.
4. UI Testing
Чат-боты часто показывают кнопки с вариантами ответа, предоставляют ссылки на веб-сайт бренда или другие ресурсы, имеют карточки со встроенной информацией или другими изображениями. Все эти элементы должны быть функциональными — ссылки ведут на правильные источники, изображения оптимизированы и правильно отображаются, все цепочки ответов связаны так, чтобы разговор не прерывался резко.
ТЕСТИРОВАНИЕ: Необходимо проверять весь поток на наличие битых ссылок, графических элементов и пробелов в логике.
СОВЕТЫ ПО КАЧЕСТВУ: Предоставьте пользователям возможность оставлять отзывы. Таким образом, они сообщат, если обнаружат какие-то дефекты, которые вы могли пропустить. 100% покрытие тестами — это миф, и оставить пару мелочей незамеченными — это нормально.
5. Compatibility Testing
Еще одна важная вещь — убедиться, что чат-бот корректно выглядит на разных устройствах. Интеграция бота в мессенджер — обычная практика, но это не единственный вариант. Хотя дизайн мессенджера уже настроен для различных устройств, подключение чат-бота к веб-сайту может быть не таким простым.
ТЕСТИРОВАНИЕ: Проверьте, как выглядит окно чат-бота на разных устройствах, в разных браузерах и версиях ОС. Измените размер окна браузера на экране компьютера, чтобы графика не искажалась, а макет не нарушался. Тексты должны оставаться читабельными и не выходить за границы.
СОВЕТЫ ПО КАЧЕСТВУ: Проверьте чат-бот на широко используемых устройствах, браузерах и версиях ОС перед выпуском. При необходимости настройте стиль и параметры окна чат-бота.
6. UX Testing
Это один из наиболее очевидных аспектов чат-бота для проверки. UX-тестирование будет основываться как на бизнес-требованиях, так и на личном опыте пользователей. Важно убедиться, что чат-бот выполняет свою основную задачу, генерируя правильные и точные ответы.
ТЕСТИРОВАНИЕ: На основе бизнес-требований создайте сценарии для пользовательских запросов. Основная идея — проверить эти запросы с точки зрения пользователя, который впервые видит вашего чат-бота. Итак, начните с ответов на следующие вопросы:
- Понимает ли чат-бот вопросы?
- Предоставляет ли он мгновенные ответы на эти запросы?
- Является ли информация актуальной, точной и полезной для пользователя?
- Требуется ли для завершения пути пользователя больше или меньше шагов?
- Привлекательно ли это для пользователей?
- Склонны ли они отказываться от чат-бота?
- Как сделать беседу более увлекательной?
СОВЕТЫ ПО КАЧЕСТВУ: Главное правило — вести разговор как можно более нормально. Итак, вот несколько основных правил, которые помогут вам достичь этой цели:
Разговор с чат-ботом должен иметь логический ход, очень похожий на реальный разговор с человеком. Например, начните с приветствия, а затем задайте вопрос, чтобы начать разговор:
- Могу я чем-нибудь помочь?
- Что вы ищете?
- Заинтересован ли ты в…?
Обратите внимание на варианты ввода. Если у вас есть текстовое поле, в котором пользователи могут вводить свои запросы, убедитесь, что чат-бот понимает разные запросы. Допустим, вы хотите заказать товар в канцелярском магазине. Существует несколько вариантов начала разговора:
- Я хочу заказать блокнот.
- Мне нужен блокнот.
- Какие тетради у вас есть?
- Можно мне лиловый блокнот с точками размером 5×3,5 дюйма?
Может быть разумно предоставить стандартный набор ответов, это зависит от цели вашего чат-бота и разнообразия доступных товаров/услуг.
Каждый ответ должен быть логически связан с предыдущим запросом или вопросом. Крайне важно, чтобы чат-бот предоставлял только актуальную и необходимую информацию. Мгновенно уведомляйте клиентов об ошибках в их запросах. Подтвердите сообщение об успешном завершении, если чат-бот запрашивает ввод контактных данных;
Всегда должно быть последнее сообщение, сигнализирующее об окончании разговора. Оно может содержать ссылки на некоторые полезные ресурсы, рекомендации по дальнейшему общению или прощальную фразу;
Рассмотрите возможность подключения пользователя к помощнику-человеку. Хотите вы того или нет, но есть вопросы, с которыми боты не справятся. И просто так предоставьте возможность вернуться к началу или вернуться к предыдущему шагу. Чат-бот требует четкой навигации, как и любой другой онлайн-сервис.
7. Performance Testing
Люди, использующие чат-боты, рассчитывают получить точные ответы на свои запросы и получить их мгновенно. Это означает, что тестирование производительности чат-бота необходимо. Следовательно, задержка — время, необходимое чат-боту для получения ответа и его отображения, — должна быть минимальной.
ТЕСТИРОВАНИЕ: QA-инженер должен проверять разные запросы, которые охватывают маленькие и большие диалоги и содержат разные типы контента. Чтобы каждый ответ появился на экране, должно пройти одинаковое время, независимо от его места в пути пользователя и избранного контента.
СОВЕТЫ ПО КАЧЕСТВУ: Задержка, которая длится более пары секунд, вызывает разочарование, и пользователь, скорее всего, откажется от чат-бота. Задержка может зависеть от содержания ответа, но рекомендуемое время ответа составляет до двух секунд.
8. Integration/API Testing
Как правило, чат-бот не работает сам по себе — он становится неотъемлемой частью цифровой экосистемы компании. То есть вам в конечном итоге нужно будет подключить его к официальному сайту, учетной записи в социальной сети, мессенджеру или другому приложению.
ТЕСТИРОВАНИЕ: Если вы используете программное обеспечение для создания ботов, вы, вероятно, найдете API, который позволяет подключать чат-бот к вашей системе и запускать тесты API. Если вы используете собственное решение, необходимо запустить интеграционные тесты, чтобы проверить, как бот и другие системные функции ведут себя при подключении.
СОВЕТЫ ПО КАЧЕСТВУ: Обратите внимание как на технические, так и на дизайнерские аспекты вашего чат-бота. Это часть вашей цифровой системы, и она должна легко интегрироваться. Все упомянутые выше аспекты функциональности и производительности должны соответствовать стандартам качества после подключения чат-бота к веб-сайту или другой платформе. Дизайн должен соответствовать другим медиа и имиджу бренда в целом. Последний аспект подпадает под UX-тестирование, но на этом этапе может стать очевидным несоответствие.
9. Localization Testing
И последнее, но не менее важное: избегайте ошибок в ответах — орфографических, грамматических, лексических, любых ошибок! В большинстве случаев они не будут иметь катастрофического эффекта, но внимательные пользователи могут скептически относиться к уровню предоставляемых вами услуг. Короче говоря, важны мелочи, поэтому тексты должны быть безошибочными. Если веб-сайт многоязычный, имеет смысл создать многоязычного чат-бота. Имейте в виду, что локализация охватывает и другие аспекты — часовые пояса, валюты, метрические системы и многое другое.
ТЕСТИРОВАНИЕ: Доверьте тестирование локализации тому, кто умеет редактировать тексты. Если QA-специалист не уверен в своих навыках корректора, поручите эту задачу другому члену команды. Кроме того, свежий взгляд всегда полезен. Итак, проверьте ответы на орфографические, лексические и грамматические ошибки, пунктуацию и связность. Также убедитесь, что форматирование правильное. Всякий раз, когда у вас есть список вещей, используйте маркеры или цифры. Делайте предложения короткими и делите информацию на абзацы, если сообщение длинное.
СОВЕТЫ ПО КАЧЕСТВУ: Было бы здорово, если бы чат-бот распознавал часовой пояс пользователя и соответственно приветствовал его. Что касается языка, то система должна иметь доступ к соответствующим настройкам устройства или начать разговор, указав эти данные. Если важна валюта и другие детали локализации, чат-бот также должен указывать их с помощью вопросов.
Автоматизированное тестирование ботов для Telegram
Кажется, что время — это река, которую внезапно переклинило, и она решила течь по кругу. Именно такое впечатление складывается на первый взгляд, когда видишь, что вновь стали популярны боты в мессенджерах. Но это впечатление обманчиво. Изменилось очень многое — мощности, которые стоят за ботами, возможность обработки ими мультимедиа информации, наличие информации о пользователях, круг охвата… В общем, это явно не ностальгический тренд, а реально полезная технология, которая будет развиваться и дальше.
Боты становятся всё сложнее, они берут на себя многие функции других каналов. Например, вместо того, чтобы звонить по телефону и слушать по полчаса записанную девушку, которая говорит тебе перейти в тоновый режим и набрать волшебную последовательность символов, всё то же самое можно сделать при помощи бота. И это будет быстрее, удобнее, гибче и дешевле.
Для некоего личного проекта мне захотелось написать бота с довольно сложной ветвящейся логикой (например, это может быть система поддержки или диагностики с глубокой вложенностью). При этом граф данной логики имеет огромное количество разветвлений. В общем, быстро стало очевидно, что без автоматизированного тестирования не обойтись — иначе что-то точно упущу из внимания. И насколько же сильно я удивился, когда узнал, что способа тестировать логику ботов просто нет!
Конечно, можно зарегистрировать дополнительного бота для тестирования, но это вариант кривой и некрасивый. Обращение ко внешнему апи во время тестов, заглушка, которая не даст общаться с ботом кому попало, ограничение на скорость отправки сообщений раз в секунду… Если слать сообщение раз в секунду, то граф из каких-то 60 вершин будет тестироваться уже больше минуты! И я уже не говорю о том, что у нас нет никакой возможности смоделировать возросшую нагрузку на бота, при которой он упрётся в ограничение в 30 сообщений в секунду… В общем, я понял, что опять придётся делать что-то своё.
Два решения задачи
Надстройка
Первый вариант с огромной скоростью реализации — это просто надстройка над самой популярной Node.JS библиотекой для реализации Telegram ботов — node-telegram-bot-api. Сделано довольно просто — переписывается обработчик события на отсылку данных, после чего мы обрабатываем данные своим методом и посылаем вручную сгенерированный запрос. Выходит примерно так:
Бота, который используется для данного примера, вы можете найти на страничке библиотеки, как и собственно этот пример — не хочется приводить лишнего копи-пейста.
Свой сервер API Telegram
Решение выше хорошо для быстрого тестирования каких-то простых вещей и покроет большинство потребностей тестирования. Однако что делать, если мы хотим, скажем, тестировать, как наш бот работает под большой нагрузкой? В этом случае единственный логичный выход — это реализовать свой вариант Telegram API. Звучит довольно страшно, но на самом деле нам нужна простая реализация, которая совместима с текущими библиотеками для ботов и позволяет отправлять клиентские запросы. Кстати, как побочная фича — получается, что мы делаем полноценный сервер, с которым можно работать из любого другого стека технологий — хоть питон, хоть C#, хоть что.
To make the long story short, я сделал и такой вариант. С ним тестирование логики того же бота выглядит примерно так:
То есть, мы поднимаем у себя на локальном порту сервер, дальше стандартным образом настраиваем бота на работу с этим сервером, и просто шлём ему сообщения от ботов и клиентов. Объект клиента можно получить прямо из сервера, или можно написать своего клиента — сервер просто принимает сообщения в стандартном JSON формате по определённому адресу.
Конечно, осталось огромное количество всяких полезных вещей, которые можно добавить. К примеру, сейчас очередь сообщений хранится просто в массиве в оперативной памяти. Не реализовано эмулирование таймаутов, и поддерживается работа только с одним клиентом одновременно (сервер просто высылает все сообщения клиенту, который обратился к нему за данными от определённого бота, идентифицируемого по токену). Так же есть поддержка только отправки текстовых сообщений. Связано это с тем, что меня на текущий момент интересует только текст.
Первому проекту особо добавить нечего, а второй скорее всего будет развиваться в сторону моих личных потребностей. Но я немного рассчитываю на поддержку open source сообщества. Лицензия MIT, поддержка Node.js 4 и 6 (5 тоже будет работать, но на ней не пройдут тесты, поскольку используемый для теста бот несовместим с Node 5. Впрочем, я уже создал на это pull request), репозитории ждут ваших пулл реквестов с кодом, оформленным по включённой в проект конфигурации линтера. Некое количество тестов тоже есть. Возможно, со временем будет поддержка ботов и для других мессенджеров.
Если вам интересна сама тема ботов, то оставайтесь на связи. Будет интересно.