Чек-лист тестирования чат-бота: 50 кейсов
Тестирование чат-бота обычно сводится к тому, что кто-то из проектной команды задаёт боту шесть вопросов, на которые он и был настроен отвечать. Всё работает, запуск состоялся, а настоящие тест-кейсы приходят от клиентов в следующие две недели. Этот чек-лист — версия, которая случается до этого, разложенная на шесть семейств, где сбои действительно концентрируются: удачные сценарии, неоднозначность и контекст, языки, запросы вне зоны, эскалация, злоупотребления и краевые случаи. Она также разбирает, что считается прохождением, почему автор бота не может его протестировать и как растить набор из продакшена.
Почему внутреннее тестирование всё пропускает
Человек, настроивший бота, не может его протестировать по той же причине, по которой автор не может вычитать собственный текст: он задаёт вопросы, на которые система строилась отвечать, тем словарём, которым написан материал. Клиенты не делают ни того, ни другого.
Два правила снимают большую часть этого. Тест-кейсы должны браться из реальных сообщений клиентов, а не из воображения, и запускать их должен не тот, кто строил бота. Коллега из другого отдела находит за час больше, чем проектная команда за неделю.
Определите, что значит «пройдено», до начала. Для большинства кейсов ниже правильный ответ не единственное прохождение: честное «я не знаю» плюс путь к человеку — тоже прохождение, а считать это провалом значит подталкивать бота к уверенной выдумке.
Семейство первое: удачные сценарии
Десять-пятнадцать кейсов из ваших самых частых реальных вопросов. Именно это семейство команды перетестируют, так что держите его пропорциональным.
- Пять самых частых вопросов из реальных сообщений за прошлый месяц — в формулировке клиента, а не в приглаженной версии.
- Те же пять с опечатками, сокращениями и без знаков препинания — так, как они реально приходят.
- Вопрос, на который отвечает недавно добавленный материал, чтобы убедиться, что обновления живые.
- Вопрос, ответ на который зависит от города или тарифа, чтобы убедиться, что бот спрашивает, а не предполагает.
- Составной вопрос — две вещи в одном сообщении — частая ситуация, на которую часто отвечают только наполовину.
Семейство второе: неоднозначность и контекст
Это семейство находит больше дефектов, чем любое другое, и почти никогда не тестируется, потому что требует разговора, а не одного сообщения.
- Уточняющий обрывок: задайте вопрос, затем напишите «а другой?». Бот должен разрешить это по предыдущей реплике.
- Поправка: скажите одно, затем «нет, я про другую модель». Боты регулярно продолжают с первым ответом.
- Смена темы посреди разговора и возврат к первой теме.
- Неоднозначный термин, означающий в вашем бизнесе две вещи, чтобы убедиться, что бот спрашивает, а не угадывает.
- Вопрос, требующий информации, которую клиент уже дал, чтобы убедиться, что её не спросят дважды.
- Очень короткое сообщение в одно слово — крайне частое в мессенджерах и часто обрабатываемое неверно.
Семейство третье: языки
- Один и тот же вопрос на каждом поддерживаемом языке с проверкой, что ответ эквивалентен, а не просто гладок.
- Сообщение, смешивающее два языка в одном предложении, — норма на многоязычных рынках.
- Смена языка посреди разговора, чтобы убедиться, что определение идёт по сообщению, а не по разговору.
- Сообщение на неподдерживаемом языке, чтобы убедиться, что бот отвечает на поддерживаемом, а не пробует четвёртый.
- Сообщение фолбэка на каждом языке — самая заметная непереведённая строка из возможных.
- Название продукта или бренда на каждом языке, чтобы убедиться, что его услужливо не перевели.
Семейство четвёртое: вне зоны и без поддержки
Здесь критерий прохождения — честный отказ плюс путь дальше. Задайте это явно, иначе тестировщики запишут правильное поведение как провал.
- Вопрос, на который ваш материал действительно не отвечает.
- Запрос юридической, медицинской или регулируемой консультации.
- Просьба сравнить вас с названным конкурентом.
- Просьба о скидке в трёх разных формулировках, одна из которых подразумевает рычаг давления.
- Вопрос о продукте, которого вы не продаёте, и о снятом с производства.
- Прогнозный вопрос: когда появится на складе, когда будет распродажа.
- Запрос, требующий личности, которую вы не можете подтвердить в чате.
Семейство пятое: эскалация и передача
- Прямая просьба о человеке, которая должна выполняться немедленно и без встречного предложения.
- Та же просьба косвенно: «там вообще кто-нибудь есть?».
- Раздражённое сообщение с проверкой, что эскалация происходит без дополнительных квалифицирующих вопросов.
- Жалоба с упоминанием обращения в суд.
- Тот же разговор в три часа ночи — подтвердить, что путь вне рабочих часов существует и называет конкретное время.
- Передача, где оператор принимает разговор: подтвердить, что расшифровка ушла и бот замолчал.
- Обратный путь: после завершения оператором убедиться, что бот не пишет сразу поверх него.
Семейство шестое: злоупотребления, краевые случаи и безопасность
- Попытка заставить бота проигнорировать свои инструкции, оформленная как новая инструкция внутри сообщения.
- Попытка вытащить внутренний материал: логику цен, политики, данные других клиентов.
- Попытка добиться от бота обещания вне политики.
- Очень длинное сообщение и сообщение только из эмодзи или ссылки.
- Один и тот же вопрос десять раз подряд, чтобы убедиться, что ограничение частоты ведёт себя корректно, а не просто падает.
- Запрос на действие, которого бот совершать не должен, например отмену заказа.
- Сообщение, близкое к вопросу безопасности, с проверкой, что оно доходит до пути, реально существующего в этот час.
Как запускать и что записывать
- Пишите ожидаемый исход до запуска кейсаНе ожидаемые слова, а ожидаемое поведение: «отвечает из материала» или «отказывается и предлагает человека». Решать после — это способ пометить неверный ответ как приемлемый.
- Записывайте найденный материал, а не только ответПрохождение, полученное из неверного источника, — будущий провал. Это возможно, только если система фиксирует, какие записи породили ответ.
- Перезапускайте весь набор после каждого измененияИ правки материала, и изменения промпта дают побочные эффекты. Исправление, улучшающее пять кейсов и ломающее три, — обычное дело и невидимо без полного перезапуска.
- Храните набор и растите его из продакшенаКаждый клиентский разговор, пошедший не так, становится новым кейсом. Через полгода этот набор ценнее всего, что вы написали до запуска.
Что Vexvon даёт для тестирования
Несколько семейств выше зависят от возможности заглянуть внутрь ответа, а не только оценивать текст. Прозрачность ответа фиксирует, какие записи знаний породили данный ответ, — именно это превращает «бот сказал что-то не то» в «вот эта запись неверна», то есть разницу между отчётом о тесте и отчётом, с которым можно работать.
Семейство контекста поддержано напрямую: память диалога охватывает последние пятнадцать сообщений, а перестроение запроса превращает обрывок вроде «а другой?» в полноценный самостоятельный запрос до запуска поиска. Именно эти два механизма и проверяют кейсы на неоднозначность, так что провал там указывает на конкретное поведение, а не на модель вообще.
Для семейства эскалации пути явные и логируемые: просьба об операторе поднимает уведомление, нецензурная лексика работает как стоп-условие, стоп-символ агента ставит ИИ на паузу на тридцать минут, и ИИ можно выключить для диалога. Кейс обратного пути покрывается той же тридцатиминутной паузой.
Тестовые диалоги по умолчанию исключаются из отчётности, так что неделя тестирования не искажает цифры месяца, — а это важнее, чем звучит, потому что альтернатива в том, что команды избегают тщательного тестирования ради чистого дашборда.
Частые вопросы
- Сколько тест-кейсов нужно чат-боту до запуска?Около пятидесяти, разложенных по шести семействам: удачные сценарии, неоднозначность и контекст, языки, запросы вне зоны, эскалация, злоупотребления и краевые случаи. Пропорция важнее общего числа: большинство команд перетестируют первое семейство и пропускают второе.
- Кто должен запускать тесты?Не тот, кто настраивал бота. Он бессознательно будет спрашивать словарём материала. Коллега из другого отдела находит за час больше.
- Что считается прохождением?Либо верный ответ из материала, либо честный отказ плюс путь к человеку. Считать отказы провалами — значит подталкивать бота к уверенной выдумке.
- Какое семейство находит больше дефектов?Неоднозначность и контекст: уточняющие обрывки, поправки, смена темы. Оно же почти никем не тестируется, потому что требует разговора, а не одного сообщения.
- Как часто перезапускать набор?После каждого изменения материала или промпта. Побочные эффекты обычны: исправление, улучшающее пять кейсов и ломающее три, невидимо без полного перезапуска.
- Что записывать по каждому кейсу?Заранее написанное ожидаемое поведение, фактический ответ и то, какой материал его породил. Без третьего прохождение из неверного источника выглядит так же, как настоящее.
Соберите набор из реальных сообщений
Не выдумывайте тест-кейсы. Выгрузите сообщения за прошлый месяц, возьмите двадцать самых частых и десять самых странных и используйте их дословно, вместе с опечатками. Этот набор окажется требовательнее всего, что написала бы проектная команда, и он уже является точным описанием того, что ваши клиенты сделают в первый же день.