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.

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

Нюанс · 26:30

Дубльований responsive DOM — окрема причина неоднозначності

Прихований mobile block може залишатися в DOM разом із desktop block. Visibility не робить global locator унікальним; scope до правильного container має бути явним.

3. Селектори та пошук елементів →

Python мануфактура · Сесії: 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.

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

Design Patterns для автоматизаторів · 58:36–1:03:29

API versioning для старих mobile clients

Встановлена mobile app продовжує використовувати відому їй версію API, навіть коли backend уже оновлено. Несумісна зміна поля або структури response може масово зламати старі iOS/Android builds, тому новий контракт виносять у `v2`, не руйнуючи `v1`. Перевіряти потрібно обидва напрямки сумісності: стару app з новим backend і нову app зі старішим доступним backend contract. Це особливо важливо для користувачів, які рідко оновлюють застосунок.

Мобільне тестування та автоматизація →

Design Patterns для автоматизаторів · 1:13:33–1:23:41

Backend-first automation і тонкий mobile suite

Якщо mobile client переважно відмальовує backend data, основну логіку варто автоматизувати на API-рівні, а на mobile залишити приблизно десяток ключових revenue flows. Якщо ж client містить значну локальну логіку, UI/component coverage потрібно більше. Validation, яка живе всередині форми, доречно перевіряти component test через native framework. Просте відображення backend-масиву краще глибоко перевірити на backend, а на реальному device пройти під час regression. Flaky E2E може вказувати не лише на поганий тест, а й на нестабільність, яку бачать користувачі.

Мобільне тестування та автоматизація →

Design Patterns для автоматизаторів · 1:33:02–1:40:00

Simulators, real devices і mobile farms

Чим більше застосунок використовує стандартні components, тим більше smoke/feature checks можна виконати на simulator/emulator, залишивши фінальну перевірку на реальних пристроях. Custom animation, vendor-specific behavior і складні native components підвищують цінність physical devices. Паралельний запуск на реальних девайсах потребує mobile farm; BrowserStack і Sauce Labs надають готову інфраструктуру, а велика продуктова команда може побудувати власну. Незалежно від інструмента, короткий suite має запускатися локально, а масштабна ферма виправдана лише достатнім mobile traffic і складністю продукту.

Мобільне тестування та автоматизація →

Python мануфактура · Програма курсу · 7:10–9:00

Сторонній Recorder і неповний код

Інший recorder записує кроки login-сценарію та дозволяє обрати мову експорту. Згенерований приклад містить `goto`, `fill` і `click`, але не враховує дубльовані `#content-mobile` та `#content-desktop` блоки на сторінці Testomat.io. Через це локатор поля може знайти кілька вузлів і впасти у strict mode. Генератор бачить окрему дію, але не обов’язково розуміє контекст DOM або усталену архітектуру тестів. Код є чернеткою, а не готовим тестом.

4. Playwright плагіни та codegen →

Python мануфактура · Сесії: 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 →

Python мануфактура · Сесії: 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.

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

Python мануфактура · Програма курсу · 32:20–36:10

Дублікати mobile/desktop і область пошуку

На сторінці одночасно присутні mobile- і desktop-версії форми. Тому навіть нібито унікальний `id` може знайти два вузли, один з яких прихований. Щоб не покладатися на порядок, пошук звужується до видимого контейнера: ```css #content-desktop #user_email ``` Пробіл означає нащадка на будь-якому рівні вкладеності, а `>` — лише безпосередню дочірню ланку. Перед автоматизацією сценарій потрібно повністю пройти вручну й у DevTools перевірити кожен локатор, кількість збігів, видимість елемента та мережеві запити, які запускає введення даних.

3. Селектори та пошук елементів →

Python мануфактура · Сесії: 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. Тому однакова кількість екранів ще не означає однаковий набір перевірок.

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

Design Patterns для автоматизаторів · 0:00–9:14

Native і cross-platform технології

Flutter і React Native дозволяють розвивати iOS та Android з однієї основної codebase, а native-модулі підключати для Bluetooth, geolocation, notifications чи інших можливостей системи. Це прискорює MVP, але native-застосунки на Swift і Kotlin зазвичай мають менше проміжних шарів і працюють швидше. Навіть у cross-platform продукті команди часто розділяються за iOS/Android або за product streams. Тестувальнику потрібно розуміти специфіку кожної платформи, а не вважати однакову codebase гарантією однакової поведінки.

Мобільне тестування та автоматизація →
Запитати в чаті про «mobile» →