ЗРАЗОК ЗВІТУ

Подивіться, що саме ви отримаєте.

Повний приклад PDF-звіту для вигаданої команди. Ваш звіт матиме таку саму структуру, але з висновками з вашого репозиторію та пайплайну.

Вигаданий приклад. «Northwind Billing» — вигадана компанія. Файли, цифри й висновки нижче створені лише для демонстрації формату. Це не огляд реального репозиторію чи клієнта.

Це приклад звіту Health Check. Звіт Quick Scan коротший: орієнтовна оцінка, топ-5 ризиків і швидкі покращення на основі конфігурації CI та звітів, без доказів на рівні файлів вихідного коду.

1. Підсумок

72 / 100Оцінка стану: працює, але з помітними ризиками
6Висновків: 1 високий, 4 середніх, 1 низький
4Швидкі покращення, разом близько 4 годин
8–10 днівЗагальні зусилля, щоб виправити всі шість

Простими словами. Набір тестів добре організований і покриває основні сценарії клієнтів. Найбільша проблема — збої залишаються непомітними: тести, що впали, автоматично перезапускаються, а звіт показує лише фінальний зелений результат. Білди виглядають здоровішими, ніж є, і команда перестає довіряти червоним білдам.

Що зробити спершу. Зробити повтори видимими й зберігати скріншоти та трейси при збоях (близько 1,5 години). Потім дати кожному паралельному worker-у власного тестового користувача й розділити пайплайн на паралельні завдання. Разом це має скоротити CI з 38 до приблизно 15 хвилин і прибрати більшість хибних тривог.

Що переглядали

ПараметрДеталі
Репозиторійnorthwind-e2e (вигаданий)
Тести412 усього: 318 UI та 94 API
СтекPlaywright, TypeScript
CIGitHub Actions, один workflow (e2e.yml), 38 хвилин на запуск
МатеріалиАрхів репозиторію та звіти 30 останніх запусків CI
Не перевірялиТести не запускалися. Production-код, безпека й продуктивність поза обсягом.

2. Оцінка стану: 72 / 100

Рівень: працює, але з помітними ризиками. Шкала: 0–39 крихкий фундамент, 40–59 потрібне цільове покращення, 60–79 працює з помітними ризиками, 80–100 міцний фундамент. Кожна категорія нижче оцінена від 0 до 100 і має свою вагу.

КатегоріяВагаОцінкаПростими словами
Архітектура15%78Рівні тестів чітко розділені, спільні утиліти легко знайти.
Надійність тестів20%62Нестабільні збої трапляються часто й приховані повторами (F1, F2, F3).
Підтримуваність15%86Зрозумілі назви й невеликі page object-и. Найсильніша сторона.
Стратегія покриття15%76Вхід, оплата й рахунки покриті. Повернення коштів — ні (F6).
CI/CD15%70Працює, але повільно й запускає по одному тесту за раз (F4).
Звітність і спостережуваність10%66Збої не залишають скріншотів чи трейсів (F5).
Тестові дані й середовища10%66Багато тестів використовують один спільний акаунт (F3).
Загалом100%72Працює, але з помітними ризиками

Як це складається: оцінка × вага, потім сума. 78×15% + 62×20% + 86×15% + 76×15% + 70×15% + 66×10% + 66×10% ≈ 72.

3. Як побудовані набір тестів і пайплайн

Набір тестів

Структура вдала, тому архітектура й підтримуваність мають високі оцінки.

CI-пайплайн

Один workflow у GitHub Actions виконує всі 412 тестів в одному завданні й триває 38 хвилин. Він використовує один worker, перезапускає тести, що впали, двічі й не зберігає скріншотів чи трейсів (F1, F4, F5).

Ризик нестабільних тестів

Підтверджено: дев’ять тестів пройшли лише з повтору в останніх 30 запусках, і чотири з них конфліктують через спільний акаунт (F3). Не перевірено: решту п’ять. Їх потрібно відтворити локально з увімкненими трейсами.

4. Висновки

Шість висновків за пріоритетом. Для кожного показано, що ми побачили, чому це важливо, що робити, скільки це займе й що ви отримаєте.

