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

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

Термін · 4:35

Test automation strategy

Узгоджений організаційний підхід до впровадження й розвитку automation; ISTQB відокремлює strategy від engineering implementation, але вважає їх взаємодоповнювальними.

Як manual QA перейти в automation →

Практика · 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.

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

Нюанс · 4:00

Self-hosted runner не є isolation boundary

GitHub попереджає, що код workflow на self-hosted runner може скомпрометувати машину та доступні secrets. Один runner виконує одну job одночасно, але це не гарантує ізоляцію між послідовними jobs; для untrusted workflows потрібні ephemeral runners або інша isolation strategy.

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

Python мануфактура · Сесії: AMA та PMP · 4:35–8:20

Чому automation без test strategy не робить інженера senior

Уміння писати код саме по собі не означає middle або senior automation-рівень. Потрібні test strategy, impact analysis, risk management, test planning і вміння обрати правильний рівень перевірки. ШІ спрощує написання коду, але не вирішує за інженера, що варто автоматизувати і який feedback справді потрібен команді. Частину сценаріїв краще перевіряє автоматизація: великі масиви даних, інсталяції, API та повторювані комбінації. Інші властивості — usability, анімації, адаптивність і візуальна якість — часто потребують людської оцінки. Сильна роль поєднує обидва способи роботи.

Як manual QA перейти в automation →

Java API-автоматизація · 35:00–55:00

Devices, screen sizes і long-term delivery cost

Покриття має враховувати різні screen sizes, OS versions і representative devices, але не перетворюватися на cartesian product кожного scenario з кожним device. Cross-platform допомагає швидко отримати market feedback, але native plugins і diverging teams збільшують maintenance cost. Тест strategy має врахувати цей ceiling заздалегідь.

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

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

Починати з product pain, а не з tool

Перше питання — що саме болить: release speed, regressions, platform drift, backend instability, device coverage чи migration. Далі з’ясовують product architecture, team ownership, roadmap і engineering maturity. Інструмент обирається після цього. Наприклад, планована migration з native на cross-platform або навпаки змінює test seams і робить speculative framework марним.

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

Python мануфактура · Сесії: AMA та PMP · 2:32–9:04

`isLoaded` і реальний критерій готовності сторінки

Для кожного Page Object або повторно використовуваного компонента потрібна операція, яка доводить готовність до подальших дій. Вона локалізує причину падіння: замість випадкової помилки наступного кроку тест одразу повідомляє, що сторінка не завантажилася або потрібний блок не з’явився. Критерій залежить від rendering strategy. У client-side rendering можуть послідовно з’являтися skeleton, дані й зображення; інша сторінка приховує весь content до завершення кількох requests. Перевіряти треба мінімальний набір елементів, без яких сценарій не може продовжуватися, а не чекати кожної можливої деталі.

Неймінг та структура automation-проєкту →

Python мануфактура · Сесії: AMA та PMP · 6:55–10:20

Ринкова цінність навичок без культу overperformance

[Дивитися з 06:55](https://www.youtube.com/watch?v=reaHS8_pZbU&t=415s). Автор очікує, що на майбутніх співбесідах питатимуть не лише про prompts, а й про context management, перевірку output, open-source tools, code analysis та integration AI у development workflow. Повна відмова від таких інструментів на поточному client може залишити прогалину в досвіді, тому навички варто розвивати на дозволених або власних матеріалах. Для досвідченого інженера постійний overperformance не гарантує стабільності роботи: layoffs можуть бути наслідком budget, product strategy, regulation, зміни пріоритетів або перерозподілу resources. Рекомендована альтернатива — передбачуваний sustainable pace. Новачку тимчасово потрібна більша інвестиція часу для навчання, але це не має перетворюватися на норму для всієї кар’єри.

Як працювати на спокійному проєкті та з нав’язаними оцінками →

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

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

Python мануфактура · Програма курсу · 12:20–16:15

Пріоритети локаторів і читабельність

Поле Search Project можна знайти за `id` або `placeholder`. `placeholder` є зрозумілим, але може змінюватися через локалізацію. Класи зазвичай менш стабільні за спеціальний тестовий атрибут. XPath має широкі можливості навігації вгору й вниз по DOM, але часто читається гірше за короткий CSS-локатор. Результати тестів мають швидко розуміти розробники, тому читабельність і спільна командна домовленість важливіші за демонстрацію максимально складного виразу.

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

Python мануфактура · Сесії: AMA та PMP · 12:41–14:19

ШІ не скасовує тестування

Твердження «код генерується з тестами, тому тестування потрібно менше» не витримує практичної перевірки. Більший обсяг змін збільшує простір можливих помилок, а зростання кодової бази поступово ускладнює кожну наступну фічу. Рекомендована позиція QA: приймати AI-інструменти й самим використовувати їх, але зберігати поділ відповідальності. Розробники забезпечують комбінаторне покриття ближче до коду, QA перевіряє інтегровану систему, інфраструктуру та користувацькі ризики. Автор окремо фіксує потребу знайти дослідження про довгостроковий вплив ШІ на швидкість розробки. Отже, тезу про повернення продуктивності до плато слід сприймати як практичне спостереження, яке потребує підтвердження даними, а не як уже наведений у відео доказ.

Піраміда тестування, чому не API спочатку та як жити з упровадженням ШІ →

Python мануфактура · Сесії: AMA та PMP · 14:55–19:47

Коли краще видалити проєкт і почати з нуля

Видалення проєкту зі списку Recent у PyCharm прибирає лише запис IDE, а не файли з диска. Щоб повністю почати заново, потрібно закрити проєкт, відкрити його розташування через Finder або Explorer і видалити конкретну папку. Для навчального проєкту без цінних змін повторне створення інколи дешевше за довгий ланцюг випадкових виправлень. Початківець може вирішити одну помилку порадою з інтернету, створити іншу й настільки відійти від початкової конфігурації, що діагностика стане складнішою. Це не правило для робочих репозиторіїв із незбереженими даними: перед видаленням завжди треба перевірити, що цінних змін немає. Той самий принцип переноситься на LLM-чат. Якщо перша відповідь повела не туди, варто почати новий контекст із кращим описом середовища, цілі й помилки. Після розв’язання корисно спитати: який початковий prompt одразу дав би достатньо контексту. Так невдалий шлях перетворюється на навчальний матеріал.

Як працює проєктний білдер, ізоляція залежностей і впровадження нових інструментів →

Python мануфактура · Сесії: AMA та PMP · 17:00–20:12

ORM trade-offs і вибір першого automation seam

ORM є компромісом: прискорює типову розробку, але може генерувати неефективні queries або приховувати N+1, зайві joins і transaction behavior. Повертатися до ручного SQL слід за профілем і вимірюванням, а не через загальну недовіру до abstraction. У бажаній архітектурі backend виконує бізнес-перетворення, а frontend переважно відображає готовий contract. Якщо значна logic усе ж живе на frontend, це підсилює цінність UI/component automation. Коли продукт створюється з нуля й UI ще немає, логічно почати з API. Для наявного продукту без automation перший seam вибирають за ризиком і вартістю ручної регресії, а не за універсальним правилом «завжди UI» або «завжди backend».

Автомтизація баз даних та що з тим робити та що знати →
Запитати в чаті про «strategy» →