Відтворюваний typed test object
Stdlib-приклад показує typed object, valid range і fixed seed без додаткової dependency.
Друкується відтворюваний UserData, а assertion підтверджує базові constraints.
Тестові дані для автотестів →Відеобібліотека
Пошук у нотатках курсу Python мануфактура та спільних матеріалах з переходом на потрібну секунду.
Stdlib-приклад показує typed object, valid range і fixed seed без додаткової dependency.
Друкується відтворюваний UserData, а assertion підтверджує базові constraints.
Тестові дані для автотестів →Дає офіційну точку входу до native Android UI tests і synchronization model.
Типи мобільних застосунків та мобільна автоматизація → Першоджерело ↗Типовий delivery flow складається з отримання dependencies, компіляції або збирання застосунку, створення Docker image, завантаження versioned artifact до Artifactory чи іншого registry та deployment конкретної версії на середовище. Збережені версії дають змогу не просувати несправний build і повернутися до попереднього артефакту. Різні jobs можуть виконуватися на різних runners: один збирає застосунок, інший запускає system tests, третій виконує scheduled processing. Спеціалізація корисна, коли потрібні різні доступи або ресурси, але додає черги й інфраструктурні обмеження.
До Git додаються source code, Gradle Wrapper і потрібні configuration files. Не комітяться `.gradle`, `build`, `out`, локальна `.idea`, Maven build output та файли з environment variables чи secrets. Виняток для частини `.idea` може бути свідомим командним рішенням, наприклад для спільного code style. `.gitignore` має явно захищати repository від згенерованого сміття та приватних даних.
iOS test builds поширюються через TestFlight, а build/distribution pipeline може використовувати App Center або platform developer consoles. Потрібно розрізняти dev build, прив'язаний до test/stage backend, і production-configured build, який перевіряють перед release. Тестувальнику рекомендовано мати read access до iOS/Android repositories, щоб бачити diff, перемикатися на feature branch і збирати зміни локально через Xcode чи Android Studio. Feature flags дають змогу вмикати функціонал для ролей, оточень або частини користувачів без розриву між backend і mobile releases. **Актуальність станом на 2026-08-08.** Visual Studio App Center завершив роботу 31 березня 2025 року; тимчасове продовження Analytics & Diagnostics закінчилося 30 червня 2026 року. Згадку у відео слід сприймати як історичну, а новий distribution/diagnostics workflow звіряти з актуальними сервісами платформи ([Microsoft Learn](https://learn.microsoft.com/en-us/appcenter/retirement)).
Middle має володіти мовою настільки, щоб писати й підтримувати UI та API tests, а також пояснити, як перевірити нову поведінку й які наявні тести варто змінити. UI automation легше показує зв'язок із діями користувача, тоді як API automation часто швидша й стабільніша, але вимагає впевнено працювати з більшими структурами даних і контрактами. Очікується знання базових типів, перетворень і наслідків звуження/розширення типів, dependency/build tool свого stack (`requirements.txt`, `pip`/`uv`, Maven/Gradle, npm), а також можливостей test runner. Важливо вміти запустити тести паралельно й розуміти, які ресурси та змінні створюються для кожного worker.
Мови й екосистеми мають власні package managers або build tools: pip, npm, Maven, Gradle та інші. Вони завантажують бібліотеки з центральних репозиторіїв і можуть кешувати їх локально, але залежності конкретного проєкту визначаються окремо. Python virtual environment ізолює бібліотеки одного проєкту від іншого. На одному комп’ютері можуть співіснувати робочі й особисті репозиторії з різними версіями Playwright, pytest та інших пакетів. Конфлікт можливий, якщо запустити код не тим глобальним Python або неправильно вибрати interpreter. Самі залежності коректно створених `venv` не повинні впливати на сусідні проєкти.
`build_login_payload(email, password)` централізує структуру request body й прибирає дублювання inline dictionaries. Назва має описувати одну дію, а повернений об’єкт можна використати в кількох тестах. Секрети не слід виводити в logs навіть у допоміжних функціях.
`build_user(email, role="viewer")` дозволяє не передавати типову роль, але явно перевизначити її через `role="admin"`. Default має бути безпечним і передбачуваним. Mutable defaults на кшталт `[]` або `{}` небезпечні, бо один об’єкт повторно використовується між викликами.
У `pytest.ini` задаються каталоги з тестами, шаблони імен тестових файлів і функцій та директорії, які не потрібно сканувати. Це звужує test discovery до структури проєкту й прибирає зайву роботу з `.git`, `.idea`, build-артефактами та кешами. Через `addopts` виносяться параметри, які мають застосовуватися до кожного запуску: verbose output, короткий traceback, відображення output лише для failed tests, strict markers, Playwright tracing і генерація self-contained HTML report. Маркери `smoke`, `regression`, `web` та `slow` реєструються явно, щоб помилка в назві не перетворилася на тихе пропускання потрібної групи. Для traces обирається `retain-on-failure`: артефакт створюється під час тесту, але зберігається лише після падіння. Це практичніший default, ніж trace для кожного успішного тесту, бо архіви можуть швидко зайняти багато місця.
Runner клонує репозиторій, встановлює або використовує залежності та запускає тестовий процес. UI-тести додатково піднімають один чи кілька браузерів; навіть headless browser споживає відчутну кількість RAM. Розмір runner слід визначати за реальною паралельністю, наборами браузерів і піковим споживанням, а не за вимогами звичайного application build.
Build warnings про deprecated API — ранній сигнал, що наступна major-версія може видалити використану конструкцію. Попередження може походити не з вашого коду, а з транзитивної залежності, яка ще не адаптувалася. Перед оновленням треба встановити, які API реально використовуються та які пакети залежать один від одного. Інакше оновлення однієї бібліотеки може зламати іншу.