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

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

Практика · 5:30

Вибір mobile automation strategy

Оберіть один власний mobile flow і визначте, що має перевірятися на backend, native component та system E2E levels.
Складіть мінімальну device matrix із поясненням кожного device та OS version.
Назвіть accessibility attributes, яких бракує для стабільних selectors.
Односторінкова strategy з test levels, device matrix і переліком testability changes.

Типи мобільних застосунків та мобільна автоматизація →

Java · Сесії: AMA та PMP · 17:00–20:12

ORM trade-offs і вибір першого automation seam

ORM є компромісом: прискорює типову розробку, але може генерувати неефективні queries або приховувати N+1, зайві joins і transaction behavior. Повертатися до ручного SQL слід за профілем і вимірюванням, а не через загальну недовіру до abstraction. У бажаній архітектурі backend виконує бізнес-перетворення, а frontend переважно відображає готовий contract. Якщо значна logic усе ж живе на frontend, це підсилює цінність UI/component automation. Коли продукт створюється з нуля й UI ще немає, логічно почати з API. Для наявного продукту без automation перший seam вибирають за ризиком і вартістю ручної регресії, а не за універсальним правилом «завжди UI» або «завжди backend».

Автомтизація баз даних та що з тим робити та що знати →

Java · Сесії: AMA та PMP · 35:30–42:30

Архітектура login flow і безпечний test bypass

Типовий login flow проходить через frontend, backend і auth provider: клієнт надсилає ідентифікатор, provider доставляє або перевіряє challenge, backend після підтвердження видає session/token для наступних запитів. Розуміння цього маршруту показує, де саме тест блокується зовнішньою системою. У відео пропонується test-only custom header або спеціальний акаунт, за яким backend пропускає зовнішній challenge. Такий hook допустимий лише з жорстким fail-closed дизайном: production build/config його не реєструє; доступ обмежений тестовою мережею та авторизованим test service; credentials короткоживучі; використання журналюється. Перевірка одного секретного header у production-коді створює критичний auth bypass і є неприйнятною.

Юзер менеджмент та костилі з якими ви стикнетесь в житті →

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

Як reCAPTCHA приймає рішення

Frontend збирає поведінкові signals і отримує token; backend передає token провайдеру та порівнює отриманий score з власним threshold. Автотест виглядає як бот і часто отримує низький score. Для test environment використовують офіційний test key або узгоджений mode, у якому frontend не показує challenge, а backend не викликає production verification. Так тест перевіряє application flow, не підмінюючи окрему перевірку реальної CAPTCHA integration.

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

Java · Сесії: AMA та PMP · 6:10–11:05

Ланцюг gateway, сервісів і invite token

[Дивитися з 06:10](https://www.youtube.com/watch?v=GwmAB4IvQUk&t=370s). У реальній архітектурі browser звертається до API gateway, той перевіряє authentication та authorization, передає запит backend-сервісу, а backend отримує шаблон або ініціює відправлення через інший сервіс. Invite token має бути згенерований правильним компонентом, переданий без зміни й мати визначений TTL. Якщо контракт нечіткий, один сервіс може додати зайвий або захардкоджений token, після чого формально валідний request завершується невалідним invite. Перевірка лише зовнішньої специфікації endpoint не знаходить помилку в розподілі відповідальності між сервісами.

Прихована складність бекенд-тестування →

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

Business example не замінює engineering task

Після узгодження behavior загальний scenario треба декомпозувати. Frontend task описує component, validation і UI states; backend task — endpoint, contract і business rule; test task — ризики й потрібне coverage. Для інженера прямий технічний опис часто коротший і точніший за повторення кожної умови через `Given/When/Then`. Проблема починається, коли один формат примусово використовують для всіх ролей. Business не має керувати деталями automation code, а automation engineer не повинен перекладати вже зрозумілий technical contract у довший Gherkin лише для формальної відповідності процесу.

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

Java · Сесії: AMA та PMP · 8:00–12:00

Один product engineer може закрити широкий vertical slice

[Дивитися з 08:00](https://www.youtube.com/watch?v=jAl2Qf8Zlyg&t=480s). Досвідчений engineer із точним plan може реалізувати frontend, backend і частину deployment pipeline, використовуючи готову design system та API contract. Frontend має знати, який resource і endpoint запросити; backend — який response повернути; shared components і design tokens дають повторюваний UI. AI допомагає заповнити реалізацію, але не визначає самостійно правильні boundaries і product behavior.

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

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

OpenAPI, JSON types і шлях даних

Автор розбирає Swagger/OpenAPI descriptions і JSON як мову обміну між clients та backend. Тип, format, required fields, arrays і dates важливі не менше за business value. Окрема тема — перетворення дат і numbers між database, backend і frontend. Якісний test design залежить від розуміння цих transformations; black-box response assertion може не показати, на якому рівні виник defect.

API: що тестувати та як написати перший тест →

Java · Сесії: AMA та PMP · 12:25–15:40

Мова як спосіб знайти правильний test level

Ширше знання стеків допомагає не дублювати один сценарій на найдорожчому рівні. Mobile behavior іноді краще перевірити XCTest або Kotlin test; business rule — backend integration test; а лише критичний cross-service flow залишити системним E2E. Вибір залежить від архітектури: частина failures виникає не в service, а в API gateway чи infrastructure. Тому «перенести все вниз» так само некоректно, як перевіряти все через UI. Потрібно розуміти, який рівень реально спостерігає ризик.

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

Java · Основний курс · 15:45–17:23

Protocols, API Gateway і Backend for Frontend

Окрім REST, системи використовують WebSocket, gRPC і GraphQL. Протокол обирається під задачу, тому перед автоматизацією потрібно зрозуміти не лише endpoint, а й модель комунікації. Backend for Frontend — це gateway з контрактом, зручним для конкретного client: web frontend, mobile application або окремого screen. Зовні він відкриває потрібні resources, а всередині може агрегувати кілька services з їхніми базами і queues.

Вступ до API-автоматизації →

Java · Сесії: AMA та PMP · 23:19–33:00

REST і GraphQL уже дають словник для API automation

У REST структура починається з resources та HTTP methods. `Pet`, `Store` або `User` задають назви controllers/clients, а дії на кшталт create, update, delete чи find by ID — назви методів. Request і response models корисно розділяти, бо server response часто містить поля, яких не було у request. У GraphQL треба повторювати назви queries, mutations, inputs і types зі schema. Code generation може дати готові типи, але базове правило те саме: не створювати паралельний словник там, де backend contract уже має точні терміни. Read-only доступ до frontend і backend repositories допомагає швидше зрозуміти систему й підтримувати automation разом зі змінами продукту.

Неймінг та структура automation-проєкту →
Запитати в чаті про «backend» →