IDСерйозністьВисновокЗусилля
F1ВИСОКИЙТести, що впали, автоматично перезапускаються, тому проблеми лишаються непомітнимиБлизько 1 години на кроки 1–2, потім 2–3 дні на крок 3
F2СЕРЕДНІЙФіксовані очікування сповільнюють тести й усе одно ламаються, коли застосунок повільний1–2 дні
F3СЕРЕДНІЙУсі тести входять в систему під одним акаунтомБлизько 1 дня
F4СЕРЕДНІЙПайплайн виконує все в одному завданні на 38 хвилинБлизько 1 дня
F5НИЗЬКИЙЗбої не залишають скріншотів чи трейсівБлизько 30 хвилин
F6СЕРЕДНІЙПовернення коштів і зниження тарифу не мають автоматичних перевірокБлизько 2 днів
ВИСОКИЙ F1

Тести, що впали, автоматично перезапускаються, тому проблеми лишаються непомітними

Що ми побачили
playwright.config.ts:14 встановлює retries: 2 для кожного тесту, а .github/workflows/e2e.yml:41 публікує лише фінальний результат. У 23 із 30 останніх запусків принаймні один тест спочатку впав, а з повтору пройшов. Дев’ять тестів дають 81% таких повторів.
Чому це важливо
Справжня помилка, що виникає не завжди, «позеленіє» й потрапить у реліз. Команда також не знає, які тести ненадійні, тому білди перезапускають за звичкою й збоям більше не довіряють.
Що робити
  1. Показувати в підсумку CI тести, що пройшли з повтору, як «нестабільні» (flaky).
  2. Зменшити retries до 1.
  3. Виправити дев’ять найпроблемніших тестів, починаючи з найгірших.
Зусилля
Близько 1 години на кроки 1–2, потім 2–3 дні на крок 3
Результат
Нестабільні тести стають видимими й піддаються підрахунку, а частка повторів — числом, яке можна знижувати.
СЕРЕДНІЙ F2

Фіксовані очікування сповільнюють тести й усе одно ламаються, коли застосунок повільний

Що ми побачили
74 жорстко заданих паузи (waitForTimeout) у 31 файлі. Наприклад, tests/checkout/payment.spec.ts:57 завжди чекає 3 секунди. Разом вони додають близько 3 хвилин чистого очікування до кожного запуску.
Чому це важливо
Якщо застосунок відповідає за 3,5 секунди, тест падає. Якщо за 0,5 секунди, тест усе одно чекає 3. Він одночасно повільний і ненадійний.
Що робити
Замінити кожну паузу очікуванням реальної умови, наприклад await expect(page.getByText('Payment received')).toBeVisible(). Почати з 10 файлів, де паузи трапляються найчастіше.
Зусилля
1–2 дні
Результат
Швидші запуски й менше збоїв через таймінги.
СЕРЕДНІЙ F3

Усі тести входять в систему під одним акаунтом

Що ми побачили
tests/fixtures/auth.ts:12 авторизує кожен тест як [email protected], і 41 тест створює рахунки під ним. Чотири з дев’яти нестабільних тестів падають лише тоді, коли два з них виконуються одночасно.
Чому це важливо
Тести заважають один одному при паралельному запуску. Окремий перезапуск одного тесту дає інший результат, ніж у повному прогоні, тому налагодження відбувається повільно.
Що робити
Створювати нового користувача для кожного паралельного worker-а через API й видаляти його дані наприкінці запуску.
Зусилля
Близько 1 дня
Результат
Усуває конфлікти, що стоять за приблизно 4 з 9 нестабільних тестів, і робить паралельні запуски безпечними, що потрібно для F4.
СЕРЕДНІЙ F4

Пайплайн виконує все в одному завданні на 38 хвилин

