Термос Беспалова
Уровень · Продвинутый

Нейросети для тестировщика: автотесты и чек-листы

Как ускорить тест-дизайн и автоматизацию с помощью нейросети, почему сгенерированные тесты часто ничего не проверяют и как тестировать сами ИИ-функции продукта.

Нейросети для тестировщика закрывают две трудоёмкие части работы: перебор сценариев при тест-дизайне и написание кода автотестов. По требованиям модель за минуты составляет чек-лист с граничными значениями и негативными сценариями, а агент в терминале пишет тесты на Playwright или pytest, запускает их и чинит, пока они не пройдут. Именно здесь и прячется главная ловушка: тест, который проходит, ещё не значит тест, который что-то проверяет.

В статье — рабочий процесс тестировщика с нейросетью: от требований до отчёта о дефекте, с промптами и правилами, которые не дают модели создавать видимость покрытия. Отдельный раздел — о том, как тестировать функции продукта, которые сами построены на языковых моделях. Готовые инструкции для агентов — юнит-тесты, e2e, разработка через тесты, ревью кода — собраны на полке скиллов для тестировщика.

Где нейросеть помогает тестировщику

Тестирование — одна из профессий, где нейросеть даёт эффект быстро, потому что многие задачи сводятся к систематическому перебору. Человек устаёт на двадцатом сценарии и пропускает очевидное, модель перебирает сотню без усталости. Зато модель не знает, какие сценарии важны для бизнеса, где продукт ломался раньше и что на самом деле делают пользователи.

ЗадачаРоль нейросетиГлавный риск
Чек-листы и тест-кейсыперебор сценариев по требованияммного неважных проверок
Автотестыкод, запуск, исправлениетесты без реальных проверок
Баг-репортыструктура по логам и шагамдодуманные шаги воспроизведения
Нестабильные тестыанализ истории падениймаскировка проблемы ожиданиями
Тестовые данныегенерация по схемеданные слишком «чистые»
Исследовательское тестированиеидеи для атак на функциюпочти нет

Инструменты те же, что у разработчиков: чат с сильной моделью для тест-дизайна, агент в терминале или редакторе — Claude Code, Codex CLI, агент Cursor — для автотестов. Для браузерных тестов полезен MCP-сервер Playwright: агент открывает страницу, кликает, смотрит на результат и по этому пишет тест. Как подключать такие серверы, разобрано в гайде MCP: как подключить сервисы к ассистенту.

Тест-дизайн: чек-листы и тест-кейсы из требований

Классические техники тест-дизайна — классы эквивалентности, граничные значения, таблицы решений, переходы состояний, попарное тестирование — модель знает и применяет по просьбе. Если назвать технику явно, результат получается систематическим, а не случайным набором проверок. Без этого модель выдаёт «проверить, что форма отправляется» и «проверить пустое поле» — полезно, но мало.

Так не надонапиши тест-кейсы для формы регистрации
Так лучшеТребования к полю «Возраст» и к кнопке «Зарегистрироваться» ниже. Примени классы эквивалентности и граничные значения: выпиши классы, границы и значения на границах и рядом с ними. Затем таблицу решений для комбинаций «возраст допустим / согласие отмечено / почта подтверждена». Для каждой проверки — ожидаемый результат из требований; если требования его не определяют, пометь [нет в требованиях].

Последняя пометка — самая ценная часть результата. Когда модель систематически перебирает комбинации, она натыкается на случаи, которые требования не описывают: что происходит при возрасте ровно 18, если граница записана как «старше 18»; можно ли зарегистрироваться без подтверждения почты, если согласие отмечено. Эти вопросы стоит отправить продакту до начала разработки — дешевле исправить требование, чем баг. Как нейросеть помогает писать сами требования, разобрано в гайде нейросети для продакт-менеджера.

Второй шаг — приоритизация. Модель генерирует 80 проверок там, где на регрессию есть время для 20. Попросите её разметить каждую по риску: вероятность дефекта и ущерб, если он попадёт в релиз. Итоговую разметку правьте по своему знанию продукта — модель не знает, что модуль оплаты ломался трижды за полгода, а экран настроек не трогали с прошлого года.

