Оценка качества бота
Оценка качества бота — инструмент, который позволяет тестировать бота на наборе диалогов.
Каждый диалог содержит запросы пользователя и ожидаемые реакции бота. Во время тестирования инструмент сравнивает полученные реакции бота с ожидаемыми.
Вы можете просматривать историю тестов и скачивать подробные отчеты с результатами.
- Во время тестирования бот выполняет реальные запросы. Запросы могут исчерпать лимиты JAICP или квоты сторонних сервисов.
- Вы не можете проверять сценарии, в которых есть условия для разных типов каналов.
Во время тестирования поле
$request.channelType
всегда имеет значениеbot_scorer_api
. - Поддерживается проверка только текстовых ответов и стейтов бота.
- Не поддерживается проверка реакции бота на события.
Чтобы оценить качество бота:
- Перейдите в раздел Оценка качества бота.
- Подготовьте файл с набором диалогов.
- Загрузите набор диалогов.
- Запустите тест.
- Просмотрите историю тестов и отчет.
Файл с набором диалогов
Файл с диалогами должен быть в одном из форматов:
-
XLS
-
XLSX
-
CSV
Требования к CSV-файлу-
В качестве разделителя между полями используйте один из символов:
-
запятую —
,
; -
точку с запятой —
;
; -
вертикальную черту —
|
; -
символ табуляции.
-
-
Если значение содержит разделитель, то оно должно быть заключено в двойные кавычки —
"
.
-
- Таблица
- CSV
testCase | comment | request | expectedResponse | expectedState | skip | preActions |
---|---|---|---|---|---|---|
hello | /start | /Start | ||||
hello | привет | Привет, привет! | /Hello | |||
weather | Какая погода? | /Weather |
testCase ,comment ,request ,expectedResponse ,expectedState ,skip ,preActions
hello , ,/start , ,/Start , ,
hello , ,привет ,"Привет, привет!" ,/Hello , ,
weather , ,Какая погода? , ,/Weather , ,
Файл содержит тест-кейсы, на которых проверяется качество бота. Тест-кейс может состоять из нескольких шагов. Каждая строка файла — один шаг тест-кейса.
Каждый тест-кейс описывает новую сессию и нового клиента.
В статье Поля набора диалогов вы можете подробнее узнать о том, какие поля должны быть в файле и как их заполнять.
Чтобы скачать пример файла, в правом верхнем углу нажмите Скачать пример файла с диалогами.
Загрузка набора диалогов
Чтобы загрузить набор диалогов:
- Нажмите Загрузить файл с диалогами.
- Укажите название набора.
- Прикрепите файл с диалогами.
- Нажмите Сохранить.
Запуск теста
Чтобы запустить тест, нажмите Запустить тест на панели с набором диалогов.
- Для локального проекта в JAICP — последняя сохраненная версия в редакторе.
- Для проекта во внешнем репозитории — последний коммит в текущей ветке.
История тестов
Чтобы открыть историю тестов, нажмите на панель с набором диалогов.
Для каждого теста отображается Успешность — сколько процентов успешные шаги составляют от числа всех непропущенных шагов.
Чтобы посмотреть график с динамикой успешности тестов:
-
Нажмите на панели с набором диалогов.
-
Нажмите Посмотреть динамику.
Пример графика:
Отчет
Чтобы скачать подробный отчет о тесте, нажмите Скачать отчет.
Отчет имеет формат XLSX. Отчет содержит набор диалогов и дополнительные поля:
-
actualResponse
— полученный ответ бота. -
actualState
— первый стейт, в который перешел бот. -
result
— результат проверки шага. Значения:OK
— ожидаемая реакция бота совпадает с полученной.FAIL
— ожидаемая реакция бота не совпадает с полученной.SKIPPED
— шаг пропущен и не учитывается при оценке.
-
transition
— история переходов бота по стейтам в этом шаге. -
responseTime
— время в миллисекундах, за которое был выполнен шаг.
Пример отчета
testCase | comment | request | expectedResponse | expectedState | skip | preActions | actualResponse | actualState | result | transition | responseTime |
---|---|---|---|---|---|---|---|---|---|---|---|
hello | /start | /Start | true | SKIPPED | 0 | ||||||
hello | привет | Привет, привет! | /Hello | false | Привет, привет! | /Hello | OK | /Hello | 1424 | ||
weather | Какая погода? | /Hello/Weather | false | hello | В каком городе? | /Hello/Weather | OK | /Hello/Weather | 468 | ||
alarm | Поставь будильник | /Hello/Alarm | false | hello | На какое время? | /Hello/Meeting | FAILED | /Hello/Meeting→/Hello/Time | 491 |
Тест-кейс hello
:
- Пользователь пишет «/start».
Ожидаемая реакция: бот перейдет в стейт
/Start
. Шаг пропускается и не проверяется, так как в полеskip
указаноtrue
. - Пользователь пишет «привет».
Ожидаемая реакция: бот перейдет в стейт
/Hello
и ответит «Привет, привет!». Полученные стейт и ответ совпадают с ожидаемыми. Шаг считается успешным.
Тест-кейс weather
:
- Выполняются шаги
preActions
из тест-кейсаhello
. - Пользователь пишет «Какая погода?».
Ожидаемая реакция: бот перейдет в стейт
/Hello/Weather
. Полученный стейт совпадает с ожидаемым. Текст ответа не проверяется, так как полеexpectedResponse
не заполнено. Шаг считается успешным.
Тест-кейс alarm
:
- Выполняются шаги
preActions
из тест-кейсаhello
. - Пользователь пишет «Поставь будильник».
Ожидаемая реакция: бот перейдет в стейт
/Hello/Alarm
. Полученный стейт не совпадает с ожидаемым. Шаг считается неуспешным.