Що ми побачили
e2e.yml має одне завдання. playwright.config.ts:19 задає workers: 1 у CI, а браузери завантажуються заново під час кожного запуску (близько 4 хвилин).
Чому це важливо
Розробники чекають 38 хвилин, щоб дізнатися, чи безпечна зміна, тому об’єднують зміни або перестають чекати на результат.
Що робити
Розділити тести на 4 паралельні завдання через --shard, кешувати браузери Playwright і підняти workers до 2, коли буде виправлено F3.
Зусилля
Близько 1 дня
Результат
Час CI зменшується з приблизно 38 до приблизно 15 хвилин.
НИЗЬКИЙ F5

Збої не залишають скріншотів чи трейсів

Що ми побачили
playwright.config.ts:22–23 задає trace: 'off' і screenshot: 'off', а workflow не завантажує теку зі звітом.
Чому це важливо
Щоб зрозуміти збій, інженер має відтворити його локально, а це часто займає більше часу, ніж виправлення. Серйозність низька, але виправлення дуже дешеве.
Що робити
Задати trace: 'on-first-retry' і screenshot: 'only-on-failure' та завантажувати playwright-report/ як артефакт CI зі строком зберігання 14 днів.
Зусилля
Близько 30 хвилин
Результат
Кожен збій можна відкрити й зрозуміти за кілька хвилин.
СЕРЕДНІЙ F6

Повернення коштів і зниження тарифу не мають автоматичних перевірок

Що ми побачили
412 тестів покривають вхід, оплату й рахунки, але жоден не перевіряє повернення коштів чи зміну тарифу. Обидві функції пов’язані з грошима.
Чому це важливо
Помилки тут коштують грошей і довіри клієнтів, а ручне тестування перед кожним релізом легко пропустити.
Що робити
Спершу додати API-тести, бо вони дешевші й стабільніші за UI-тести: повне повернення, часткове повернення та зниження тарифу під час продовження. Пізніше додати по одній UI-перевірці на сценарій.
Зусилля
Близько 2 днів
Результат
Найризикованіші сценарії захищені під час кожного релізу.

5. Швидкі покращення

Дії з низьким ризиком, які команда може завершити за один день.

ДіяЧасКористь
Зберігати скріншоти й трейси при збої та завантажувати звіт (F5)30 хвКожен збій можна діагностувати без локального перезапуску.
Показувати в підсумку CI тести, що пройшли з повтору (F1)1 годинаПрихована нестабільність стає видимим списком.
Кешувати браузери Playwright у CI (F4)20 хвЕкономить близько 4 хвилин на запуск.
Прибрати 10 найдовших фіксованих очікувань (F2)2 годиниПриблизно на хвилину швидше й менше збоїв через таймінги.

6. План на 30 днів

Що робити й коли, щоб робота вписувалася в звичайну розробку.

КолиЩоРезультат
Зараз (тиждень 1)Чотири швидкі покращення, потім зменшити retries до 1 (F1, F5, F4, F2)Збої видимі й легко діагностуються.
Далі (тижні 2–3)Тестові користувачі для кожного worker-а (F3), 4 паралельні завдання (F4), початок виправлення дев’яти нестабільних тестів (F1)CI близько 15 хвилин і значно менше хибних збоїв.
Пізніше (тиждень 4)Замінити решту фіксованих очікувань (F2), додати API-тести повернення коштів і зниження тарифу (F6)Швидший, стабільніший набір тестів і захищені сценарії з грошима.

Чого очікувати через 30 днів

ПоказникДоЦіль
Час запуску CI38 хвилинблизько 15 хвилин
Запуски з прихованим повтором23 з 30менше 5 з 30
Збої зі скріншотом чи трейсом0%100%

Це цілі для вигаданого прикладу. Реальні звіти містять оцінки на основі ваших матеріалів, а не гарантії.

Що далі

Ваша команда сама вирішує, що впроваджувати. Виправлення не входять у Health Check. Якщо потрібна допомога, Audit + Fix Sprint охоплює до 10 годин виправлень у вигляді pull request-ів: запросити пропозицію.

Як читати оцінку

Зважена оцінка — внутрішня методика, а не галузевий стандарт, сертифікація чи гарантія якості ПЗ. У реальному звіті кожен висновок спирається на докази з ваших матеріалів.

Замовити Health Check · 17 499 грн → Замовити Quick Scan · 7 499 грн