ninja.js
Курс на російській мові
Илья Климов

Тестування в епоху агентів

Детермінований контроль якості в епоху AI-first розробки

Курс про те, як перестати вручну рев'юїти галюцинації нейромереж, почати писати тести як quality gate для агентів і перейти до побудови автономних workflow розробки.

[ Про курс ]

5 блоків, ~25 відео
по 15 хвилин.

4 живі QA-сесії
в Zoom.

Тільки Middle+ та Senior
з комерційним досвідом.

Trap Alert

Пастка
3-го рівня

Індустрія вимагає від нас прискорення в 10 разів. Ви починаєте активно використовувати AI-агентів, і спочатку здається, що ви зламали систему. Задачі закриваються швидше, обсяг вихідного коду зростає експоненціально.

Але дуже скоро настає сувора реальність.

Разом зі швидкістю генерації зростає і технічний борг. Бізнес-логіка ускладнюється, AI починає стверджувати, що задача виконана, хоча насправді ні, і нескінченно лагодить одне, ламаючи інше.

В результаті замість проєктування архітектури ви перетворюєтеся на редактора: сидите і вручну вичитуєте сотні рядків чужого коду. Чим більше коду пише нейромережа, тим більше часу ви витрачаєте на рев’ю та пошук багів у продакшені. Довіра падає і до вас, і до вашого агента.

WARNING: AI_LOOP_DETECTED
+ CodeGenerator.run()
+ reviewDiffsCount: 520
// error: non-deterministic execution
Інфраструктура зломана. Згенеровано 1200 рядків з помилками.

Еволюція
болю, або
5 рівнів
AI-розробки

За класифікацією Дена Шапіро (від Spicy Autocomplete до Dark Factory)

01[ BASIC ]

Level 1: Coding Intern

Ви делегуєте ШІ дрібну рутину — написати бойлерплейт, додати JSDoc або базовий юніт-тест. По суті, це просто розумний автокомплит. Ваша робота фундаментально не змінилася, ви все ще обмежені швидкістю власного друку.

02[ Де більшість зараз ]

Level 2: Junior Developer

Ви в стані потоку. ШІ — ваш інтерактивний джуніор-партнер. Ви віддаєте йому цілі шматки логіки, пишете код разом. Ви продуктивні як ніколи. Здається, що це і є майбутнє. Але це лише початок.

03[ Пастка ]

Level 3: DeveloperTrap

ШІ генерує значну частину кодової бази. Ви більше не сеньйор, ви — рев’юер нейрослопу. Ваші 8 робочих годин — суцільне код-рев’ю. Дуже багато коду. Будь-яке прискорення зникає, і настає один із двох сценаріїв: або падіння продуктивності через величезне ментальне навантаження, або легендарне LGTM (looks good to me). Рев’ю перетворюється на формальність, а запитання «чи впаде прод?» змінюється на «коли він впаде ЗНОВУ?». Саме на цьому рівні ламаються процеси, падає якість та вигорають команди.

04[ Куди ми йдемо ]

Level 4: Engineering Team

AI працює автономно годинами. Ви не перевіряєте кожен написаний ним символ. Ви ставите задачу, плануєте архітектуру та йдете. Ви довіряєте не агенту, а впровадженим вами інструментам контролю результатів його роботи.

05[ Фінальна ціль ]

Level 5: Software Factory

Ви не дивитесь код взагалі. Ви керуєте тільки цілями та бізнес-логікою. Система сама визначає реалізацію, пише код, покриває його тестами, фіксить баги та котить у продакшен.

Чому на третьому рівні все було погано, а на четвертому раптом стало добре?

Щоб ШІ-агент працював автономно, йому потрібні детерміновані рамки. Тести — один із ключових способів створення таких рамок. На 4-му рівні ви не читаєте код за ШІ. Ви ставите йому задачу у вигляді тесту, він пише реалізацію, і інфраструктура сама б’є його по руках, якщо він помилився.