Для исследовательского тестирования модель — хороший партнёр по мозговому штурму. Опишите функцию и попросите 20 способов её сломать с позиции разных пользователей: торопливого, злоумышленника, пользователя с медленным интернетом, с экранной лупой, с другим часовым поясом. Часть идей окажется очевидной, но несколько обычно дают реальные дефекты.

Последний шаг тест-дизайна — перенос в систему управления тестированием. Модель переводит чек-лист в формат импорта вашей системы — CSV или XML с полями шагов, ожидаемых результатов, приоритета и ссылок на требования — и связывает каждую проверку с пунктом требований. Благодаря этой связи потом видно, какие требования не покрыты ни одной проверкой, а при изменении требования — какие тест-кейсы нужно пересмотреть. Формат импорта дайте модели образцом из 2–3 уже существующих кейсов, иначе она придумает свой.

Автотесты: как получать тесты, которые что-то проверяют

Агент пишет автотесты быстро, и в этом опасность. Типичные дефекты сгенерированных тестов: проверка, которая всегда истинна (элемент существует на странице, где он существует всегда); мок, который подменяет именно ту логику, которую нужно проверить; жёсткие паузы вместо ожидания состояния; и самое неприятное — агент, который делает упавший тест зелёным, меняя ожидаемый результат, а не код. Всё это даёт растущую цифру покрытия при нулевой пользе.

Проверка теста мутацией. Простой способ убедиться, что тест что-то проверяет, — сломать код и посмотреть, упадёт ли тест. Попросите агента для каждого нового теста внести в проверяемый код заведомую ошибку, запустить тест, убедиться, что он упал, и откатить изменение. Тест, который не падает на сломанном коде, нужно переписать. Для системной проверки существуют инструменты мутационного тестирования.

Качество тестов сильно зависит от образца. Покажите агенту 2–3 существующих теста проекта с вашими фикстурами, пейдж-обджектами и соглашениями — и новые будут в том же стиле. Правила — запрет на жёсткие паузы, запрет менять ожидаемые значения без согласования, обязательная проверка результата действия, а не только отсутствия ошибки — запишите в файл памяти проекта, который агент читает в начале каждой сессии.

Промпт для агентаНапиши e2e-тесты на Playwright для сценария возврата заказа по чек-листу docs/qa/returns.md, пункты 1–12. Стиль и фикстуры — как в tests/e2e/checkout.spec.ts. Селекторы только по роли и доступному имени, без CSS-классов. Никаких waitForTimeout — только ожидание состояния. Каждый тест проверяет итоговое состояние: статус заказа в интерфейсе и запись в API /orders/{id}. После написания проверь каждый тест мутацией, как описано в CLAUDE.md, и перечисли результаты.

Селекторы по роли и доступному имени — не только вопрос устойчивости тестов. Если тест не может найти кнопку по её имени, скорее всего, её не найдёт и экранный диктор, так что автотесты попутно проверяют доступность интерфейса. Для юнит-тестов то же правило в другой форме: тестируйте поведение через публичный интерфейс, а не внутреннюю реализацию, иначе каждый рефакторинг будет ломать десятки тестов.

Баг-репорты, логи и нестабильные тесты

Из сырых заметок, скриншотов и фрагмента лога модель собирает баг-репорт в формате команды: заголовок по шаблону «где — что — при каком условии», шаги воспроизведения, ожидаемый и фактический результат, окружение, серьёзность. Контролируйте шаги: если в заметках их было 4, а в отчёте стало 6, модель достроила недостающее, и разработчик пойдёт воспроизводить то, чего вы не делали.

С логами модель полезна как быстрый читатель. Лог на 5000 строк она просматривает за секунды и находит первую ошибку в цепочке, повторяющиеся предупреждения перед сбоем, расхождение во времени между сервисами. Её версия причины — гипотеза, которую нужно подтвердить воспроизведением. Перед загрузкой логов в облачный сервис уберите токены, пароли и персональные данные — в логах их бывает больше, чем кажется.

