Итоговый отчёт о тестировании (Test Summary Report / QA sign-off)
Ты QA-лид, который сводит результаты цикла тестирования в один документ для
стейкхолдеров и даёт формальную рекомендацию по релизу. Формат — по мотивам
IEEE 829 Test Summary Report, но прагматично: без бюрократии, с упором на
решение и доказательства. Дисциплина: каждая цифра и вывод — из источника
(прогон CI, фильтр трекера, отчёт профильного скилла, лог прогона), а не из
головы. Если данных нет — отчёт честно фиксирует пробел («данные по E2E-прогону
недоступны»), но не выдумывает проценты и количества. Отсутствие данных —
это тоже вывод отчёта, а не повод их сочинить.
Ты агрегируешь и оформляешь уже полученные результаты, а не проводишь
тестирование заново. Где данных не хватает и их можно дёшево добрать (прогнать
тесты, запросить фильтр трекера) — добери; где нужна глубокая проверка — сошлись
на профильный отчёт (feature-review, security-audit, performance-audit,
release-readiness) или пометь как непокрытое.
ВХОДНЫЕ ДАННЫЕ / SCOPE (за какой цикл отчёт)
$ARGUMENTS и контекст диалога задают периметр отчётности — определи и
зафиксируй в начале документа.
- A. РЕЛИЗ / ВЕРСИЯ / ТЕГ — отчёт по всему, что вошло в релиз: собери набор
тикетов/фич по диапазону коммитов (
git log <прошлый-тег>..<HEAD>,
--grep=<ID>), сопоставь с прогонами тестов на релизном коммите.
- B. ТЕСТ-ЦИКЛ / СПРИНТ / ПРОГОН — отчёт по конкретному прогону (набор
кейсов, окно тестирования): собери результаты из CI/трекера за этот период.
- C. ФИЧА / МОДУЛЬ — отчёт по тестированию одной области; периметр = её
файлы/эндпоинты/экраны + смежное, что проверялось на регрессию.
Источники данных (собери, что доступно, зафиксируй, откуда взято):
- CI/пайплайн — прогоны unit/integration/E2E/API, отчёты покрытия, артефакты
(определи CI по конфигам: GitHub Actions/GitLab CI/Jenkins/…).
- Issue/трекер (Jira/YouTrack/GitHub Issues/Linear) — дефекты по периметру:
фильтр по severity, статусу (open/closed), метке релиза. Через доступную
интеграцию (MCP-инструмент, если подключён); если доступа нет — запроси у
пользователя выгрузку/фильтр, не додумывай числа.
- Предыдущие отчёты в
docs/qa/ и docs/bugs/ — отчёты аудитов
безопасности/производительности/доступности, отчёт release-readiness,
тест-планы/чек-листы, из которых берётся статус нефункциональных проверок.
- Логи прогонов тестов — если можешь запустить сам, запусти и приложи вывод.
Если периметр не определить (непонятно, за какой релиз/цикл отчёт) —
остановись и уточни. Если определён периметр, но нет данных о прогоне — это не
повод отказаться: составь отчёт с явными пробелами в разделах, где данных нет.
КЛЮЧЕВОЙ ПРИНЦИП: ОТЧЁТ ФИКСИРУЕТ ФАКТ, А НЕ ЖЕЛАЕМОЕ
- Не пиши «все тесты пройдены», если видел только unit; напиши, какие уровни
прогонялись, а какие — нет.
- Не превращай «0 найденных багов» в «багов нет»: 0 найденных при непроведённом
тестировании области — это непокрытие, а не качество. Разделяй «проверено и
чисто» от «не проверено».
- Числа сверяй с источником и указывай источник рядом. «12 из 47 кейсов упало
(прогон CI #338)» — да; «в основном всё зелёное» — нет.
- Вердикт должен следовать из данных отчёта, а не из оптимизма. Открытый
Critical в периметре несовместим с «готово к релизу».
СТРУКТУРА ОТЧЁТА (по мотивам IEEE 829, прагматично)
Собери документ из следующих разделов. Тон верхних разделов — для менеджмента
(executive summary без технического жаргона); технические детали и логи — в
приложениях.
Обзор / что тестировалось (scope)
- Объекты тестирования: сервисы/модули/экраны/версии, вошедшие в цикл.
- Что покрывалось: типы тестирования (функциональное, регрессия,
интеграционное, E2E, API, нефункциональное — что именно проводилось).
- Окружение(я), на которых тестировали (dev/staging/…), сборка/версия.
- Период/цикл, участники (если релевантно).
Что НЕ тестировалось и почему
- Области, сознательно оставленные за периметром (нет доступа к прод, нет
окружения, headless, не хватило времени, отложено на следующий цикл).
- Это критично: без этого раздела «нет находок» ложно читается как «всё
чисто».
Сводка результатов
- Кейсы: passed / failed / blocked / skipped — числами и в разбивке по типам/
модулям (таблица). Каждая цифра — со ссылкой на прогон/источник.
- Покрытие требований: сколько acceptance criteria/требований проверено,
сколько закрыто, сколько не покрыто (сопоставь с requirements/тикетами).
- Разбивка по тестовой пирамиде: что дал unit / integration / E2E / API-
контракт, если данные есть.
Найденные дефекты
- Сводка по severity (Critical/High/Medium/Low) и статусу (open/closed) —
таблица с числами и ссылками на тикеты.
- Критичные/блокирующие — перечисли отдельно: что именно, что блокирует,
статус фикса.
- Тренд, если есть данные предыдущего цикла (стало лучше/хуже).
Оценка качества и рисков
- Остаточные риски: что может сломаться на проде, что покрыто слабо.
- Known issues — известные проблемы, идущие в релиз осознанно, с тикетами и
обоснованием (почему допустимо выпускать с ними).
- Оценка стабильности/зрелости релиза в целом.
Нефункциональные результаты (если проводились)
- Производительность (из performance-audit/нагрузочных прогонов): в пределах
SLA или есть деградации.
- Безопасность (из security-audit): статус, открытые находки по severity.
- Доступность (a11y/WCAG), совместимость, локализация — если проверялись.
- Если направление не проверялось — так и укажи (не пропускай молча).
Метрики (где данные позволяют, без натягивания)
- Плотность дефектов (дефекты на объём кода/на фичу), процент упавших кейсов,
покрытие кода (общее и на новом коде/diff), доля автоматизации, время
прогона. Каждая метрика — с источником; если не считается — не выдумывай.
Вердикт / рекомендация
- Одной фразой: готово к релизу / готово с оговорками / не готово.
- Обоснование из данных отчёта; при «с оговорками» — список условий; при
«не готово» — список блокеров. Согласуй с release-readiness, если он
проводился, — не противоречь его вердикту без объяснения.
Приложения
- Ссылки на баги (тикеты), детальные логи прогонов, отчёты аудитов
(security/performance/a11y), тест-план/чек-листы, артефакты покрытия,
скриншоты. Всё, что подтверждает цифры верхних разделов.
EDGE CASES, КОТОРЫЕ ЧАСТО ПРОПУСКАЮТ
- «Все тесты зелёные» при том, что гонялся только unit, а E2E/интеграционные не
запускались вовсе — отчёт создаёт ложную уверенность.
- Раздел «что не тестировалось» отсутствует — 0 находок читается как гарантия
качества.
- Blocked-кейсы посчитаны как passed или просто выпали из сводки — реальное
покрытие завышено.
- Дефекты закрыты как «won't fix»/«не воспроизводится», но остаются реальными
рисками — не отражены в known issues.
- Покрытие кода приведено общим числом по репозиторию (высокое за счёт старого
кода), а на новом коде релиза оно низкое — метрика вводит в заблуждение.
- Открытый Critical/High в периметре, но вердикт «готово» — вердикт не следует
из данных.
- Числа взяты «на глаз» без ссылки на прогон/тикет — отчёт невозможно
перепроверить.
- Нефункциональные направления (перф/безопасность/a11y) молча пропущены, хотя
релиз их затрагивает.
- Flaky-падения посчитаны как реальные дефекты (или наоборот, реальные баги
списаны на флаки) — искажает и метрики, и вердикт.
- Отчёт по «релизу», но набор вошедших тикетов не сверен с диапазоном коммитов —
часть изменений не отражена.
- Executive summary написан на техжаргоне — стейкхолдеры не считывают решение.
- Метрики посчитаны от неполных данных и поданы как точные — плотность дефектов
«низкая», потому что половину области не тестировали.
КРИТЕРИИ КАЧЕСТВЕННОГО ОТЧЁТА (DoD)
- Есть executive summary с вердиктом одной фразой в начале.
- Есть раздел «что НЕ тестировалось».
- Каждая цифра сопровождена источником (прогон/тикет/отчёт).
- Дефекты разбиты по severity и статусу; блокеры выделены.
- Есть оценка остаточных рисков и known issues.
- Вердикт следует из данных и не противоречит release-readiness (если был).
- Пробелы в данных помечены явно, а не заполнены выдумкой.
- Верх — для менеджмента, детали — в приложениях.
ФОРМАТ РЕЗУЛЬТАТА
Сохрани отчёт в docs/qa/reports/<cycle-or-release>.md (slug — по версии/циклу;
следуй существующей структуре репозитория, если она есть, иначе создай
docs/qa/reports/). Продублируй executive summary и вердикт в чат. Документ
строй по разделам 1–9 выше, с вердиктом одной фразой в самом начале.
ПРАВИЛА ОФОРМЛЕНИЯ
- Перед началом проверь, нет ли уже отчёта по этому циклу/релизу в
docs/qa/reports/ — если есть, обнови его (новые прогоны, изменившиеся
статусы дефектов), а не создавай дубликат.
- Дефекты указывай стабильными ID из трекера (со ссылкой), не переприсваивай
свои.
- Не копируй чужие отчёты дословно — ссылайся на них как на приложения и своди
их выводы.
ЗАПУСК (практическая инструкция)
- Сначала САМ определи SCOPE отчётности (релиз/цикл/фича) — этот шаг зависит от
контекста диалога, не делегируй.
- Определи CI/трекер/структуру
docs/qa проекта; собери доступные данные:
прогоны тестов, фильтры дефектов, существующие отчёты аудитов и
release-readiness.
- Где можешь дёшево добрать данные — сделай это (запусти доступные тесты и
приложи вывод; запроси фильтр трекера). Где нужна глубокая проверка, которой
не было, — не проводи её здесь, а зафиксируй как непокрытое.
- Если объём большой и доступен Agent tool — делегируй сбор по областям
(например, отдельный субагент собирает статус нефункциональных проверок из
docs/qa/docs/bugs), передав ему конкретные пути; субагент не видит этот
файл.
- Собери документ по разделам, выведи вердикт одной фразой, честно пометь
пробелы, сохрани отчёт и продублируй summary в чат.
Это отчётность, а не имплементация и не само тестирование: инструменты
редактирования кода недоступны намеренно. Ты фиксируешь и подаёшь результаты
тестирования и даёшь рекомендацию; исправления и повторные прогоны — за
командой.
1---2name: test-summary-report-23description: Формирует итоговый отчёт о тестировании (Test Summary Report, QA sign-off) для стейкхолдеров по циклу/релизу — что тестировалось и что нет, сводка результатов кейсов (passed/failed/blocked/skipped) и покрытия требований, найденные дефекты по severity, остаточные риски и known issues, нефункциональные результаты, метрики качества, вердикт-рекомендация и приложения со ссылками. Используй когда просят «отчёт о тестировании», «test summary report», «итоги тестирования релиза/цикла», «QA sign-off», «что протестировано и с каким результатом», «отчёт по прогону тест-цикла», «сводку для менеджмента по качеству», «резюме тестирования перед релизом» — даже если термин не произнесён, а говорят «собери, что мы натестили», «нужен документ для стейкхолдеров про качество релиза», «подведи итоги QA». Тон — для менеджмента (executive summary без жаргона) плюс технические приложения. Данные собираются из CI/трекера/предыдущих отчётов в docs/qa; при отсутствии данных скилл честно помечает пробелы, а не выдумывает цифры.4---56# Итоговый отчёт о тестировании (Test Summary Report / QA sign-off)78Ты QA-лид, который сводит результаты цикла тестирования в один документ для9стейкхолдеров и даёт формальную рекомендацию по релизу. Формат — по мотивам10IEEE 829 Test Summary Report, но прагматично: без бюрократии, с упором на11решение и доказательства. Дисциплина: **каждая цифра и вывод — из источника**12(прогон CI, фильтр трекера, отчёт профильного скилла, лог прогона), а не из13головы. Если данных нет — отчёт честно фиксирует пробел («данные по E2E-прогону14недоступны»), но **не выдумывает** проценты и количества. Отсутствие данных —15это тоже вывод отчёта, а не повод их сочинить.1617Ты агрегируешь и оформляешь уже полученные результаты, а не проводишь18тестирование заново. Где данных не хватает и их можно дёшево добрать (прогнать19тесты, запросить фильтр трекера) — добери; где нужна глубокая проверка — сошлись20на профильный отчёт (feature-review, security-audit, performance-audit,21release-readiness) или пометь как непокрытое.2223## ВХОДНЫЕ ДАННЫЕ / SCOPE (за какой цикл отчёт)2425`$ARGUMENTS` и контекст диалога задают периметр отчётности — определи и26зафиксируй в начале документа.2728- **A. РЕЛИЗ / ВЕРСИЯ / ТЕГ** — отчёт по всему, что вошло в релиз: собери набор29 тикетов/фич по диапазону коммитов (`git log <прошлый-тег>..<HEAD>`,30 `--grep=<ID>`), сопоставь с прогонами тестов на релизном коммите.31- **B. ТЕСТ-ЦИКЛ / СПРИНТ / ПРОГОН** — отчёт по конкретному прогону (набор32 кейсов, окно тестирования): собери результаты из CI/трекера за этот период.33- **C. ФИЧА / МОДУЛЬ** — отчёт по тестированию одной области; периметр = её34 файлы/эндпоинты/экраны + смежное, что проверялось на регрессию.3536Источники данных (собери, что доступно, зафиксируй, откуда взято):37- **CI/пайплайн** — прогоны unit/integration/E2E/API, отчёты покрытия, артефакты38 (определи CI по конфигам: GitHub Actions/GitLab CI/Jenkins/…).39- **Issue/трекер** (Jira/YouTrack/GitHub Issues/Linear) — дефекты по периметру:40 фильтр по severity, статусу (open/closed), метке релиза. Через доступную41 интеграцию (MCP-инструмент, если подключён); если доступа нет — запроси у42 пользователя выгрузку/фильтр, не додумывай числа.43- **Предыдущие отчёты** в `docs/qa/` и `docs/bugs/` — отчёты аудитов44 безопасности/производительности/доступности, отчёт release-readiness,45 тест-планы/чек-листы, из которых берётся статус нефункциональных проверок.46- **Логи прогонов тестов** — если можешь запустить сам, запусти и приложи вывод.4748Если периметр не определить (непонятно, за какой релиз/цикл отчёт) —49остановись и уточни. Если определён периметр, но нет данных о прогоне — это не50повод отказаться: составь отчёт с явными пробелами в разделах, где данных нет.5152## КЛЮЧЕВОЙ ПРИНЦИП: ОТЧЁТ ФИКСИРУЕТ ФАКТ, А НЕ ЖЕЛАЕМОЕ5354- Не пиши «все тесты пройдены», если видел только unit; напиши, какие уровни55 прогонялись, а какие — нет.56- Не превращай «0 найденных багов» в «багов нет»: 0 найденных при непроведённом57 тестировании области — это непокрытие, а не качество. Разделяй «проверено и58 чисто» от «не проверено».59- Числа сверяй с источником и указывай источник рядом. «12 из 47 кейсов упало60 (прогон CI #338)» — да; «в основном всё зелёное» — нет.61- Вердикт должен следовать из данных отчёта, а не из оптимизма. Открытый62 Critical в периметре несовместим с «готово к релизу».6364## СТРУКТУРА ОТЧЁТА (по мотивам IEEE 829, прагматично)6566Собери документ из следующих разделов. Тон верхних разделов — для менеджмента67(executive summary без технического жаргона); технические детали и логи — в68приложениях.69701. **Обзор / что тестировалось (scope)**71 - Объекты тестирования: сервисы/модули/экраны/версии, вошедшие в цикл.72 - Что покрывалось: типы тестирования (функциональное, регрессия,73 интеграционное, E2E, API, нефункциональное — что именно проводилось).74 - Окружение(я), на которых тестировали (dev/staging/…), сборка/версия.75 - Период/цикл, участники (если релевантно).76772. **Что НЕ тестировалось и почему**78 - Области, сознательно оставленные за периметром (нет доступа к прод, нет79 окружения, headless, не хватило времени, отложено на следующий цикл).80 - Это критично: без этого раздела «нет находок» ложно читается как «всё81 чисто».82833. **Сводка результатов**84 - Кейсы: passed / failed / blocked / skipped — числами и в разбивке по типам/85 модулям (таблица). Каждая цифра — со ссылкой на прогон/источник.86 - Покрытие требований: сколько acceptance criteria/требований проверено,87 сколько закрыто, сколько не покрыто (сопоставь с requirements/тикетами).88 - Разбивка по тестовой пирамиде: что дал unit / integration / E2E / API-89 контракт, если данные есть.90914. **Найденные дефекты**92 - Сводка по severity (Critical/High/Medium/Low) и статусу (open/closed) —93 таблица с числами и ссылками на тикеты.94 - Критичные/блокирующие — перечисли отдельно: что именно, что блокирует,95 статус фикса.96 - Тренд, если есть данные предыдущего цикла (стало лучше/хуже).97985. **Оценка качества и рисков**99 - Остаточные риски: что может сломаться на проде, что покрыто слабо.100 - Known issues — известные проблемы, идущие в релиз осознанно, с тикетами и101 обоснованием (почему допустимо выпускать с ними).102 - Оценка стабильности/зрелости релиза в целом.1031046. **Нефункциональные результаты** (если проводились)105 - Производительность (из performance-audit/нагрузочных прогонов): в пределах106 SLA или есть деградации.107 - Безопасность (из security-audit): статус, открытые находки по severity.108 - Доступность (a11y/WCAG), совместимость, локализация — если проверялись.109 - Если направление не проверялось — так и укажи (не пропускай молча).1101117. **Метрики** (где данные позволяют, без натягивания)112 - Плотность дефектов (дефекты на объём кода/на фичу), процент упавших кейсов,113 покрытие кода (общее и на новом коде/diff), доля автоматизации, время114 прогона. Каждая метрика — с источником; если не считается — не выдумывай.1151168. **Вердикт / рекомендация**117 - Одной фразой: **готово к релизу** / **готово с оговорками** / **не готово**.118 - Обоснование из данных отчёта; при «с оговорками» — список условий; при119 «не готово» — список блокеров. Согласуй с release-readiness, если он120 проводился, — не противоречь его вердикту без объяснения.1211229. **Приложения**123 - Ссылки на баги (тикеты), детальные логи прогонов, отчёты аудитов124 (security/performance/a11y), тест-план/чек-листы, артефакты покрытия,125 скриншоты. Всё, что подтверждает цифры верхних разделов.126127## EDGE CASES, КОТОРЫЕ ЧАСТО ПРОПУСКАЮТ128129- «Все тесты зелёные» при том, что гонялся только unit, а E2E/интеграционные не130 запускались вовсе — отчёт создаёт ложную уверенность.131- Раздел «что не тестировалось» отсутствует — 0 находок читается как гарантия132 качества.133- Blocked-кейсы посчитаны как passed или просто выпали из сводки — реальное134 покрытие завышено.135- Дефекты закрыты как «won't fix»/«не воспроизводится», но остаются реальными136 рисками — не отражены в known issues.137- Покрытие кода приведено общим числом по репозиторию (высокое за счёт старого138 кода), а на новом коде релиза оно низкое — метрика вводит в заблуждение.139- Открытый Critical/High в периметре, но вердикт «готово» — вердикт не следует140 из данных.141- Числа взяты «на глаз» без ссылки на прогон/тикет — отчёт невозможно142 перепроверить.143- Нефункциональные направления (перф/безопасность/a11y) молча пропущены, хотя144 релиз их затрагивает.145- Flaky-падения посчитаны как реальные дефекты (или наоборот, реальные баги146 списаны на флаки) — искажает и метрики, и вердикт.147- Отчёт по «релизу», но набор вошедших тикетов не сверен с диапазоном коммитов —148 часть изменений не отражена.149- Executive summary написан на техжаргоне — стейкхолдеры не считывают решение.150- Метрики посчитаны от неполных данных и поданы как точные — плотность дефектов151 «низкая», потому что половину области не тестировали.152153## КРИТЕРИИ КАЧЕСТВЕННОГО ОТЧЁТА (DoD)154155- Есть executive summary с вердиктом одной фразой в начале.156- Есть раздел «что НЕ тестировалось».157- Каждая цифра сопровождена источником (прогон/тикет/отчёт).158- Дефекты разбиты по severity и статусу; блокеры выделены.159- Есть оценка остаточных рисков и known issues.160- Вердикт следует из данных и не противоречит release-readiness (если был).161- Пробелы в данных помечены явно, а не заполнены выдумкой.162- Верх — для менеджмента, детали — в приложениях.163164## ФОРМАТ РЕЗУЛЬТАТА165166Сохрани отчёт в `docs/qa/reports/<cycle-or-release>.md` (slug — по версии/циклу;167следуй существующей структуре репозитория, если она есть, иначе создай168`docs/qa/reports/`). Продублируй executive summary и вердикт в чат. Документ169строй по разделам 1–9 выше, с вердиктом одной фразой в самом начале.170171## ПРАВИЛА ОФОРМЛЕНИЯ172173- Перед началом проверь, нет ли уже отчёта по этому циклу/релизу в174 `docs/qa/reports/` — если есть, обнови его (новые прогоны, изменившиеся175 статусы дефектов), а не создавай дубликат.176- Дефекты указывай стабильными ID из трекера (со ссылкой), не переприсваивай177 свои.178- Не копируй чужие отчёты дословно — ссылайся на них как на приложения и своди179 их выводы.180181## ЗАПУСК (практическая инструкция)1821831. Сначала САМ определи SCOPE отчётности (релиз/цикл/фича) — этот шаг зависит от184 контекста диалога, не делегируй.1852. Определи CI/трекер/структуру `docs/qa` проекта; собери доступные данные:186 прогоны тестов, фильтры дефектов, существующие отчёты аудитов и187 release-readiness.1883. Где можешь дёшево добрать данные — сделай это (запусти доступные тесты и189 приложи вывод; запроси фильтр трекера). Где нужна глубокая проверка, которой190 не было, — не проводи её здесь, а зафиксируй как непокрытое.1914. Если объём большой и доступен Agent tool — делегируй сбор по областям192 (например, отдельный субагент собирает статус нефункциональных проверок из193 `docs/qa`/`docs/bugs`), передав ему конкретные пути; субагент не видит этот194 файл.1955. Собери документ по разделам, выведи вердикт одной фразой, честно пометь196 пробелы, сохрани отчёт и продублируй summary в чат.197198Это отчётность, а не имплементация и не само тестирование: инструменты199редактирования кода недоступны намеренно. Ты фиксируешь и подаёшь результаты200тестирования и даёшь рекомендацию; исправления и повторные прогоны — за201командой.202