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 · 12:30–17:10

Що входить у mobile-specific coverage

Для підготовки до mobile testing перелічено не лише UI automation: типи застосунків, real device проти simulator/emulator, cloud device farms, network variability і traffic sniffing, distribution builds, роботу з Android Studio та Xcode, device fragmentation і різницю між Android та iOS design guidelines. Функціональне покриття має враховувати OAuth/login, in-app purchases, notifications, offline та error handling, deep links, різні клавіатури, clipboard, permissions під час onboarding, дзвінки та перемикання між apps, screen rotation, GPS simulation, installation/update compatibility і localization. Окремий шар — mobile performance: CPU, GPU, memory, battery і device logs.

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

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 · Сесії: AMA та PMP · 17:10–22:56

Device matrix і цінність mobile-досвіду

Device matrix не варто будувати лише за загальною популярністю моделей. Практичніший критерій — якими devices та OS versions користуються активні й прибуткові клієнти продукту. Це допомагає спочатку покрити ризик, який справді впливає на бізнес, а не рідкісні конфігурації. Android fragmentation створює додаткові ризики через vendor-specific changes, особливо на Samsung та інших кастомізованих збірках. Саме тому mobile automation experience цінується: інженер має розуміти platform lifecycle, distribution, permissions, observability і device-specific failures, а не лише вміти записати Appium steps.

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

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

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

На старті розрізняються native-застосунки для Android та iOS, hybrid/web-mobile рішення і cross-platform стеки на кшталт React Native, Flutter, Kotlin Multiplatform та Xamarin. Native Android переважно пишеться на Kotlin, iOS — на Swift або Objective-C; cross-platform рішення намагаються повторно використати частину коду між платформами. Стратегія тестування залежить не лише від технології UI, а й від розподілу логіки. Один застосунок може майже повністю містити контент і переходи локально, а інший бути тонким клієнтом для складного backend. Тому однакова кількість екранів ще не означає однаковий набір перевірок.

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

Java · Сесії: AMA та PMP · 1:30–3:30

Community flow і перші boundary cases

[Дивитися з 01:30](https://www.youtube.com/watch?v=viR9Rnmxse4&t=90s). Початковий end-to-end flow: створити user, створити community, перевірити її сторінку та редагування. Уже тут видно реальні edge cases: auto-generated URL під час створення не обов’язково поводиться так само під час edit, mobile-first layout відрізняється на desktop, а payment merchant потребує окремого test configuration і не має використовувати production credentials.

Практика курсу на YOY, домашні завдання та формат ПМП →

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

Platform guidelines, native, web і hybrid

iOS Human Interface Guidelines і Android Material guidelines задають expected platform behavior. Тестування має враховувати, що calendar, navigation, gestures і accessibility відрізняються між platforms. Мобільний product може бути responsive web, native, hybrid WebView або cross-platform. Hybrid app має native shell і web context, тому автоматизація має розуміти context switching й не трактувати все як однакову UI tree.

Стратегія тестування мультиплатформних систем →

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:20–12:30

React Native, Flutter і змішана стратегія

У React Native частина компонентів доступна як native UI, частина може поводитися як web content, а для platform-specific можливостей додається Swift або Kotlin code. Крім Appium, для такого стеку згадується Detox. Якщо продукт значною мірою рендериться як web view, більшу частину логіки іноді дешевше перевіряти Playwright-тестами на web-рівні, залишивши кілька справжніх mobile flows для інсталяції, permissions і наскрізної інтеграції. Flutter сам рендерить значну частину UI, тому accessibility tree і поведінка елементів можуть відрізнятися від стандартних native components. Це не робить Flutter автоматично добрим чи поганим: потрібен окремий proof of concept на реальному застосунку, перш ніж обирати automation stack.

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

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 · Основний курс · 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-автоматизації →
Запитати в чаті про «mobile» →