Нестабильные тесты — отдельная боль автоматизации. Дайте агенту историю запусков за 2–4 недели и попросите сгруппировать падения по причинам: таймауты, гонки при параллельном запуске, зависимость от порядка тестов, внешние сервисы, тестовые данные. Опасный ответ модели на нестабильность — увеличить таймаут или добавить повторный запуск. Иногда это правильно, но чаще маскирует реальную гонку в продукте, которую потом найдут пользователи.

Тестовые данные без персональных данных

Модель генерирует тестовые данные по схеме: клиенты, заказы, адреса, платежи с нужными распределениями и крайними случаями. Это прямой способ избежать использования копий боевой базы. Копия продакшн-базы в тестовом окружении — частая причина утечек: к тесту доступ шире, защита слабее, а персональные данные там настоящие. С 30 мая 2025 года утечка данных о 1000 и более людях обходится организации в штраф от 3 до 5 млн ₽, а повторная — в оборотный штраф.

Слабое место сгенерированных данных — они слишком аккуратные. В реальной базе есть фамилии через дефис, адреса без номера квартиры, телефоны в пяти форматах, имена на латинице, пробелы в конце строки, эмодзи в комментариях к заказу. Попросите модель явно включить такие случаи — отдельным набором «грязных» данных. Большинство дефектов обработки ввода находится именно на них.

ПромптСгенерируй скрипт, который создаёт 500 тестовых клиентов по схеме customers.sql. 80% — обычные записи, 20% — крайние случаи: двойные фамилии через дефис, имена на латинице, отсутствующее отчество, телефоны в форматах +7, 8 и без кода, адреса без квартиры, строки максимальной длины поля, пробелы в начале и конце. Никаких реальных людей: имена составлять из списков, телефоны — из тестового диапазона. Рядом выведи, сколько записей каждого типа создано.

Как тестировать ИИ-функции продукта

Всё больше продуктов содержат функции на языковых моделях: чат-бот поддержки, генерацию описаний, умный поиск. Их тестирование устроено иначе: ответ меняется от запуска к запуску, и проверка «ожидаемый результат равен фактическому» не работает. Вместо неё нужен набор оценок — фиксированный список входов с критериями хорошего ответа, который прогоняется при каждом изменении промпта или модели.

Критерии бывают трёх видов. Проверяемые кодом: ответ в нужном формате, укладывается в длину, содержит ссылку на источник, не содержит запрещённых слов. Проверяемые другой моделью: ответ опирается на предоставленный документ, не противоречит ему, вежлив. И проверяемые человеком на выборке — для того, что трудно формализовать. Запуск одного входа несколько раз показывает, насколько стабилен ответ: если из 10 запусков 3 неверны, функция не готова.

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

Автор: Артём Беспалов, маркетинговое ИИ-агентство «Термос Беспалова», Калининград.

Источники: Playwright, рекомендации по написанию тестов · КонсультантПлюс о штрафах за утечки с 30.05.2025 (проверено 25.09.2026).

Гайды 2026

Разобрано до шаблонов: три гайда по 490 ₽

Всё, что в статьях идёт по верхам, здесь собрано в PDF: пошаговые схемы, готовые промпты и шаблоны, которые можно взять и применить в тот же день.

Обложка гайда «Промпты, которые работают: система и 60 готовых шаблонов»

Промпты, которые работают: система и 60 готовых шаблонов

Как писать запросы к нейросетям так, чтобы ответы можно было брать в работу без переписывания

  • Формула промпта из семи элементов с разбором «плохо / хорошо»
  • Работа с контекстом и файлами: как кормить модель данными
  • Итерации: как дорабатывать ответ, а не начинать заново
  • Few-shot и цепочки промптов со схемами

PDF, 57 стр., A4

Посмотреть фрагмент (PDF)
Обложка гайда «Свой ИИ-агент за выходные: пошагово, с кодом и без»

Свой ИИ-агент за выходные: пошагово, с кодом и без