[ WARNING // ILLUSION ]

Промпт-
інжиніринг —
це тупик

Ілюзія контролю. Чому промпт-інжиніринг — це тупик

Ключем до зростання є усвідомлення та прийняття того факту, що LLM — це слот-машина. Не існує фрази, яка змусить її гарантовано давати вам виграш. Ви намагаєтеся контролювати недетерміновану систему (якою є будь-яка LLM) такими же недетермінованими методами — текстом природною мовою.

Вам потрібно припинити писати промпти. Замість цього зробіть так, щоб машина сама смикала ручку рандому, поки не випадуть заповітні три вишеньки. А для цього і ви, і агент повинні однаково розуміти, що є «перемогою» у вашій задачі.

[ LLM PROMPT //
WEAK CONTROL ]

Недетермінований промпт

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

[ DETERMINISTIC SPEC //
HARD CONTROL ]

Жорсткі рамки тестів

Ви будуєте суворий контракт: пишіть тест (AAA-структура), який перевіряє кінцеві інваріанти поведінки. Модель може перебирати будь-які алгоритми і помилятися, але згенерований нею код не потрапить на перевірку далі, якщо він порушує контракт.

Тести —
неминучий рівень
контролю в AI-first
розробці.

01.

Ви пишете тест

(формалізуєте поведінку, яку очікуєте).

02.

Віддаєте цей тест

ШІ-агенту як технічне завдання.

03.

Агент пише

реалізацію.

04.

Перевірка

Ваша інфраструктура миттєво і без вашої участі перевіряє результат.

Вам більше не потрібно відкривати браузер і руками проклікувати застосунок після кожної зміни, згенерованої нейромережею. Робот перевіряє робота. А ви займаєтеся архітектурою.

Курс спроектований так, щоб вбудовуватися в графік працюючого інженера:

Курс «Тестування в епоху агентів» — це практичний фундамент для переходу на цей рівень. Ми по кроках розбираємо, як вибудувати інфраструктуру детермінованого контролю, щоб згенерований код можна було безпечно пускати у продакшен. Ми будуємо Quality Gates.

5[ Блоків теорії ]

~25 відеолекцій по 15 хвилин. Чиста вижимка підходів, патернів та роботи з інфраструктурою.

4[ Zoom QA-сесії ]

Зустрічаємося в Zoom і кодимо в реальному часі. Без таймінгів: сесії тривають по 2–3 години, я сиджу до останнього запитання і розбираю ваші реальні робочі кейси.

100%[ Практичний розбір ]

Ви берете підходи з лекцій і відразу застосовуєте їх на своїх робочих проєктах.

Що всередині курсу

Програма спроєктована так, щоб провести вас від базового розуміння стратегії — коли, які та скільки тестів писати — до впровадження механізмів контролю за самими тестами. Ви перейдете від “віри в кодову базу” до системи чітких метрик, що визначають надійність вашого проєкту .

Розбираємо базу: контракти, інваріанти та метрики покриття. Головний фокус — чому потрібно тестувати поведінку, а не реалізацію. Якщо ваші тести прив’язані до деталей реалізації, вони стануть мертвим вантажем, коли ШІ-агент почне переписувати код.

Розбираємо тестовый стек (Vitest), фікстури, паралелізацію та ізоляцію тестів.

Окрема увага — мутаційному тестуванню (Stryker). Агент легко генерує тести, які є «зеленими», але нічого не перевіряють. Stryker навмисно вносить помилки (мутації) у ваш код. Якщо тести при цьому не падають — значить, вони сміття. Ми вчимося ловити агента на халтурі.

Вчимося писати тести так, щоб агент розумів їх однозначно. Розбираємо структуру Arrange-Act-Assert, роботу із залежностями (DI) та test doubles (моки, стаби, шпигуни). Ви побачите, як виглядає код, який принципово неможливо протестувати, і чому агент генерує саме його.

Виходимо на рівень всього застосунку. E2E (Playwright), управління станом, ізоляція баз даних. Розбираємо головний біль E2E — flaky-тести (миготливі тести) та патерни їх стабілізації. Вчимося рефакторити згенерований ШІ код під тестування.

Покрокове керівництво. Як писати характеризуючі тести для незнайомого коду. Як саджати нестабільні тести в «карантин». Повний AI-workflow: пишемо тест руками → агент реалізує → Stryker перевіряє → уточнюємо тест.

Практичні сесії (Zoom, 4 зустрічі)

На живих сесіях (кожна по 2–3 години) мы пишемо код руками. Від налаштування Vitest та тестування API-сервера до E2E в Playwright та впровадження тестів у legacy-проєкт за допомогою Claude Code.

// PRICING

Формати участі

Один формат. Повне занурення з живою практикою на вашому робочому проєкті.

Приєднатися до курсу

  • Теорія: 5 блоків, ~25 відео по 15 хвилин
  • 4 живі сесії в Zoom (по 2–3 години): пишемо код, розбираємо ваші робочі кейси
  • Записи всіх живих сесій — доступ не сгорає
  • Відеорозбори найскладніших завдань
  • Доступ до оновлень та нових версій курсу
$220EARLY BIRD
з 15.06 — $270

Йдете командою?

Quality Gates ефективніше впроваджувати всією командою: один стандарт, одна інфраструктура, одна мова всередині команди.

Скільки інженерів?
ціна за місце$220$198
знижка-10%
разом$594
Спосіб оплати

Доступи для учасників зберемо після оплати

Індивідуально з Іллею

• 3 МІСЦЯ

Максимальна глибина — особиста робота над вашими кейсами та процесами.

  • Все з основного формату
  • Особисті здзвони з Іллею
  • До 5 індивідуальних відеорозборів ваших кейсів
  • Допомога з впровадженням контролю якості у вашій команді
roadmap

Учасникам курсу TypeScript (Ступень 1) — спеціальні умови на всі наступні ступені циклу.

Roadmap. Шлях до автономних систем

«Тестування в епоху агентів» — частина великої освітньої архітектури, яку ми зараз вибудовуємо.

Ступень 1

TypeScript

Цей курс я провів у 2025 році. Сувора типізація — це перший рівень захисту, спосіб для агента максимально рано дізнатися про суперечності існуючої кодової бази та його генерації.

Ви тут
Ступень 2

Тестування в епоху агентів

Створення детермінованих інструментів верифікації якості (Quality Gates). Перш ніж давати агентам свободу, мы вчимося жорстко контролювати результати їхньої роботи та відсікати галюцинації. Без цього кроку наступні два не мають сенсу — ви просто автоматизуєте хаос.

У розробці
Ступень 3

Hybrid Teams

Інфраструктура для агентських систем. Як вибудувати процеси, CI/CD та архітектуру проєкту так, щоб AI-агент став повноцінним членом команди (на рівні Level 4), який працює в одному репозиторії з живими інженерами, не ламаючи їхній код.

У розробці
Ступень 4

Agent Systems

Побудова тих самих автономних систем та Dark Factory (Level 5). Створення агентів під специфіку вашого бізнесу, які самі отримують завдання, пишуть код, перевіряють його об ваші тести та котять у продакшен.

ІНСТРУКТОР

Ілля
Клімов

Staff Frontend Engineer в GitLab, 22 роки в індустрії, PhD в Computer Science, 12 років викладання.

НАВЧАННЯ12 років
ДОСВІД РАБОТИ22 роки
Илья Климов
BACKGROUND
  • Останній рік я щільно займаюся AI-first розробкою та інтеграцією ШІ-агентів у робочі процеси.
  • Робота в GitLab дала можливість тестувати гіпотези та проганяти через API такі обсяги реального production-коду, які в звичайних умовах коштували б десятки тисяч доларів.
  • Спалюючи токени в промислових масштабах, я ставив одну просту мету — відповісти на запитання: як я можу довіряти агентам у кодовій базі, вік якої перевалив за десяток років і яку повністю не розуміє жоден інженер?
Ви купуєте вижимку з цього досвіду. Вона заощадить вам місяці блукань тупиковими гілками, а вашому бізнесу — час на виправлення багів у продакшені.

Для кого цей курс

  • Middle+ та Senior розробники (від 6 місяців комерційного досвіду).
  • Ви вже активно використовуєте ШІ-асистентів у роботі та уперлися в стелю якості.
  • Втомилися витрачати години на рев’ю згенерованого коду та лагодження багів, які ШІ непомітно залишив в інших частинах застосунку.
  • Хочете навчитися керувати агентами через інженерні контракти, а не через текстові вмовляння.

Кому курс НЕ підійде

  • Джуніорам та тим, хто шукає першу роботу. Якщо ви не писали комерційний код, вам буде занадто складно. Базового синтаксису JS тут не буде.
  • Тим, хто шукає збірки готових промптів. Якщо ви прийшли за списком слів, які змусять ChatGPT одразу писати код без помилок — цей курс не допоможе. Таких промптів не існує. Ми будемо будувати інфраструктуру контролю, а не підбирать заклинання.
  • Тим, у кого зараз немає робочого проєкту. У курсі не буде штучних домашок з абстрактними туду-лістами чи пет-проєктами заради галочки. Всі підходи з лекцій вам потрібно буде одразу застосовувати на своїй реальній кодовій базі. Перехід на 4-й рівень автоматизації не відбудеться по клацанню пальців. Знадобиться час на перебудову мислення та впровадження інфраструктури. Але як тільки ви побудуєте надійні Quality Gates, ваша робота зміниться назавжди: ви перестанете бути рев’юером згенерованого коду і знову станете інженером, який керує системами.

Моя гарантія

Перехід на 4-й рівень автоматизації не відбудеться по клацанню пальців. Знадобиться час на перебудову мислення та впровадження інфраструктури. Але як тільки ви побудуєте надійні Quality Gates, ваша робота зміниться назавжди.

Я використовую політику безумовного повернення грошей. Якщо протягом перших 14 днів ви зрозумієте, що курс вам не підходить, не вирішує ваших завдань або вам просто не подобається подача — ви пишете мені, і я повертаю повну суму без запитань та суперечок. Історично відсоток повернень на моїх програмах становить менше 9%, тому я даю цю гарантію абсолютно спокійно. Ви нічим не ризикуєте.

FAQ / Часті запитання

Чому курс не підходить junior-розробникам?

Наша мета — максимальна ефективність. Це означає, що в ідеале ви повинні вже на практиці відчути кожен із болів, про які ми будемо говорити. Шлях junior-розробника — спочатку піти та пережити ці болі самостійно.

Чи підійде цей курс frontend- або backend-розробнику?

Концепції, які ми розглядатимемо, однаково застосовні і на фронтенді, і на бекенді. Ми робитимемо акценти на специфіці тестування в браузері та на сервері, проте свідомо не розділяємо курс на два: в епоху ШІ розуміти «другу сторону» розробки важливо, навіть якщо ви не пишете там код.

Моя основна мова — Python/C#/Java. Чи підійде мені курс?

Основна мова програмування в курсі — JavaScript/TypeScript, тому вкрай бажано знайомство з нею щонайменше на рівні «вільного читання». Базові концепції тестування та роботи з агентами не залежать від мови програмування, проте близько 20% матеріалу буде специфічним саме для JS-екосистеми.

Скільки часу на тиждень потребуватиме навчання?

Теорія розбита на відео по 15 хвилин без води — їх можна дивитися за сніданком або між мітингами. Основний час потребуватиме практика: впровадження підходів на вашому робочому проєкті та участь у live-сесіях (вони тривають по 2–3 години). У середньому закладати 4–6 годин на тиждень.

Чи будуть на курсі домашні завдання?

Кожен модуль закінчується рекомендаціями про те, як саме застосувати ці підходи на вашому робочому проєкті (причому для проєктів різних рівнів — від стадії «у нас взагалі немає тестів» до кривавого ентерпрайзу). На live-сесіях я буду готовий у повному обсязі розбирати проблеми, з якими ви зіткнулися при впровадженні цих завдань. Але «домашньої роботи» в чистому вигляді — а головне, з готовими еталонними відповідями — на курсе немає.

Як проходять live QA-сесії?

Ми здзвонюємося в Zoom, і я сиджу «до останнього клієнта». Розбираємо ваш код, ваші проблеми з впровадженням та конкретні кейси. Зазвичай це займає від 2 до 4 годин щільної роботи.

Що робити, якщо я не можу прийти на онлайн-сесію? Чи буде доступ до записів?

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

Якою мовою будуть лекції та живі сесії?

Навчання (відео, ефіри та комунікація в чаті) проходить російською мовою. Серед моїх студентів величезна частка інженерів-експатів, розкиданих по всьому світу, тому це найуніверсальніша мова комунікації всередині ком’юніті.

Як працює політика повернення грошей (money-back)?

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