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

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

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

Спроєктувати runner для одного UI-suite

Намалювати маршрут від runner до application і залежностей.
Зафіксувати потрібні credentials та мінімальні network rules.
Запустити suite з обраною concurrency й записати peak CPU/RAM.
Обґрунтувати hosted або self-hosted варіант фактичними даними.
Короткий capacity та access worksheet без універсальних припущень про RAM або вартість.

Інфраструктура автотестів та її нюанси →

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 · Сесії: AMA та PMP · 6:20–9:20

Глибина знань зростає разом із seniority

Для middle і особливо senior рівня очікується розуміння типів даних, проходу collections, роботи з files та databases, object lifecycle, scope variables, initialization order і test runner lifecycle. Ці знання зазвичай закріплюються після реальної проблеми, а не після ізольованої лекції. Тому відповідь не вимірюється списком syntax topics. Junior має безпечно змінювати прості scripts; middle — діагностувати non-obvious behavior; senior — пояснювати system-level root cause й обирати правильний test seam.

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

Java · Сесії: AMA та PMP · 9:20–12:25

Яку мову вивчати і навіщо знати кілька

Розповсюдженість мови залежить від ринку, країни й конкретного моменту. Замість абстрактного рейтингу радиться дивитися на актуальні вакансії та стеки продуктів, у яких хочеться працювати. Друга мова корисна під час migration з одного stack на інший: generated translation code все одно треба перевірити на language-specific idioms, concurrency model і зайві конструкції. Для staff/principal/SDET ролей кілька мов дають змогу працювати не лише із зовнішніми tests, а й додавати coverage та testability у frontend і backend repositories.

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

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

Комунікація обмежень і контрольовані набори даних

Якщо команда не може створити користувача в потрібному статусі або змінити його стан, неможливо гарантувати комбінаторне покриття критичних flows. Це треба формулювати через вплив: які сценарії не перевіряються, скільки триває підготовка та який ризик проходить у release. У регульованих системах інколи дозволений лише затверджений набір акаунтів. Тоді файл із ними залишається поза Git, передається через CI secret або контрольований config service, а тест обирає вільний профіль відповідного типу. Випадковий вибір без reservation не вирішує concurrency: потрібна оренда, блокування або розподіл акаунтів між workers.

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

Java · Сесії: AMA та PMP · 45:30–48:19

Банківські процеси, BPMS і state machines

У banking та інших регульованих доменах onboarding може проходити довгий Business Process Management flow з compliance-перевірками. Одна сутність не завжди може одночасно рухатися двома переходами стану, тому паралельні тести на спільному профілі конфліктують або блокують processing. Для стабільної автоматизації потрібно знати state machine, зовнішні залежності та правила блокування. Якщо динамічне створення неможливе, керований pool тестових сутностей має враховувати їх поточний стан, reservation, recovery після падіння тесту та регулярне відновлення після refresh середовища.

Юзер менеджмент та костилі з якими ви стикнетесь в житті →
Запитати в чаті про «concurrency» →