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

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

Що змінилося після запису · 8:55

Kafka — ширше, ніж queue

Kafka stores events durably in partitioned topics; reading does not itself remove an event. Retention, replay і ordering within a partition мають бути частиною test design.

Це уточнення навчального спрощення, а не зміна після запису.

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

Термін · 8:55

Kafka event streaming

Поєднання publish/subscribe, durable event storage і stream processing; producers публікують events, consumers їх читають і опрацьовують.

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

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

Event-driven communication і message broker

Сервіс orders може публікувати подію в Kafka або інший broker, а consumer — зчитувати її і оновлювати status. Асинхронна queue допомагає приймати spikes швидше, ніж downstream встигає повністю опрацювати кожен order. Це не усуває навантаження, а змінює його форму і час. Для тесів з’являються окремі питання: чи опубліковано подію, чи вона була опрацьована, що відбувається з retries, duplicates і відкладеною consistency.

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

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

Комбінований UI/API/DB framework і архітектурний рівень

Framework, який одночасно керує UI, API та DB, вимагає чітких lifecycle і ownership: окремі clients, ізольовані test data, безпечний connection pool, cleanup і коректна робота в parallel. Додавати всі рівні до кожного тесту не потрібно; кожен сценарій має використовувати найнижчий seam, який доводить потрібну поведінку. На senior-рівні додаються system architecture, protocols, caching і concurrency. В event-driven системах доводиться спостерігати Kafka, RabbitMQ або інший broker, чекати eventual consistency та корелювати події. Stub service корисний для контрольованих failure/edge cases, але не замінює невеликий набір справжніх integration tests.

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

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

Gateway, Spring services і message brokers

Запит від browser, mobile або IoT device може пройти DNS, load balancer/API gateway, потім один або кілька services. Java backend у прикладі будується на Spring/Spring Boot, читає database або публікує asynchronous event. Kafka, RabbitMQ та інші brokers допомагають розв’язати producer і consumer у часі. Для тестів це означає, що request success не завжди доводить completed business outcome: потрібно перевіряти event publication, processing, retries і final state.

Теоретичний вступ до вебсервісів →

Java · Сесії: AMA та PMP · 14:39–16:20

Security та нефункціональні релізи

Оновлення framework, runtime, бази даних або Kafka може майже не змінити бізнес-код, але все одно є повноцінним релізом. Такі зміни повинні регулярно проходити перевірки, бо бібліотеки накопичують відомі вразливості. Статичні dependency scanners знаходять відомі проблеми за назвою й версією прямої або транзитивної залежності. Реакція може полягати в upgrade, заміні пакета або, як останній варіант, відмові від нього.

Навіщо встановлювати Playwright-браузери, як часто та чому треба оновлювати бібліотеки →

Java · Сесії: AMA та PMP · 16:20–19:49

Застарілі версії створюють операційний ризик

Чим довше не оновлювати ключовий runtime або framework, тим більше вразливостей і несумісностей накопичується. Критичний exploit тоді змушує виконувати велику міграцію терміново, коли команда має найменше часу на безпечну перевірку. Навіть сумісний на рівні компіляції upgrade може змінити memory management, connection pooling або роботу з Kafka й базою даних. Тому після оновлення потрібні не лише unit-тести, а й інтеграційні та, для критичних систем, нефункціональні перевірки. Підсумкова рекомендація відео — підтримувати залежності в актуальному стані планомірно й заохочувати до цього всю команду.

Навіщо встановлювати Playwright-браузери, як часто та чому треба оновлювати бібліотеки →

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

Test boundaries у microservice/event-driven systems

Перевірка одного HTTP response не покриває asynchronous processing. Для Kafka/RabbitMQ flow окремо перевіряють publication, consumer processing, state change і downstream integrations. Component test може ізолювати service з mocks/stubs, а environment test — перевірити real wiring. Ні один рівень не замінює інший; assertion design має відповідати failure boundary цього тесту.

AssertJ: виразні асерти та їх генерація →
Запитати в чаті про «Kafka» →