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

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

Нюанс · 3:05

Застереження

SpeechAnalyzer і on-device SpeechTranscriber уже були доступні до запису відео. Вони показують, що local transcription не має одного performance profile: latency, resource limits, locale support і code-switching потрібно вимірювати на цільових devices.

Корисні застосунки та їхнє призначення →

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

Матриця перевірок створення ресурсу

Для одного POST endpoint опишіть immediate response assertion і спосіб перевірки eventual result.
Додайте resource-schema assertions і один business-flow assertion.
Позначте, який тест локалізує кожен failure.
Таблиця з чотирма checks, test level і failure signal.

Міграція бази даних і тестування даних →

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

Resource controllers і negative responses

Коли один endpoint method потрібен кільком тесам, він переходить у resource controller/service. Межа class залежить від real API: окремий service на resource або кілька related resources в одном service client. Для negative tests controller краще повертати raw `Response`, щоб test явно перевірив status, headers і error body. Примусова deserialization success DTO для `4xx/5xx` сховає реальний contract.

POJO, Jackson і контролери →

Java · Сесії: AMA та PMP · 22:55–25:34

Resource tests проти business-flow tests

Окремий resource test детально перевіряє schema, типи та mapping конкретної сутності. Business-flow test фокусується на ключових результатах і досяжності сценарію, не дублюючи кожну дрібну assertion з ресурсного рівня. Частину детальних перевірок можна перенести на component/integration level, але лише якщо команда знає, що потрібний контракт там справді покритий і цим evidence можна довіряти. Інакше «це вже десь тестується» залишає реальну прогалину.

Міграція бази даних і тестування даних →

Java · Основний курс · 0:00–5:20

Packages, MVC і resource controllers

Код API automation виноситься в package `api`, а існуючі UI-теси — в `web`. Для подальшої структури автор адаптує ідею MVC: test залишається місцем сценарію та перевірок, DTO описують data model, а controllers містять API operations. Для кожного ресурсу створюється окремий controller, наприклад projects або auth. Дуже великий resource можна розділити на кілька controllers. Під час перейменування Java class в IntelliJ IDEA потрібно використовувати Rename refactoring (`Shift+F6`), щоб назви file і public class залишилися однаковими.

API-автоматизація: MVC і Jackson →

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

OAuth roles і місце в архітектурі

Authorization server видає/validates tokens і може масштабуватися окремо. Client — application, яка просить access; resource owner дає consent; resource server приймає access token і захищає API. Відео розрізняє user authorization і service-to-service access. Токен має представляти конкретного subject/client і не давати більше privileges, ніж потрібно.

OAuth 2.0 і конфігурація →

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

Виділення API client і resource methods

Shared `RequestSpecification` виноситься в client/configuration method, а resource operations — у methods з domain names, наприклад create/find pet. Тест залишає сценарій і assertions, transport details переходять в client. Рефакторинг починається після working example, а не з speculative framework. Назва class може бути `Client`, `Controller` чи `Service`; важливіше, щоб він відповідав одному resource/service boundary.

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

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

`BaseController` і порівняння лінійного та controller-based тесту

Спільна RestAssured configuration переноситься в abstract `BaseController`. Бібліотека RestAssured має бути доступною main-коду, тому dependency переводиться з test-only у `implementation`. Controllers успадковують base class і працюють з protected request specification. Логін, пошук проєкту і створення suite розносяться між `AuthController`, `ProjectController` і `SuiteController`; controllers та DTO розкладаються в окремі packages. Для порівняння в тому самому class залишається початковий «брудний» сценарій і додається окремий MVC-варіант. Перенесення operations в окремі classes дає змогу розширювати кожен resource без розростання одного test class.

API-автоматизація: MVC і Jackson →

Java · Сесії: AMA та PMP · 5:30–8:20

Native tests і внесок у testability

Для важливих або частих перевірок радиться розглянути native інструменти: XCTest/XCUITest на iOS та Espresso або зручнішу обгортку Kakao на Android. Такі тести ближчі до застосунку, швидше виконуються і зрозуміліші mobile developers, які можуть запускати їх локально та в CI. Автоматизатор має покращувати testability самого продукту: додавати або просити додати стабільні `accessibilityIdentifier`, `accessibilityLabel`, Android `resource-id` і content descriptions. Native selectors, predicates і class chains зазвичай кращі за XPath. Якщо команда контролює source code, стабільний атрибут дешевший за постійне ускладнення locator-а в зовнішньому test suite.

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

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-автоматизація · 20:00–30:00

User flow і server-to-server flow

User flow емулює дії людини і consent, service flow представляє machine client. Якщо test завжди бере admin/service token, він не перевіряє real user authorization boundaries. Потрібні positive/negative checks для scopes, audience, client type і resource access. Token exchange чи внутрішні service tokens не слід вигадувати за Network tab — їх contract має дати backend/security team.

OAuth 2.0 і конфігурація →

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

HTTP methods і status codes як частина contract

`GET`, `POST`, `PUT`, `DELETE` мають різні очікувані effects. `200 OK`, `201 Created`, `202 Accepted`, `204 No Content`, client errors `4xx` і server errors `5xx` не слід згортати в одне «працює/не працює». Особлива увага приділяється `PUT`, де behavior для nonexistent resource залежить від contract. Автотест має кодувати домовленість конкретного API, а не універсально вважати один code правильним для всіх APIs.

Теоретичний вступ до вебсервісів →
Запитати в чаті про «resource» →