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

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

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

Перевірити, чи потрібен Cucumber

Візьміть один existing E2E scenario і назвіть його реальних readers.
Перепишіть його technology-neutral Given/When/Then із observable outcome.
Якщо reader і discovery loop відсутні, порівняйте maintenance cost із direct automated test.
Один scenario, список readers і аргументоване рішення залишити або прибрати Cucumber layer.

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

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

Антипатерн: Cucumber живе тільки в automation

Типовий невдалий варіант: manual test cases уже містять steps, але автоматизатор повторно перекладає їх у Gherkin, а потім створює step definitions. Одна дія існує як feature text, regex/parameterized step і code implementation. Різні автори формулюють однакові steps по-різному, тому повторне використання швидко руйнується. Management може вимагати кількість automated scenarios або «читабельний для business report», але потім не відкривати ці reports. У такій ситуації Cucumber не забезпечує BDD: він лише додає maintenance cost команді automation. Ознака справжнього BDD — scenarios використовуються для спільних рішень, а не лежать наприкінці pipeline.

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

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

Чому досвід поганого коду теж корисний

Чистий код важко зрозуміти лише з правил. Спочатку інженер пише прямолінійне рішення, потім стикається з duplication, coupling і складним maintenance — і лише тоді бачить, яку конкретну проблему вирішує refactoring або design pattern. Patterns і code smells не застосовуються механічно: різні правила можуть тягнути рішення в протилежні боки. Потрібен контекст, щоб вирішити, коли достатньо простого API call, а коли справді потрібні controller, DTO, serialization та додаткові abstraction layers.

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

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

Selenium WebDriver, explicit waits і ширша matrix

Selenium 4 використовує стандартизований W3C WebDriver protocol. Client binding надсилає HTTP-команди WebDriver endpoint, а browser-specific driver виконує їх у Chrome, Firefox, Edge, Safari чи іншому підтримуваному браузері. У старішому Selenium 3 застосовувався JSON Wire Protocol. У класичному Selenium flow перед click або input часто використовується explicit wait: client повторно перевіряє умову на кшталт visibility або clickability, а після її виконання надсилає окрему action command. Це створює більше round trips, особливо коли browser session віддалена. Сильна сторона Selenium — широка екосистема vendor drivers і remote providers. Якщо навіть невелика частка користувачів певного браузера означає сотні тисяч людей або браузер входить у договірну support matrix, таке покриття не можна відкидати лише через повільніший test run. У Python-проєкті технічно можна мати і Playwright, і Selenium tests під pytest: Playwright для основного functional suite, Selenium — для вузької cross-browser перевірки. Це виправдано лише реальною вимогою, бо два automation stacks подвоюють dependency, fixture та maintenance surface.

3. Selenium vs Playwright - яка різниця →

Python мануфактура · Сесії: AMA та PMP · 21:47–26:51

Швидка alpha не дорівнює підтримуваному продукту

[Дивитися з 21:47](https://www.youtube.com/watch?v=crzGm6nzfbU&t=1307s). Одна-дві людини з агентами можуть швидко створити alpha або beta й навіть працювати з великою enterprise codebase, якщо моделі мають достатній контекст. Але продуктивність має спиратися на quality gates: CI/CD, tests, performance checks, review іншими агентами та явні артефакти. Якщо команда не читає код і результати test runs, за пів року чи рік накопичуються зміни, які важко підтримувати, масштабувати й діагностувати. Тоді знову потрібні інженери з глибокими знаннями architecture, backend, PostgreSQL, messaging та конкретного domain.

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

Python мануфактура · Програма курсу · 25:00–29:46

WebDriver BiDi та критерії вибору

WebDriver BiDi додає двосторонні події й команди до WebDriver ecosystem: console/network events, більш оперативний browser state та можливості, для яких односпрямованого command-response API недостатньо. У відео технологія описується як така, що ще потребує узгодження версій Selenium, browser і driver та не має однакової зрілості у всіх language bindings. Фінальне порівняння: Playwright — менше ручних waits, багаті debugging artifacts і швидкий workflow для сучасних engines; Selenium — ширша browser/vendor compatibility, але більше інфраструктурних і synchronization витрат. Вибір робиться від support matrix, geography, потрібних protocols і вартості maintenance, а не від загальної популярності інструмента. Практичний default для курсу — Playwright. Selenium варто додавати лише тоді, коли конкретний browser або remote provider є перевіреною вимогою, яку Playwright suite не закриває.

3. Selenium vs Playwright - яка різниця →

Python мануфактура · Сесії: AMA та PMP · 31:22–38:52

Можливість, технічний борг і безпека

[Дивитися з 31:22](https://www.youtube.com/watch?v=crzGm6nzfbU&t=1882s). Малий бізнес зможе дозволити собі одного-двох інженерів для власної CRM, аналітики чи інтеграцій, але слабка інженерна база збільшить кількість data-loss, authentication і maintenance incidents. Enterprise adoption стримують privacy та заборона передавати proprietary code стороннім моделям. Паралельно AI і генерує security vulnerabilities, і допомагає знаходити давні дефекти. Єдиної відповіді для ринку немає: AI дає величезну можливість швидко реалізувати ідею, але deployment, domain, observability, security та подальша підтримка все ще потребують людей і бюджету.

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

Java API-автоматизація · 35:00–55:00

Devices, screen sizes і long-term delivery cost

Покриття має враховувати різні screen sizes, OS versions і representative devices, але не перетворюватися на cartesian product кожного scenario з кожним device. Cross-platform допомагає швидко отримати market feedback, але native plugins і diverging teams збільшують maintenance cost. Тест strategy має врахувати цей ceiling заздалегідь.

Стратегія тестування мультиплатформних систем →
Запитати в чаті про «maintenance» →