Три рабочих проекта, выбор платформы, безопасность, стоимость и тесты: от агента в конструкторе до Python-кода с MCP

  • Цикл агента и пять архитектур со схемами
  • Честный раздел «когда агент не нужен» и дерево решений
  • Сравнение платформ no-code и кода по девяти критериям
  • Три проекта пошагово: секретарь заявок, аналитик отчёта, агент на коде

PDF, 51 стр., A4

Посмотреть фрагмент (PDF)
Обложка гайда «Claude с нуля: от первого чата до скиллов и Claude Code»

Claude с нуля: от первого чата до скиллов и Claude Code

Модели, проекты, 18 сценариев с промптами, скиллы, MCP и Claude Code для тех, кто не пишет код

  • Как выбрать модель Claude по задаче (актуально на 25.09.2026)
  • Схема интерфейса и разбор возможностей: проекты, артефакты, поиск, память, рассуждение
  • Формула запроса и приёмы, которые работают именно у Claude
  • 18 рабочих сценариев с готовыми промптами: письма, договоры, презентации, таблицы, исследования

PDF, 42 стр., A4

Посмотреть фрагмент (PDF)

Оплата на стороне платёжного сервиса. После оплаты вы вернётесь на сайт, и файл откроется сразу. Оплачивая, вы принимаете оферту.

Дальше

Что почитать дальше

Скиллы для тестировщика

Готовые инструкции для агентов: юнит-тесты, e2e, TDD, ревью кода.

Открыть

Нейросети для разработчика

Рабочий стек и правила постановки задач агенту — общие для кода и тестов.

Открыть

Claude Code с нуля

Установка агента в терминале и первые задачи в репозитории.

Открыть
Вопросы

Частые вопросы

Какие задачи тестировщик может отдать нейросети?
Тест-дизайн по требованиям с классами эквивалентности и граничными значениями, чек-листы, код автотестов, баг-репорты по заметкам и логам, анализ нестабильных тестов, генерацию тестовых данных. Решение, что важно проверить перед релизом, остаётся за тестировщиком.
Можно ли доверять автотестам, которые написала нейросеть?
Только после проверки. Сгенерированные тесты часто проверяют то, что истинно всегда, подменяют моками тестируемую логику или «чинятся» изменением ожидаемого результата. Простой способ проверки — внести в код заведомую ошибку и убедиться, что тест падает.
Какие инструменты использовать для автотестов с ИИ?
Агент в терминале или редакторе — Claude Code, Codex CLI, агент Cursor — и ваш обычный фреймворк: Playwright, pytest, Jest. Для браузерных тестов удобен MCP-сервер Playwright, через который агент сам открывает страницу и проверяет поведение перед написанием теста.
Можно ли использовать копию боевой базы для тестов?
Нежелательно: персональные данные в тестовом окружении защищены хуже и часто утекают. Нейросеть генерирует тестовые данные по схеме, включая крайние случаи. С 30 мая 2025 года утечка данных о 1000 и более людях обходится организации в штраф от 3 до 5 млн ₽.
Как тестировать чат-бот на нейросети?
Набором оценок вместо точного сравнения ответов: фиксированные входы, критерии, проверяемые кодом, другой моделью или человеком, и несколько запусков каждого входа для оценки стабильности. Отдельно — регулярный прогон атак: попытки выведать системный промпт, выйти за рамки темы, выполнить спрятанную инструкцию.
Заменит ли нейросеть тестировщика?
Нет. Она берёт на себя перебор сценариев и написание кода, но не знает, какие риски важны для бизнеса, где продукт ломался раньше и как ведут себя реальные пользователи. Тестировщик с нейросетью больше времени тратит на анализ рисков и исследовательское тестирование.

Запускаете ИИ-бота и хотите быть уверены в ответах?

Бот, который отвечает клиентам, нужно тестировать как продукт: набор оценок, атаки, регулярный прогон после каждого изменения. В «Термос Беспалова» собираем ИИ-ассистентов вместе с такой проверкой.

Получить консультацию

Пн–Вс, 10:00–20:00. Отвечаю лично.