惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
L
LINUX DO - 热门话题
D
DataBreaches.Net
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
P
Proofpoint News Feed
The Register - Security
The Register - Security
N
Netflix TechBlog - Medium
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 司徒正美
J
Java Code Geeks
Engineering at Meta
Engineering at Meta
Y
Y Combinator Blog
月光博客
月光博客
Hugging Face - Blog
Hugging Face - Blog
Google DeepMind News
Google DeepMind News
Vercel News
Vercel News
M
MIT News - Artificial intelligence
The Cloudflare Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
V
V2EX
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Threatpost
I
Intezer
Recent Announcements
Recent Announcements
博客园 - 【当耐特】
Google DeepMind News
Google DeepMind News
H
Hackread – Cybersecurity News, Data Breaches, AI and More
N
News and Events Feed by Topic
L
Lohrmann on Cybersecurity
小众软件
小众软件
雷峰网
雷峰网
L
LINUX DO - 最新话题
Application and Cybersecurity Blog
Application and Cybersecurity Blog
aimingoo的专栏
aimingoo的专栏
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
博客园 - 叶小钗
P
Privacy & Cybersecurity Law Blog
博客园 - Franky
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
F
Fortinet All Blogs
阮一峰的网络日志
阮一峰的网络日志
T
The Exploit Database - CXSecurity.com
G
Google Developers Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
P
Privacy International News Feed
V
Vulnerabilities – Threatpost
Scott Helme
Scott Helme
Last Week in AI
Last Week in AI

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Генерация тестовой документации с ИИ
Алена Метенева · 2026-06-17 · via Все публикации подряд на Хабре

Генерация тестовой документации с ИИ

Простой

5 мин

3

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

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

Зачем вообще отдавать тест-дизайн нейросети?

Причины все те же:

Скорость — она реально чувствуется на объёмных требованиях. На маленькой фиче из двух абзацев вы потратите больше времени на промпт и контекст, чем сэкономите.

Детализация — модель учитывает в сценарии все мелочи из ТЗ и расписывает все подробнее. У тестировщиков часто не хватает времени на детализацию шагов и ожидаемых результатов. Опытные инженеры многое держат в голове, но это потом больно аукается, когда "носитель знаний" уходит из команды или когда нужно онбордить нового человека. Времени на онбординг всегда мало, и детальные тест-кейсы могут снять часть нагрузки с ментора.

Формат под TMS — если прописать четкие правила по итоговому формату, на выходе можно получить не простыню текста в чате с ИИ, а файлы, которые реально импортировать в вашу TMS.

Какая информация нужна для старта?

Если вы воспользовались советами из моих предыдущих статей, то к этому моменту у вас уже есть контекст продукта и требования по фиче , протестированные и исправленные аналитиками в случае необходимости. К этому нужно добавить следующие документы:

Правила написания тест-кейсов, основанные на стандартах, принятых в вашей компании или команде:

  • где хранятся кейсы (у нас это Zephyr);

  • как формулировать шаги и ожидаемые результаты;

  • насколько детальными должны быть тестовые данные;

  • нужно ли указывать окружение или предусловия и для каких кейсов;

  • особые условия (например, точный текст ошибки в негативных кейсах);

  • какие есть ограничения и антипаттерны (не делать отсылки к другим кейсам, не использовать условную логику в шагах и т.д.).

Эталонный тест-кейс — один «идеальный» пример. Я выгружала его из Zephyr в CSV формате: модель легко читает csv и сразу видит реальные поля и стиль описания шагов, а не выдумывает свой шаблон.

Базовый сценарий. Не обязательно, но желательно для тех задач, если фича продолжает уже знакомый путь. Например, в калькуляторе страховой премии пользователь идет по экранам постепенно. И разработка тоже ведется постепенно от первого экрана к последнему. Когда у меня есть готовые тест-кейсы для первого экрана, я даю их нейросети для генерации тестов на последующие экраны. Если у меня уже есть идеально описанные шаги, то зачем просить нейросеть сделать ту же работу дважды? Если подумать, то мы тоже при написании новых кейсов часто клонируем старые и корректируем их или дополняем новыми условиями. С ИИ этот принцип тоже работает. К тому же, такой подход унифицирует документацию и уменьшает вероятность ошибок.

Пошаговая инструкция

Шаг 1. Собрать входные файлы в одну папку

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

Шаг 2. Подготовить промпт

