Обсудить проект
Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь c политикой конфиденциальности.
КЕЙС
Как предотвратить появление проблем?
Мы разработали систему тестирования бота, чтобы обнаруживать проблемы до запуска обновления у клиента
Автоматическое тестирование чат-бота
«АльфаСтрахование-Жизнь» — компания по страхованию жизни из группы «АльфаСтрахование». Работает по трем основным направлениям: инвестиционное страхование жизни, накопительное страхование жизни и кредитное страхование жизни. Входит в ТОП-3 страховщиков жизни в России по объемам сборов.
Контекст

В проекте для АльфаСтрахование-Жизнь мы сделали чат-бота, который получает и обрабатывает данные из нескольких источников: баз данных и электронных таблиц.

Чат-бот взаимодействует с несколькими системами: веб-чат, Telegram, рабочее место оператора, база знаний бота в Dialogflow.
Проблема

Системы, от которых зависит чат-бот, живут и развиваются независимо.

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

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

До введения автотестов могло пройти несколько часов от появления проблемы до обнаружения и устранения причины.
Задача — реализовать систему мониторинга для отслеживания работоспособности чат-бота, проверки взаимодействия бота с другими системами и источниками данных
Процесс
Для автоматизированного тестирования бота выбрали Cypress и Cucumber.

Cypress — это современный фреймворк для тестирования веб-интерфейсов. Cucumber — инструмент для написания тестов естественным языком Gherkin. Такое сочетание позволяет отделить написание тестовых сценариев аналитиком от реализации js-кода тестирования разработчиком.

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

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

1. Обращение пользователя к специалисту через веб-чат личного кабинета.

2. Работа специалиста с пользователем через веб-интерфейс рабочего места оператора. Сейчас для проекта АльфаСтрахование-Жизнь используется сервис Livetex.

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

Проверка взаимодействия чат-бота с источниками данных: excel-файлами и базой данных

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

Получили систему управления сессией. С ее помощью можно настроить контекст, в котором будет работать чат-бот.

Для проверки взаимодействия бота с источниками данных создается выборка полисов. По каждому из этих полисов поданы заявления различного типа, заявления находятся на разных стадиях рассмотрения. В тесте номера полисов добавляются в сессию, бот запрашивает данные, результат сверяется с эталонными значениями.
Функциональные тесты:
Отображение и доступность веб-чата на странице личного кабинета АльфаСтрахование-Жизнь

Тест проверяет наличие кнопки чата на странице, авторазворачивание окна чата и получение ответа на простой вопрос в соответствии с базой знаний.



Работоспособность чат-бота в Telegram

Проверяет доступность Telegram-бота и правильность ответов на вопросы о конфиденциальных данных. При запросе защищенных данных, например, сведений по договорам, пользователю будет рекомендовано перейти в личный кабинет.
Что получилось
Теперь мы можем регулярно проверять точность работы бота.
Запуск тестов по расписанию позволяет оперативно обнаружить проблему и принять меры.
Мы встроили автотесты в наш конвеер сборки ботов и теперь можем обнаруживать проблемы до запуска в среде клиента.
Наши автотесты работают в Docker-контейнерах. Это дает возможность выстраивать гибкую инфраструктуру для управления тестами.
Заказать чат-бот
или получить консультацию