ИИ в Test IT: как составить задачу для качественной генерации тестов
На платформе управления тестированием Test IT можно автоматизировать создание тестов с помощью искусственного интеллекта: тест-кейсы генерируются прямо в TMS из описания задачи в таск-трекере. Платформа поддерживает YandexGPT, GigaChat и совместимые с OpenAI нейромодели. В статье разберем, как описывать задачи, чтобы результат с первого раза получался качественными и правки сводились к минимуму.
Искусственный интеллект не заменит QA в команде. Любой ИИ-помощник — это условный джун, который быстро пишет черновики тест-кейсов, а адаптирует их под проект уже живой тестировщик. Результат — меньше ручной работы, быстрее старт, выше покрытие.
— Анастасия Николаева, менеджер продукта Test IT
Как подключить ИИ в Test IT
Чтобы генерация тестов-кейсов работала в TMS, настройте три вещи:
-
Интеграцию с таск-трекером
-
Интеграцию с ИИ-сервисом
-
Добавить обе настройки в нужный проект
➡️ Подробно о том, как подключить необходимые интеграции, читайте в гайде.
Больше об использовании OpenAI-совместимых сервисов мы рассказывали на вебинаре:
Как оформить задачу в таск-трекере
ИИ-модель работает только с текстом из описания задачи в таск-трекере. Чем точнее и полнее текст, тем лучше получаются тесты.
ИИ не может:
-
Анализировать вложенные файлы: скриншоты, PDF, DOCX, схемы и т. п.
-
Переходить по ссылкам и забирать оттуда контент: например, в Figma или в Confluence
-
Читать комментарии и обсуждения к задаче
Что делать вместо этого? Перенесите ключевую информацию в тело задачи. Приводим пять правил, которые мы используем в команде:
1. Придерживайтесь понятной структуры
ИИ, как и человек, лучше воспринимает структурированную информацию. Используйте четкие разделы:
-
Краткое описание. Текст должен точно отражать суть задачи
❌ Плохой пример: Исправить баг с кнопкой
✅ Хороший пример: Исправить некорректное поведение кнопки «Отправить» в форме обратной связи на странице «Контакты» -
Цель и предпосылки. Зачем нужна эта функциональность? Какую проблему она решает?
-
Детальное описание. Это самый важный раздел, который следует построить по схеме 5W.
-
Требования. Список конкретных, измеримых критериев.
-
Дополнительная информация. Данные для тестирования, запросы API, ограничения.
2. Составьте детальное описание по правилу 5W
Представьте, что вы объясняете задачу коллеге, который не в курсе проекта. Постройте раздел по схеме 5W (Who, What, Where, When, Why), отвечая на вопросы как на ориентиры.
- Who? (Для кого?). Укажите роль пользователя, кому будет доступна фича
✅ Функция доступна только для авторизованных пользователей с ролью «Администратор»
- What? (Что?). Опишите, что именно нужно сделать, действия пользователя и реакцию системы максимально детально.
❌ Пользователь вводит email и получает уведомление.
✅ В поле Email пользователь вводит валидный email-адрес в формате example@domain.com. После нажатия кнопки «Подписаться» система должна отобразить тост-уведомление зеленого цвета с текстом «Вы успешно подписались».
- Where? (Где?). Укажите конкретное место в системе, где фича будет вызываться, находиться.
✅ Форма находится в футере главной страницы.
- When? (Когда?). Опишите триггеры и условия срабатывания фичи.
✅ Функция активируется, когда товар в корзине находится на акции. Уведомление появляется сразу после обновления количества товара в корзине.
- Why? (Почему? / С какой целью?). Это помогает ИИ понять бизнес-логику для создания более осмысленных проверок.
✅ Цель — увеличить конверсию в покупку, напоминая пользователю о выгоде.
3. Пишите конкретно и однозначно
Избегайте двусмысленностей и не используйте местоимения вроде «этот», «тот», «там», «здесь» без уточнений. ИИ не поймет, к чему они относятся.
❌ Если здесь пользователь ввел неправильные данные, нужно показать ошибку.
✅ Если поле «Номер телефона» содержит менее 10 цифр, под полем должна отобразиться красная текстовая ошибка «Введите номер телефона полностью».
4. Укажите сценарии использования (user stories)
Это готовый материал для позитивных тестов.
✅ Как незалогиненный пользователь, я хочу нажать кнопку «Восстановить пароль» на странице логина, чтобы получить на email инструкцию по сбросу пароля.
5. Четко сформулируйте критерии приемки
Это основа для тестов. Формулируйте их как условия, которые можно проверить.
✅
Дано: Пользователь находится на странице товара.
Когда: Он нажимает кнопку «Добавить в корзину».
Тогда: Иконка корзины в хедере показывает цифру «1», а кнопка меняет текст на «В корзине».
✅
Дано: Пользователь добавил товар в корзину.
Когда: Он обновляет страницу.
Тогда: Состояние корзины (товар и количество) сохраняется.
6. Не забывайте про данные для тестирования
ИИ сможет сгенерировать тесты с конкретными примерами, если вы их предоставите.
-
Примеры валидных данных:
email1@test.com, email2@example.org
-
Примеры невалидных данных:
invalid-email, user@domain (без .com)
-
Тестовые пользователи:
test_user_admin, test_user_guest
-
Конкретные товары / ID:
ID товара «Телефон X» = 789
Чек-лист описания задачи перед генерацией
-
Описание структурировано: используются заголовки и списки
-
Указаны все сценарии использования
-
Прописаны четкие критерии приемки
-
Описаны все состояния UI: успех, ошибка, загрузка
-
Приведены конкретные примеры данных для тестирования
-
Отсутствуют двусмысленности и местоимения без четкого указания.
-
Вся ключевая информация из макетов и обсуждений перенесена в текстовое описание.
Пример: как описание задачи влияет на результат генерации
|
Очень плохое описание |
Плохое описание |
Хорошее описание |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Задача
|
Задача
Макет фича-флаг так как показ баннера только для lite и trial, то делаем под фича флаг |
Краткое описание: разработать баннер “Черная пятница” для тарифов Lite, Trial, Standard для страницы библиотеки тестов в TMS Цель и предпосылки (Background): уведомить пользователей о действующей скидке ко дню Черной пятницы, тем самым увеличив продажи годовых подписок. Детальное описание:
Критерии приемки:
Дополнительная информация (Notes):
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Тест 1: [AI-2520] Баннер виден для бесплатного пользователя Проверка отображения баннера при включенном фича-флаге для пользователя с бесплатным тарифом
Тест 2: [AI-2520] Баннер скрыт для платного пользователя Проверка отсутствия баннера при включенном фича-флаге для пользователя с платным тарифом
Тест 3: [AI-2520] Баннер скрыт при выключенном фича-флаге Проверка отсутствия баннера при выключенном фича-флаге для бесплатного пользователя
Тест 4: [AI-2520] Переход к покупке подписки с баннера Проверка корректного перехода на страницу покупки подписки при клике на баннер
Тест 5: [AI-2520] Баннер виден для нового бесплатного пользователя Проверка отображения баннера для только что зарегистрированного пользователя
Тест 6: [AI-2520] Баннер виден после смены тарифа на бесплатный Проверка появления баннера после downgrade с платного тарифа на бесплатный
Тест 7: [AI-2520] Баннер скрыт после смены тарифа на платный Проверка скрытия баннера после upgrade с бесплатного тарифа на платный
Тест 8: [AI-2520] Баннер отображается при частичном rollout фича-флага Проверка отображения баннера при включении фича-флага для 50% пользователей
Тест 9: [AI-2520] Внешний вид и содержимое баннера Проверка корректности отображаемого текста и стилей баннера
Тест 10: [AI-2520] Баннер виден в разных разделах TMS Проверка отображения баннера при навигации по разным разделам системы
|
Тест 1: [AI-2527] Проверка отображения баннера для пользователя с тарифом trial Убедиться, что баннер Черной пятницы отображается для пользователя с тарифом trial
Тест 2: [AI-2527] Проверка отображения баннера для пользователя с тарифом lite Убедиться, что баннер Черной пятницы отображается для пользователя с тарифом lite
Тест 3: [AI-2527] Проверка отсутствия баннера для пользователя с тарифом premium Убедиться, что баннер не отображается для пользователей с тарифом premium
Тест 4: [AI-2527] Проверка доступности кнопки 'Купить' для владельца пространства Убедиться, что кнопка 'Купить' доступна и ведет на страницу покупки для владельца пространства
Тест 5: [AI-2527] Проверка отсутствия кнопки 'Купить' для не владельца пространства Убедиться, что кнопка 'Купить' недоступна для пользователей без права владения пространством
Тест 6: [AI-2527] Проверка рецидива баннера через 3 дня после закрытия Убедиться, что баннер появляется снова через 3 дня после его закрытия
Тест 7: [AI-2527] Проверка фича-флага: включение отображения баннера Убедиться, что баннер отображается при включении фича-флага для тарифов trial и lite
Тест 8: [AI-2527] Проверка фича-флага: отключение отображения баннера Убедиться, что баннер не отображается при отключении фича-флага
Тест 9: [AI-2527] Проверка видимости баннера для всех пользователей Убедиться, что баннер отображается для всех пользователей, независимо от статуса владения пространством
Тест 10: [AI-2527] Проверка работы таймера рецидива баннера Убедиться, что баннер появляется через 3 дня после закрытия, даже если пользователь не владеет пространством
|
Тест 1: [AI-2525] Отображение баннера для владельца пространства на тарифе Lite Проверка отображения баннера с кнопкой 'Купить' для пользователя с ролью 'Владелец' на тарифе Lite при включенном фича-флаге.
Тест 2: [AI-2525] Отображение баннера для тестировщика на тарифе Trial Проверка отображения баннера без кнопки 'Купить' для пользователя с ролью 'Тестировщик' на тарифе Trial при включенном фича-флаге.
Тест 3: [AI-2525] Скрытие баннера при выключенном фича-флаге Проверка, что баннер не отображается, когда фича-флаг back_friday = false.
Тест 4: [AI-2525] Закрытие баннера и проверка его скрытия Проверка функциональности закрытия баннера кликом на 'x'.
Тест 5: [AI-2525] Повторное отображение баннера через 3 дня после закрытия Проверка, что баннер снова появляется спустя 3 дня после его закрытия.
Тест 6: [AI-2525] Переход по кнопке 'Купить' и подстановка промокода Проверка клика по кнопке 'Купить' для владельца пространства и подстановки промокода bf_10.
Тест 7: [AI-2525] Проверка адаптивности баннера Проверка изменения размеров баннера при изменении ширины окна браузера.
Тест 8: [AI-2525] Баннер не отображается в коробочной версии Проверка, что баннер не отображается для коробочной версии продукта.
Тест 9: [AI-2525] Проверка содержимого баннера Проверка наличия всех обязательных элементов на баннере.
Тест 10: [AI-2525] Поведение при множественном открытии страницы Проверка, что баннер отображается при каждом открытии страницы, если не был закрыт.
|
Как видно из примеров, чем точнее и полнее задача, тем выше качество тестов. Далее разберем, какие параметры влияют на сам процесс генерации.
Как параметры ИИ-генерации влияют на результат
Промпт. Что запрашиваем у ИИ-модели
Разработай ключевое количество функциональных тестовых кейсов с различными вариациями тестовых данных и применением техник тест-дизайна. Проверки должны полностью покрывать требования: {_Требования_}
Промпт зашит в коде. В нем указан четкий формат результата, который парсится программой. Пользователи не могут менять промт, чтобы не ломать результат.
Температура. Степень вариативности
Температура — это параметр языковой модели, который контролирует уровень случайности (энтропии) при генерации текста.
Представьте, что ИИ — это очень умный, но слишком креативный джун, поэтому мы ограничиваем вариативность его результатов. Технически температура влияет на то, как модель выбирает следующее слово из списка возможных вариантов.
-
При температуре = 0 модель всегда выбирает самый вероятный с ее точки зрения вариант. Результат предсказуем и может быть скучным.
-
При температуре > 0 модель «взвешивает» варианты, давая шанс менее вероятным, но потенциально более интересным словам. Чем выше температура, тем больше этот шанс и креативнее результат.
Проще говоря, низкая температура заставляет ИИ думать стандартно, а высокая позволяет фантазировать. Качество описания напрямую влияет на то, какую температуру мы можем использовать.
-
При небрежном описании даже с низкой температурой ИИ может галлюцинировать, потому что ему не хватает данных.
-
При качественном, детальном описании мы можем слегка повысить температуру, чтобы ИИ мог опираться на четкие требования и генерировать по-настоящему ценные, неочевидные тест-кейсы, которые найдут скрытые баги.
В Test IT температура генерации по умолчанию = 0.7. В будущем мы дадим пользователям возможность управлять этим параметром.
Количество тестов
Все ИИ-модели в Test IT генерируют 10 тест-кейсов по одной задаче, это связано с ограничением самих моделей. В будущем мы дадим пользователям возможность самостоятельно задавать число сгенерированных тестов для каждой задачи.
Безопасность данных при генерации тестов
В нейросеть передается только описание из задачи. Если оно не содержит чувствительной информации и вы доверяете своему таск-трекеру, проблем не возникнет.
Два правила, чтобы оставаться спокойным по вопросам безопасности:
-
Минимизируйте данные. Придерживайтесь принципа «не передавать ничего лишнего». В описании задачи избегайте:
-
Реальных паролей, ключей API, токенов
-
Персональных данных клиентов: имен, телефонов, email
-
Сверхконфиденциальных деталей бизнес-логики, которые являются ключевым конкурентным преимуществом, если в них нет прямой необходимости для тестирования.
-
-
Сводите к анонимности и обобщайте. Если нужны данные, используйте тестовые данные:
-
Вместо реального имени клиента: Иван Иванов → Тестовый Пользователь 1.
-
Вместо реального email: client@our-company.com → test_user@example.com.
-
Если сомневаетесь, согласуйте описание задачи с руководителем или командой информационной безопасности.
Итог. Что запомнить
Максимально декомпозируйте задачи, описывайте все словами, следуйте правилам и нашему чек-листу, но не бойтесь экспериментировать, делать выводы и настраивать собственные правила, чтобы получать максимально качественные тесты.
ИИ — ваш помощник, но не замена: работа над описанием задачи на входе помогает получить максимально качественные тесты, которые требуют минимум правок.
Попробуйте возможности Test IT прямо сейчас