
Привет, меня зовут Сергей, я занимаюсь автоматизаций тестирования в компании ITFB Group, и хочу поделиться опытом внедрения AI-агентов в наши процессы.
Наверняка всем тестировщикам знакома ситуация, когда остаётся всего пара дней до релиза, а команда тестирования всё ещё работает над задачами по новым фичам и не может приступать к регрессу? Или перед передачей новой версии заказчику тестировщики успевают проверить только smoke-сценарии, засиживаясь допоздна? А до написания чек-листов и тест-кейсов по новым функциям руки дойдут вообще не скоро. У нас тоже такое нет-нет, да и случается.
Самое первое, что приходит в голову после таких авралов – нам нужна автоматизация регресса. Но как в кратчайшие сроки сделать из ручных сценариев автотесты, если никто в команде тестирования не пишет код, и нужно изучать всё с нуля. И это при том, что и так ни на что не хватает времени? На помощь придёт вездесущий AI!
Чтобы избежать повторения описанной выше ситуации, ускорить процесс тестирования, снизить time-to-market, не потерять при этом в качестве, без увеличения издержек, мы разрабатываем своего AI-агента для тестирования на базе нашей платформы Agentum AI. Агент нацелен на максимальную автоматизацию всех рутинных задач команды тестирования: от тестирования исходных требований, составления чек-листов по новому функционалу, до автоматизации end-to-end сценариев.
Самой сложной, в плане реализации с помощью AI-инструментов, задачей является автоматизация пользовательских UI-сценариев. Даже при классическом подходе к написанию автотестов такие сценарии являются самыми трудоёмкими, при этом тесты получаются не такими стабильными как unit или интеграционные. В этой статье мы сконцентрируемся на решении этой нетривиальной задачи.
Чтобы не изобретать свой велосипед, мы провели анализ имеющихся AI-решений в области UI-автотестов, поэкспериментировали с несколькими из них и, взвесив все за и против, выбрали активно развивающееся отечественное решение для автоматизации тестов на естественном языке - BugBuster. Мы интегрировали его с нашей платформой так, чтобы передавать на вход требования из тикетов Jira или страниц Confluence и на выходе получать автотесты в системе BugBuster.
Что умеет наш AI-тестировщик
Наша платформа Agentum AI – это универсальная основа для внедрения инструментов искусственного интеллекта во все процессы компании, начиная от набора новых сотрудников и заканчивая продажей продуктов. Наш департамент один из первых начал прорабатывать возможности AI для автоматизации рутинных задач, которые составляют значительную часть работы тестировщика.
На данный момент наш AI-тестировщик умеет:
Проводить первичный анализ требований на предмет отсутствия противоречий, ясность, полноту, а также пригодность для тестирования.
Составлять чек-листы на основе задач в Jira и документации в Confluence с последующим их импортом в TMS-систему.
Генерировать детализированные тест-кейсы на основе требований из Jira и Confluence и выгружать их в TMS.
Отправлять сгенерированные тест-кейсы на естественном языке на автоматизацию в BugBuster.

Как выглядит наш агент на платформе Agentum AI:

Работа с агентом
На данный момент работа с агентом представляет из себя обычный диалог с AI-чатом, но в отличии от обычного чата наш агент умеет получать необходимые ему данные из таких систем как Jira и Confluence, если указать это в запросе, а также выгружать сгенерированные тест-кейсы в нужную нам TMS систему или в BugBuster для дальнейшей автоматизации.
Генерация тест-кейсов на основе требований из Confluence:

Выгрузка сгенерированных результатов в BugBuster:

Контекст внедрения
Внедрение нашего AI-агента мы начали сразу на нескольких проектах компании. На только начинающихся проектах мы используем агент для тестирования требований и создания тестовой документации, а на более зрелых автоматизируем уже имеющиеся ручные сценарии. Важно отметить, что на текущий момент BugBuster поддерживает автоматизацию только веб приложений, но в перспективе планируется добавить поддержку и мобильного тестирования. Сейчас мы используем облачную версию платформы, но существует и on-premise решение, которое можно развернуть на собственной инфраструктуре и не переживать за чувствительные данные, которые не хочется отправлять в облако.
Команда тестирования смогла быстро освоить инструментарий нашего AI-тестировщика и начала его активное использование. Для базового освоения инструмента достаточно было провести для коллег часовой мастер-класс, по итогу которого они смогли сгенерировать свои первые тест-кейсы и даже автоматизировать их выполнение без знания программирования. Это впечатляющий результат, если сравнивать его с временными затратами на освоение языка программирования и его библиотек автоматизации, которое занимает, в лучшем случае, несколько недель или месяцев интенсивного обучения.
Принцип работы
Взаимодействие с агентом происходит в формате чата, в который мы можем передать ссылку или ID задачи или страницы документации, которую надо протестировать или на основе которой мы будем генерировать чек-листы или тест-кейсы. По результатам тестирования документации мы получим список найденных в ней проблем с подробным описанием того, на что нужно обратить внимание. Сгенерированные тест-кейсы и чек-листы будут сначала выведены в чат, после чего можно будет попросить агента дополнить их недостающими проверками, скорректировать или исключить из результатов лишние сценарии. После корректировки получившихся кейсов мы можем попросить агента отправить их в нужную нам TMS-систему или сразу загрузить в BugBuster для того, чтобы превратить их в автотесты.
BugBuster имеет привычный тестировщикам интерфейс TMS-системы с разделением на проекты, тест-сьюты и возможностью создания тестовых прогонов:

