Python мануфактураJavaDesign Patterns для автоматизаторів

Терміни, нюанси та джерела

Практика · 8:00

Review AI-generated vertical slice

Візьміть один feature flow і перевірте його через frontend, API та persistence boundaries. Зафіксуйте contract для time fields, кількість backend/provider calls, authorization states і system-level regression risks.
Короткий risk-based review із конкретними evidence та переліком перевірок, яких бракує.

Vibe coding, склад команди та нова роль тестувальника →

Джерело · 32:00

Repository-wide smoke contract для навчальних прикладів

Pinned tests перевіряють однакову структуру тем і запуск усіх scripts. Це корисний contract/smoke приклад до system-review теми, але не system test продукту: browser, API, database і deployed environment відсутні. Код не скопійовано через відсутність LICENSE.

Vibe coding, склад команди та нова роль тестувальника → Першоджерело ↗

Практика · 3:00

Перетворити exploration на repeatable test

Пройти короткий flow через Codegen або CLI.
Зберегти generated draft у test file.
Адаптувати locators і data setup до наявного project contract.
Запустити test і переглянути trace.
Зафіксувати, що саме AI зекономив і що вимагало manual review.
Один repeatable green test із trace та короткою оцінкою saved time.

Playwright MCP, CLI, Codegen та AI в розробці →

Практика · 0:00

Провести naming audit одного Page Object

Зіставте class name з route, visible heading і product vocabulary.
Позначте methods, які маскують click як open, або змішують action і assertion.
Перейменуйте лише підтверджені невідповідності та запишіть два project rules у README.
Один короткий diff і два naming rules, які прибирають повторну суперечку на code review.

Неймінг та структура automation-проєкту →

Практика · 32:00

Shift Left review requirements

До початку реалізації знайдіть у вибраному requirement contradictions, missing states, duplicated rules і неявні security або data contracts. Для кожного ризику визначте найдешевший ранній evidence, який його підтвердить або спростує.
Таблиця requirement risk → рання перевірка → очікуваний evidence → відповідальна роль.

Vibe coding, склад команди та нова роль тестувальника →

Java · Сесії: AMA та PMP · 15:00–18:00

Agent review і нове cognitive load

