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

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

Що змінилося після запису · 57:20

`.gitignore` не діє на tracked files

Чинна Git documentation прямо зазначає: files already tracked by Git are not affected; їх потрібно окремо вилучити з index, перш ніж ignore pattern запобігатиме повторному додаванню.

3. Селектори та пошук елементів →

Термін · 9:30

Feature-coupled step definitions

Step definitions, організовані навколо окремих feature files замість shared domain language; Cucumber описує цей підхід як anti-pattern через duplication і explosion of steps.

Чому критикують BDD і Cucumber →

Java: архівні доповнення · 6:10–8:35

Що не можна комітити

До Git додаються source code, Gradle Wrapper і потрібні configuration files. Не комітяться `.gradle`, `build`, `out`, локальна `.idea`, Maven build output та файли з environment variables чи secrets. Виняток для частини `.idea` може бути свідомим командним рішенням, наприклад для спільного code style. `.gitignore` має явно захищати repository від згенерованого сміття та приватних даних.

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

Python мануфактура · Програма курсу · 0:00–5:30

Коли потрібен Allure і з чого він складається

Повноцінний reporting — це додаткова система, яку доведеться оновлювати й підтримувати. Якщо команді достатньо logs, screenshots, traces і простого HTML report, не варто автоматично додавати Allure лише через популярність. Він доречний, коли потрібні історія, структуровані steps, attachments і спільна точка перегляду результатів. Екосистема має три практичні шари: Allure CLI генерує report; language binding формує сумісні result files; framework adapter на кшталт `allure-pytest` підключається до конкретного test runner. У відео також прямо згадано ризик telemetry та походження продукту: перед adoption треба перевірити актуальну політику даних і вимкнути необов’язкову аналітику відповідно до правил організації.

4. Allure репорт, основи та інтеграція в CI →

Python мануфактура · Програма курсу · 0:00–1:00

Test data й artifacts

Файли зберігають підготовлених users, transactions або результати, які треба передати наступному кроку чи додати до report. Перед записом варто визначити життєвий цикл даних: тимчасовий debug output не повинен назавжди засмічувати repository або CI agent.

7 робота з файлами →

Python мануфактура · Сесії: AMA та PMP · 3:30–6:30

Кольори IDE й згенеровані тестові артефакти

IDE кольорами відрізняє нові, змінені, незмінені та проігноровані файли. Конкретні кольори залежать від теми й редактора, тому важливий не сам колір, а статус у Version Control. Як приклад до `.gitignore` додаються каталоги з результатами та звітами тестів. Такі артефакти зазвичай відтворюються під час запуску й не потрібні іншим розробникам у Git. Після зміни правила варто перевірити, що каталог справді став ignored і не присутній у staged changes.

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

Python мануфактура · Сесії: AMA та PMP · 6:05–9:10

SAST, DAST і спеціалізовані scanners

SAST аналізує codebase, configuration та infrastructure definitions без запуску повного user flow. До scope можуть входити source code, dependencies, YAML, Docker та Terraform files. DAST працює проти запущеного застосунку: генерує requests, змінює parameters, headers, authentication data й шукає небезпечну runtime behavior. OpenAPI specification може бути input для API security scanner-а. Окремі tools аналізують network traffic або вразливості, характерні для конкретної мови, cloud platform, protocol чи IoT stack. Тому pentesting швидко розгалужується на спеціалізації, а не зводиться до ручного перебору requests у Postman.

Перехід у пентестинг: що важливо →

Python мануфактура · Сесії: AMA та PMP · 6:20–9:20

Глибина знань зростає разом із seniority

Для middle і особливо senior рівня очікується розуміння типів даних, проходу collections, роботи з files та databases, object lifecycle, scope variables, initialization order і test runner lifecycle. Ці знання зазвичай закріплюються після реальної проблеми, а не після ізольованої лекції. Тому відповідь не вимірюється списком syntax topics. Junior має безпечно змінювати прості scripts; middle — діагностувати non-obvious behavior; senior — пояснювати system-level root cause й обирати правильний test seam.

Який рівень програмування потрібен automation engineer →

Python мануфактура · Програма курсу · 9:55–15:15

Перший варіант tracing і проблема дублювання

Запис запускається через `context.tracing.start(screenshots=True, snapshots=True, sources=True)`, а перед закриттям context завершується `tracing.stop(path=...)`. Trace Viewer показує Playwright actions, DOM snapshots, source files і network. Якщо вставити start/stop у кожну низькорівневу fixture, код дублюється, а один session trace змішує кілька тестів. Tracing переноситься у test-scoped app fixtures, щоб кожен тест мав окремий lifecycle.

4. Повертаємо traces, pytest hooks, рефакторинг дублювань у fixtures →

Python мануфактура · Сесії: AMA та PMP · 10:25–16:40

Як сформувати набір агентів для проєкту

[Дивитися з 10:25](https://www.youtube.com/watch?v=crzGm6nzfbU&t=625s). Початкові agent files можна згенерувати через research: зібрати best practices для ролі, структуру інструкції, потрібні tools і формат комунікації. Далі ці файли потрібно підтримувати разом із проєктом, а не вважати одноразовими prompts. PM зручно використовувати для декомпозиції й синхронізації, test analyst — для стратегії покриття, QA automation — для реалізації перевірок. У демонстрації Codex імпортує project instructions і subagents з Claude-конфігурації, але після міграції все одно треба перевірити permissions, моделі й спосіб виклику ролей.

Як налаштувати мультиагентне середовище →

Python мануфактура · Сесії: AMA та PMP · 12:45–15:55

Чому scripting залишається обов’язковим

Pentester автоматизує запуск tools, підготовку input, аналіз результатів, відтворення знахідок і створення reports. Для цього потрібні базові programming concepts: variables, data structures, files, network requests, error handling і передача даних між process-ами. Мова залежить від задачі: Shell підходить для orchestration, TypeScript або Python — для швидких API scripts, Go часто зустрічається в infrastructure та security tooling. Low-code може пришвидшити старт, але на співбесіді й у production роботі все одно потрібно розуміти, що саме виконує generated script.

Перехід у пентестинг: що важливо →

Python мануфактура · Сесії: AMA та PMP · 15:40–19:05

Спільні основи різних мов

Після першої мови наступна засвоюється швидше, бо основні задачі повторюються: прочитати або записати file, пройти collection, зберегти structured data, виконати network request, звернутися до database й запустити test runner. Змінюються syntax, libraries та окремі runtime semantics. Практичний орієнтир: добре вивчити одну мову на реальних задачах, а другу брати тоді, коли вона відкриває дешевший або надійніший спосіб вирішити поточну проблему. AI допомагає швидше знайти syntax, але не замінює перевірку architecture і behavior.

Який рівень програмування потрібен automation engineer →
Запитати в чаті про «files» →