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

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

Термін · 0:00

Faker seed

Seed робить послідовність generated values відтворюваною в межах зафіксованої версії Faker; сам seed не замінює domain validation.

Тестові дані для автотестів →

Термін · 9:30

Feature-coupled step definitions

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

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

Термін · 3:25

Gherkin

Domain-oriented language для concrete examples: Given задає known state, When — event, Then — observable outcome. Implementation details не повинні домінувати в scenario language.

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

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

Спроєктувати V0 structure без speculative folders

Візьміть один реальний web або API automation scope.
Створіть лише folders, які мають хоча б один поточний consumer.
Запишіть measurable condition для винесення database, messaging або другого domain на окремий рівень.
Мінімальне tree representation і три explicit upgrade conditions.

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

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

Перевірити domain object наскрізно

Описати typed object з одним boundary field.
Створити валідний object у arrange.
Передати його у create action.
Звірити ті самі expected fields в API response і UI details.
Зберегти seed у failure output.
Один test відтворює data set і виявляє помилку mapping на конкретному checkpoint.

Тестові дані для автотестів →

Java · Сесії: AMA та PMP · 0:00–3:25

BDD у контексті способів розробки

Waterfall, Scrum, Kanban і Lean описують організацію delivery process. TDD, BDD і Domain-Driven Design деталізують, як команда формує implementation: через tests, observable behavior або domain model. Це різні площини, хоча в реальних процесах вони поєднуються. Початкова проблема однакова для різних індустрій: business має пояснити engineering team, який результат потрібен. Для цього використовуються user stories, diagrams, domain language і examples. Gherkin — лише один формат такої комунікації.

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

Java · Сесії: AMA та PMP · 2:00–5:00

Generator повної domain-сутності

Окремий generator може повертати не одне поле, а цілісний `User`, `Company` або `Product` з усіма значеннями, які тест перевірятиме далі. Частина полів випадкова, частина належить до обмеженого набору, частина приймається як parameter. Такий обʼєкт є очікуваною моделлю даних сценарію; окремі actions використовують його для onboarding, create або update через API чи UI.

Тестові дані для автотестів →

Java · Сесії: AMA та PMP · 36:00–39:00

Shift Left і експертиза як multiplier

[Дивитися з 36:00](https://www.youtube.com/watch?v=jAl2Qf8Zlyg&t=2160s). Тестувальник може раніше перевіряти consistency requirements, contradictions, duplicated rules і missing states. Business analyst, designer, product owner, developer та QA працюють із тим самим problem context, але бачать різні ризики. Сильна domain expertise плюс AI skills підсилює команду; слабка expertise лише швидше масштабує неправильні рішення.

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

Java · Advanced: API-автоматизація · 1:20:00–1:40:00

Fluent response assertions і business-readable API

Над `Response` будується small fluent wrapper: status, typed body, field/domain assertions, завершення chain. Це дає тесту domain vocabulary і прибирає repeated parsing. Важливо не сховати expected behavior за великим «validateEverything». Fluent method має виражати одну observable property і давати specific failure.

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

Java · Сесії: AMA та PMP · 0:00–2:00

Не хардкодити єдиний набір даних

Credentials, product, company чи іншу сутність не варто фіксувати безпосередньо в тілі всіх тестів: один екземпляр не дає варіативності й приховує проблеми з іншими значеннями. Faker або власний generator має враховувати domain constraints і boundary values, а кожен run — по можливості створювати інший валідний набір. Детермінований seed можна залишити для відтворення падіння.

Тестові дані для автотестів →

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 · 4:35–8:20

Чому automation без test strategy не робить інженера senior

Уміння писати код саме по собі не означає middle або senior automation-рівень. Потрібні test strategy, impact analysis, risk management, test planning і вміння обрати правильний рівень перевірки. ШІ спрощує написання коду, але не вирішує за інженера, що варто автоматизувати і який feedback справді потрібен команді. Частину сценаріїв краще перевіряє автоматизація: великі масиви даних, інсталяції, API та повторювані комбінації. Інші властивості — usability, анімації, адаптивність і візуальна якість — часто потребують людської оцінки. Сильна роль поєднує обидва способи роботи.

Як manual QA перейти в automation →

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

Перша задача повинна перевірити потрібну сильну сторону

Базовий onboarding для всіх рівнів включає documentation, доступи, checkout репозиторію та перевірку Jira/CI. Наступну невелику задачу варто обрати за конкретним плюсом, заради якого людину наймали: fintech, maps, CAPTCHA, OTP чи інша domain expertise. Від senior очікується ширше дослідження infrastructure, access, environments і rate limits; middle може зосередитися на локальній реалізації.

Методики проведення співбесід →

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

Типізовані дані як наскрізний контракт

Між functions передають типізовані `UserDto`, `ProductDetails`, `CompanyDetails` або інші domain types замість розрізнених primitive values. Це робить required fields видимими, спрощує повторні assertions і зменшує ризик переплутати дані. Конкретні приклади реалізації розгортаються далі в курсі.

Тестові дані для автотестів →

Java · Основний курс · 11:30–13:02

Hexagonal architecture як структура коду

Гексагональна архітектура пояснює, як декомпозувати сервіс за відповідальністю та способом взаємодії з довкіллям. Окремі adapters працюють з REST, WebSocket, email, SMS, database, message queue і third-party services, не змішуючи все в одному класі. Для тестувальника такий поділ дає карту ports і failure seams: можна окремо перевірити domain behavior, adapter contract і повний ланцюжок інтеграції.

Вступ до API-автоматизації →
Запитати в чаті про «domain» →