[Дивитися з 15:00](https://www.youtube.com/watch?v=jAl2Qf8Zlyg&t=900s). Паралельні coding agents збільшують output, але потребують більше review. Engineer має одночасно думати про race conditions, ризики, completeness ticket-а, API/data contracts і місце transformation logic. Простий приклад — dates: backend може повернути timestamp, local date або значення з timezone; без єдиного контракту різні screens покажуть різні результати.

Vibe coding, склад команди та нова роль тестувальника →

Java · Сесії: AMA та PMP · 3:00–6:30

Codegen і trace як контрольована відправна точка

Практичний flow: людина вручну проходить сценарій через Playwright Codegen, передає згенерований код моделі, просить рознести його по наявних page objects, запускає тест і дає trace для наступного review. Генерація відбувається малими порціями, а людина контролює data setup, reuse та фактичний user journey. Для складного enterprise flow з inventory, credit limits, third-party integrations і stateful users автономний agent без domain context не буде надійним.

Playwright MCP, CLI, Codegen та AI в розробці →

Java · Сесії: AMA та PMP · 5:15–7:41

OTP, rate limits і production smoke

Для OTP можна зарезервувати test identity і детермінований code; для rate limits — окреме правило для CI traffic. Автор допускає такий bypass навіть на production, хоча прямо зазначає, що цього бажано не робити. Редакційне security-застереження: на production безпечніше виконувати smoke через звичайний захист або спеціально спроєктований найменш привілейований test path. Будь-який production bypass header чи hardcoded OTP стає критичним секретом: його витік фактично вимикає захист, тому потрібні ротація, журналювання, вузький scope і окремий security review.

Антибот-захист у контрольованих автотестах →

Java · Додаткові матеріали · 8:35–10:55

Перегляд diff і commit checks

Перед commit треба переглянути кожен changed file і переконатися, що до нього потрапили лише навмисні зміни. Commit message коротко описує зміст. IDE може запустити reformat code, optimize imports і code analysis; ці перевірки допомагають знайти технічні проблеми, але не замінюють ручного diff review.

Публікація Java-проєкту на GitHub →

Java · Advanced: API-автоматизація · 10:00–30:00

Generated assertions і їх межі

Assertion generator може створити fluent `hasName`, `hasCode` та інші methods з model classes. Розглядаються hard і soft assertions, package include/exclude та custom templates. Live demo виявляє plugin/version/import failures. Урок: generated assertion code потрібно компілювати у clean build і review, а не вважати generator output правильним за замовчуванням.

AssertJ: виразні асерти та їх генерація →

Java · Сесії: AMA та PMP · 10:20–14:25

Заощаджений час: розвиток, відпочинок і власні інструменти

[Дивитися з 10:20](https://www.youtube.com/watch?v=reaHS8_pZbU&t=620s). Стабільного інженера часто цінують вище за «rockstar», який коротко дає надрезультат, але має підвищений ризик burnout. Якщо automation або AI скоротили виконання задачі, час можна вкласти в навчання, сім’ю, відпочинок чи власний small product, а не автоматично збільшувати обсяг sprint commitment. Окремий варіант — локальний analyzer для test failures, artifacts або code review, який бере контрольований фрагмент logs/code, формує summary і допомагає знайти напрямок виправлення. Такий інструмент має залишатися в дозволеній trust boundary. Дві повні зайнятості автор згадує лише як короткостроковий спосіб заробітку й не радить його як тривалий режим через навантаження та ризик вигорання.

Як працювати на спокійному проєкті та з нав’язаними оцінками →

Java · Основний курс · 10:20–14:20

Fluent interface у Page Objects

Щоб будувати виклики через крапку, метод Page Object замість `void` повертає поточний тип і завершується `return this`. Так `open()` може повернути `SignInPage`, після чого одразу викликається `loginUser(...)`. У відео цей стиль пов'язують із назвами fluent interface та chain of invocation; у заголовку уроку також використано Chain of responsibility. Повернення `this` зручне для послідовності дій у межах одного Page Object. Повертати з кожного методу наступну сторінку викладач не радить: довгі ланцюжки приховують переходи й ускладнюють code review. Допустимий локальний виняток — компонент або popup, який належить поточній сторінці й природно стає наступним об'єктом взаємодії. Спільні значення, потрібні кільком тестам, переносяться до наявного `BaseTest`, а не дублюються. Для них обирається найвужча достатня видимість, у прикладі — `protected` для класів-нащадків.

Selenide: iframe, fluent interface та конфігурація →

Java · Сесії: AMA та PMP · 10:30–13:30

Перевірка staged diff перед commit і push

Перед кожним commit потрібно відкрити список змінених файлів і переглянути конкретні рядки. Досвід не усуває ризик випадково додати пароль, token, локальну конфігурацію, тимчасовий коментар або сторонню зміну. `.gitignore` зменшує ризик, але не замінює перегляд staged diff. Корисна послідовність: перевірити `git status`, додати лише потрібні файли, переглянути staged diff, створити вузький commit і ще раз перевірити гілку перед push. Коментарі в коді оцінюються за користю; назви функцій, змінних і локаторів мають пояснювати намір без зайвого шуму.

Гітігнор та як працювати з гітом та не помилитись →

Java · Додаткові матеріали · 10:55–12:50

Окрема branch для зміни

Зміни для окремого завдання виконуються в новій branch, створеній від актуальної основної гілки. При створенні варто одразу checkout на неї, після чого перевірити поточну branch перед commit. Це ізолює роботу та спрощує подальший review.

Публікація Java-проєкту на GitHub →

Java · Основний курс · 11:53–16:11

Assertions у тесті і перехід до DTO

Первинні перевірки мають бути видимими в тесті, а не захованими в controller. Тому API method повертає `Response`, а test явно перевіряє status code. Така структура спрощує code review і показує, що саме доводить сценарій. Наступний крок — замінити JSON strings на data transfer objects, щоб мати Java types, autocomplete і зручне оновлення полів. Додаються Java Faker для унікальних test data і Lombok для генерації boilerplate. Для Lombok у IntelliJ IDEA потрібні plugin і ввімкнений annotation processing.

API-автоматизація: MVC і Jackson →
Запитати в чаті про «review» →