Тест-кейсы в системе представляют из себя набор шагов и проверок, описанных на естественном языке. Жёсткого шаблона для описания шагов нет — достаточно, чтобы в шаге были указаны действие и объект. Это позволяет системе понять, какое действие требуется выполнить и над чем именно. Наш AI-тестировщик генерирует кейсы в адаптированном под BugBuster формате, чтобы минимизировать необходимость исправления сценария вручную.
Пример сценария в интерфейсе BugBuster:

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

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

По окончании прогона нам доступны детальные результаты, позволяющие просмотреть логи выполнения каждого из тестов:

Помимо этого, доступен trace-лог в реальном времени с шагами, таймингами, скриншотами и debug-данными.
Сравнение с классическим подходом к тестированию
Создание тестовой документации
Несомненно, наш AI-тестировщик является лишь помощником настоящему специалисту и не освобождает от необходимости изучения требований к тестируемому продукту, но проверка корректности этих требований и создание тестовой документации на их основе значительно упрощается и ускоряет все эти процессы. Специалисту, по большей части, требуется только контролировать полученные результаты и корректировать их. Использование нашего агента также решает одну из самых сложных проблем, возникающих на старте любого проекта, оно позволяет без лишних переживаний приступить к работе, ведь начать – всегда самое сложное, а наш AI-тестировщик без лишних раздумий даст вам основу, отталкиваться от которой будет намного легче. Сравним скорость выполнения задач ручного тестировщика с применением AI-агента и без него на основе нашей проектной статистики.
Таблица 1. Сравнение скорости работы с документацией
Задача |
Без применения AI-агента |
С применением AI-агента |
Комментарий |
Тестирование требований |
1 - 4 часа / требование |
0.5 - 2 часа / требование |
AI-агент быстро находит формальные противоречия и пропущенные условия. Но человек должен проверить контекст и сформулировать вопросы бизнесу. |
Создание чек-листов |
1 - 2 часа / требование |
20 - 40 минут / требование |
ИИ идеален для этой задачи. Он мгновенно генерирует около 80% проверок. Роль человека - удалить лишнее, добавить специфичные для проекта пункты и отредактировать формулировки. |
Создание тест-кейсов |
3 - 6 часов / требование |
1 – 2 часа / требование |
AI-агент генерирует большой объем кейсов за секунды. Однако человек должен проверить корректность шагов и данных, объединить повторяющиеся кейсы и добавить сложные негативные сценарии, если агент их упустил. |
Таким образом внедрение AI-агента в решение рассмотренных задач команды тестирования в среднем ускоряет работу специалиста в 3 раза. При этом нужно учитывать, что при использовании агента качество результата по-прежнему будет зависеть от многих факторов, таких как качество исходных данных, сложность логики продукта и опыт специалиста по тестированию. В качестве дополнительных преимуществ применения AI-тестировщика можно выделить повышение полноты покрытия (ИИ реже забывает очевидные варианты проверок, которые человек может упустить), снижение когнитивной нагрузки (AI экономит силы специалиста в рутинных задачах, что позволяет сконцентрироваться на сложных сценариях), унификация формата (ИИ генерирует тестовую документацию в едином стиле и упрощает их использование и поддержку другими членами команды).
Разработка автотестов
На наших проектах мы провели ряд экспериментов, которые позволили сравнить скорость разработки автотестов с использованием традиционных технологий автоматизации (Python + Selenium) и нашего AI-агента в связке с BugBuster. В процессе мы по заранее описанному ручному тест-кейсу реализовывали один и тот же сценарий на языке Python и в системе BugBuster, засекая время, необходимое для создания работоспособного автотеста. Тест на Python мы писали с использованием уже подготовленного фреймворка, но все шаги сценария реализовывались «с нуля». В эксперименте принимали участие несколько сотрудников с разным опытом, чтобы можно было сравнить эффект от внедрения BugBuster у начинающих специалистов и специалистов с опытом.
Наш эксперимент показал значительное увеличение скорости создания тестов при переходе от написания их на Python к использованию BugBuster. Опытный специалист по автоматизации в среднем тратит в 4,5 раз меньше времени на создание сценария в BugBuster по сравнению с традиционным подходом (Python + Selenium), а работа начинающего специалиста ускорилась в среднем в целых 10 раз. Дополнительным преимуществом является почти полное отсутствие какого-либо порога для входа в автоматизацию для ручных тестировщиков. Стоит отметить, что скорость разработки автотестов на Python и в BugBuster при использовании уже реализованных тестовых шагов сопоставима, особенно если в автотестах используется BDD фреймворк.
Давайте рассмотрим преимущества и недостатки использования AI-агента по сравнению с классическим подходим к разработке автотестов.
К преимуществам можно отнести:
Быстрый старт автоматизации
Минимальный порог входа для специалистов
Возможность превращения уже готовых ручных сценариев в автотесты
Высокая стабильность автотестов
К недостаткам можно отнести:
Подходит не для всех сценариев
Долгое время выполнения автотестов
Сценарии необходимо адаптировать
On-premise решение требует наличия GPU-ресурсов (например, видеокарт уровня RTX 5090 или 2×4090)
Сложность встраивания в имеющийся CI/CD процесс
Проведение регрессионного тестирования
Если сравнивать скорость выполнения готовых тестов между ручным вариантом, классическими автотестами и AI-агентом, то выполнение тестов на ИИ-платформе будет уступать классическим автотестам, но всё равно будет быстрее ручной проверки, ведь AI-тестировщика ничего не отвлекает, он может выполнять параллельно сразу несколько сценариев и делать это без перерывов, обеда и сна. В сравнении с классическим автотестом AI-агент каждый раз заново проводит анализ каждого шага сценария, распознаёт снимок интерфейса и ищет координаты элементов, а классический автотест просто выполняет действия с заданными в виде локаторов элементам, что позволяет ему работать быстрее.
Таблица 2. Сравнение скорости выполнения тестов
Сценарий |
Ручное выполнение |
Python + Selenium |
BugBuster |
15 шагов |
600 сек |
25 сек |
150 сек |
Стабильность автотестов
Если сравнивать стабильность работы классических автотестов и тестов, созданных с помощью AI-агента, то второй подход избавляет нас от основной боли автоматизаторов тестирования, связанной с изменениями локаторов веб-элементов. BugBuster даже не заметит, если у элемента изменится тип в DOM-дереве или если он переместится на другой конец интерфейса, AI найдет новые координаты элемента за то же время, что и до этих изменений, в то время как классический автотест упадёт, а специалисту придется искать причину падения, подбирать новый локатор, исправлять автотест, отлаживать его, проходить через процедуру код-ревью, и только после этого мы получим работающий тест в регрессионном наборе.
Подводные камни
По результатам наших экспериментов с BugBuster мы выявили, что он подходит не для всех тестовых сценариев, что ограничивает его применение. Например, платформа пока не умеет генерировать тестовые данные и загружать файлы, а выполнение произвольного JavaScript-кода в шагах недоступно. При этом в новой версии уже добавлены API-запросы (с переменными и валидациями) и шаги с запросами к базе данных, что закрывает часть интеграционных сценариев. Из-за отсутствия возможности генерации уникальных тестовых данных не все тесты можно запускать многократно, без дополнительной очистки данных на тестовом стенде.
С ограничением по возможности генерации уникальных тестовых данных мы столкнулись при создании автотестов на регистрацию новых пользователей и добавление уникальных записей в справочники. Ранее такие тесты мы могли запускать только один раз, ведь логин пользователя и уникальное имя объекта справочника приходилось «захардкодить», а при повторном запуске сценарий падал. Это ограничение нам удалось обойти через дополнительные шаги обращения к сторонним сервисам генерации данных, откуда мы копировали уникальные значения и вставляли в нужные нам поля. Теперь в BugBuster появились возможность отправлять API-запросы и сохранять полученные значения из ответа в динамические переменные, поэтому мы планируем переработать имеющиеся сценарии, требующие уникальных данных, и получать уникальные значения от внешних сервисов генерации данных через API.
Сложности так же может вызвать описание элементов интерфейса для использования в шаге, если на той же странице есть похожий на него элемент, содержащий тот-же текст. У нас, например, раздел меню «Документы» содержит в себе пункт «Документы», и потребовалось поломать голову над тем, как объяснить LLM модели, что сначала нам нужно открыть меню «Документы», а потом выбрать пункт «Документы» из этого меню.
Некоторые неудобства также вызывает невозможность создания общих предусловий для блока тестов, из-за чего приходится по несколько раз дублировать повторяющиеся наборы шагов в нескольких сценариях.
Так же мы столкнулись с нестабильностью некоторых формулировок шагов, которые то срабатывают отлично, то перестают отрабатывать без каких-либо изменений как в сценарии, так и в самом интерфейсе приложения, это связано с тем, что модель каждый раз заново анализирует текущее состояние интерфейса и может по-разному воспринимать неоднозначные формулировки шагов.
Разработчики BugBuster активно дорабатывают свой продукт и быстро реагируют на выявляемые пользователями проблемы, поэтому исправление всех описанных выше моментов уже запланировано. Для описания элементов планируется добавить возможность выделять область интерфейса с автогенерацией корректного описания, для снижения дублирования шагов — внедрение Shared Steps, а для повышения ��табильности выполнения шагов — обновлённые механизмы интерпретации формулировок.
Адаптация ручных сценариев
Если просто импортировать имеющиеся ручные сценарии в BugBuster, то получившиеся шаги автотеста могут отличаться от необходимого формата, а также автотесты могут получиться нестабильными из-за непредсказуемого времени загрузки некоторых страниц и элементов интерфейса. Чтобы адаптировать ручной сценарий вам потребуется потратить дополнительные ресурсы на изменение его формата, разделить шаги на действия и проверки и конкретизировать описание элементов интерфейса, чтобы AI-агент мог их идентифицировать. Адаптация сценария опытным пользователем платформы, хорошо разбирающимся в тестируемом продукте, занимает около двух минут на один исходный шаг тест-кейса, для специалиста, только начинающего использовать платформу, стоит закладывать около 4 минут на исходный шаг при работе над несколькими первыми автотестами. Приведем часть полученной нами статистики по адаптации готовых ручных сценариев под формат платформы.
Таблица 3. Адаптация ручных сценариев к формату BugBuster
Исполнитель |
Количество шагов исходного сценария |
Время на адаптацию сценария для BugBuster |
Опытный пользователь BugBuster |
9 шагов |
25 мин |
Опытный пользователь BugBuster |
20 шагов |
45 мин |
Опытный пользователь BugBuster |
7 шагов |
40 мин |
Опытный пользователь BugBuster |
28 шагов |
58 мин |
Опытный пользователь BugBuster |
38 шагов |
35 мин |
Опытный пользователь BugBuster |
Среднее значение: 2 мин / шаг |
|
Начинающий пользователь BugBuster |
21 шаг |
120 мин |
Начинающий пользователь BugBuster |
20 шагов |
30 мин |
Начинающий пользователь BugBuster |
9 шагов |
80 мин |
Начинающий пользователь BugBuster |
21 шаг |
62 мин |
Начинающий пользователь BugBuster |
Среднее значение: 4 мин / шаг |
Заключение
Внедрение AI-агента в процессы тестирования позволило нашей команде значительно повысить эффективность своей работы, минимизировать рутину и убрать порог входа специалистов при создании автотестов. Качество продуктов при этом не только не страдает, но и повышается, а специалисты по тестированию по максимуму освободились от рутины, что позволило им выделить больше времени на решение сложных, творческих задач и поиск неочевидных проблем.
Таблица 4. Ускорение от внедрения AI-агента
Задача |
Классический подход |
С применением AI-агента |
Ускорение |
Тестирование требований |
60 мин |
30 мин |
В 2 раза |
Создание чек-листов |
60 мин |
20 мин |
В 3 раза |
Создание тест-кейсов |
120 мин |
60 мин |
В 3 раза |
Автоматизация тестов |
90 мин |
20 мин |
В 4,5 раза |
Вам стоит задуматься о внедрении AI-инструментов в процессы тестирования если:
Команда QA перегружена рутинной работой в виде написания тест-кейсов и их ручных прогонов
У вас в команде нет выделенных специалистов по автоматизации тестирования
Вы хотите сократить время на проведение регресса и выпускать релизы чаще
Вы хотите снизить влияние человеческого фактора на процесс тестирования
Вы хотите в целом повысить качество своего продукта без расширения команды и увеличения издержек
Мы не утверждаем, что наш подход — это серебряная пуля для всех проектов. У каждого своя специфика. Но наш опыт доказывает: AI уже сегодня может кардинально изменить процесс тестирования, уменьшить рутину и повысить качество.
А что думаете вы? Готовы ли доверить ИИ создание тест-кейсов?
Если ваши боли совпадают с теми, что мы описали выше, давайте обсудим, как Agentum AI может помочь именно вашей команде. Напишите нам mail@itfbgroup.ru — мы подберем удобное время и покажем, как интегрировать AI-тестировщика в ваши процессы.
RodionGork
так изучите :)
ну вот правда, чем тратить время на написание статей "как мы в очередной раз выкрутились лишь бы не делать правильно" - можно было заняться прокачиванием в программизьме
сами же потом нахлебаетесь от своих ИИ-нагенеренных тестов, это шляпа уже известная
главное - писать о том что у вас тестировщики не умеют писать автотесты и вы делегируете это стороннему ИИ - это же антиреклама конторы :) не думаю что все заказчики восхитятся