Беру готовый шаблон и подкручиваю под продукт или прошу ИИ собрать промпт под конкретную задачу. Второй вариант обычно быстрее и удачнее. В промпте фиксирую: какие файлы на входе, какие артефакты на выходе, ограничения (не выходить за рамки ТЗ, не придумывать данные, не ссылаться на другие кейсы).

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

Шаг 3. Запустить генерацию

Загружаю файлы, даю задачу вроде «выполни задание из файла …» и жду.

С тем промтом, который я использую сейчас, у меня получается такой набор документации:

Use cases в формате .md — этот документ я проверяю первым. По нему сразу видно, как модель поняла требования и какие сценарии выделила. Если use cases написаны неправильно, то дальше проверять бессмысленно, и я возвращаюсь к контексту или промпту. Пример use cases:

End-to-end тесты в формате .md — подробные е2е тесты для вдумчивого ревью: все шаги, все тестовые данные, детальные ожидаемые результаты.

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

Чек-лист в формате .md — позитивные и негативные проверки по элементам или компонентам. Также подлежат тщательной проверке тестировщиком.

Матрица покрытия в формате .csv — исключительно для проверки того, что все требования покрыты тестами.

У вас может быть свой набор выходной документации.

Шаг 4. Ревью

Про ревью уже немного написала в предыдущем пункте. Что важно: ревью должен делать опытный специалист, который мог бы написать то же самое самостоятельно, просто потратил бы на это больше времени. Если с ИИ работают джуны — финальное ревью должны выполнять миддлы и сеньоры. Иначе ошибки модели быстро станут «официальной документацией».

Ну и в целом принцип ревью один и тот же: если вы нашли у ИИ ошибку из-за недостатка информации, нужно дополнить требования или контекст. Если вы понимаете, что ошибка из-за неточного промта, то правите промт. Если же во время ревью вы понимаете, что модель делает что-то наперекор инструкциям, просто спросите у нее, почему она так делает. Чаще всего вы получите внятный ответ и сможете скорректировать задачу. У меня однажды было такое, что ИИ долго выдавал мне тест-кейсы, написанные не в соответствии с моими требованиями. После каждой итерации я добавляла в промт новый запрет, но это не помогало. В конце концов, я задала вопрос агенту "Ты что, вообще не читаешь мои инструкции?". На что он мне ответил: "Читаю, но там уже так много запретов и указаний, как НЕ надо делать, что я не понимаю, как НАДО делать". В общем, оказалось, что ИИ лучше работает с позитивными установками, чем с негативными, и я теперь стараюсь не забывать об этом.

Шаг 5. Итерации

Сколько итераций надо сделать, прежде чем остановиться и сдаться? У меня правило такое: если я уже потратила больше времени на задачу с ИИ, чем у меня ушло бы вручную, и при этом я не получила ни одного приемлемого результата, я делаю вывод, что эту задачу лучше оставить человеку. Если же я получала хорошие ответы, но они были нестабильны, то я делаю паузу и возвращаюсь к задаче позже.

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

Шаг 6. CSV и импорт в Zephyr

Когда мое ревью и правки окончены и качество артефактов меня устраивают, я прошу ИИ перевести кейсы и чек-листы в формат CSV под наш Zephyr.

Тут ничего сложного нет - достаточно один раз выгрузить тест-кейс из Zephyr, проанализировать соответствие полей и прописать все в промте. Вот небольшой пример:

  • Precondition: заполняется только в первой строке тест-кейса, если предусловия указаны в тест-кейсе. Для остальных шагов поле Precondition остаётся пустым.

  • Steps: один шаг — одна строка. Нумерация шагов внутри каждого тест-кейса должна начинаться с 1 для каждого нового тест-кейса.

  • Test Data: заполняется, если есть тестовые данные для шага.

  • Test Type: всегда "E2E".

  • Automation: всегда "To be automated".

После того как формат подобрали, ИИ быстро превращает текстовые тесты в csv, а импорт в Zephyr у меня занимает меньше минуты. Пару раз при импорте у меня получалась ерунда, например, каждый шаг e2e-теста становился отдельным тест-кейсом. Причина оказалась банальной: в CSV название кейса (поле Name) должно быть указано только в строке первого шага. Если продублировать поле Name в каждой строке — Zephyr плодит отдельные кейсы.

Что в итоге

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

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

И обещанный бонус: в этом репозитории лежат более подробные инструкции и примеры промптов для использования ИИ в тестировании.