P
prepair.app
Пройти інтерв'ю →
EnglishУкраїнськаРусскийDeutsch
🤖

Junior QA AutomationПитання на співбесіді QA Automation

Junior · без досвіду / до 1 року

На співбесіді QA Automation перевіряють знання фреймворків, патернів автоматизації і — насамперед — уміння писати тести, які лишаються зеленими не випадково. Нижче — часті питання з еталонними відповідями. Junior: базова теорія, визначення та прості практичні кейси.

Спробувати — без реєстрації
Готуємо питання…

Теми для підготовки

Selenium WebDriver і Playwright
Page Object Model
Явні та неявні очікування
API-тестування
Інтеграція з CI/CD
Flaky-тести та їх усунення

7 питань рівня Junior з відповідями

1

Чим explicit wait відрізняється від implicit і що ламається при їх змішуванні?

Відповідь

Implicit wait — глобальне налаштування, що змушує кожен пошук елемента повторюватися до N секунд. Explicit чекає конкретної умови на конкретному елементі: клікабельний, видимий, присутній. Змішувати їх — класична помилка: таймаути складаються непередбачувано, і пошук, який мав швидко впасти, висить суму обох. Implicit ставлять у нуль і всюди використовують explicit.

2

Чому Thread.sleep вважається поганою практикою в тестах?

Відповідь

Бо він кодує здогад. Поспав три секунди — отже, або чекав зайвого на кожному прогоні, набираючи хвилини по всьому набору, або не дочекався повільного дня, і саме так тест стає нестабільним. Explicit wait опитує умову і продовжує в момент її виконання, тобто і швидше, і надійніше. Sleep виправданий, лише коли чекати справді нема чого спостережуваного.

3

CSS-селектор чи XPath — що обираєте і чому?

Відповідь

CSS швидший, читабельніший і покриває більшість випадків. XPath виправданий, коли треба піднятися до батька, вибрати за видимим текстом або скористатися віссю — того, що CSS виразити не може. Важливіша за сам вибір стійкість: селектор за data-testid переживе редизайн, а скопійований із devtools із шістьма вкладеними div — ні.

4

Що таке Page Object Model і яку проблему він розвʼязує?

Відповідь

Він збирає локатори й дії одного екрана в клас, щоб тест казав login.submit(admin), а не перелічував пошуки елементів. Розвʼязує дублювання: при зміні кнопки правиться один файл замість сорока тестів. Типова помилка — класти перевірки всередину page object: сторінка описує екран, а вирішує, що правильно, тест.

5

Чим інтерфейс відрізняється від абстрактного класу?

Відповідь

Абстрактний клас може зберігати стан і конструктор та описує, чим обʼєкт є; успадкуватися можна лише від одного. Інтерфейс описує, що обʼєкт уміє, і реалізувати їх можна багато. У тестовому фреймворку це видно одразу: базова сторінка зі спільним полем драйвера — абстрактний клас, а щось на кшталт Searchable, підтримуване кількома сторінками, — інтерфейс.

6

Чому тести бувають нестабільними?

Відповідь

Майже завжди час або спільний стан. Час — це перевірка до того, як застосунок закінчив: анімація, асинхронний запит, перемальовування. Спільний стан — один тест лишає дані, від яких залежить інший, і це вилазить при зміні порядку чи паралельному запуску. Третя і рідше обговорювана причина — оточення: повільна машина CI перетворює непомітну локально гонку на щоденне падіння.

7

Що таке StaleElementReferenceException і як його уникнути?

Відповідь

Означає, що ви тримаєте посилання на елемент, який сторінка відтоді перемалювала — обʼєкт вказує на вузол, якого в DOM більше немає. Найчастіше зʼявляється після оновлення, що перемальовує список чи таблицю. Уникається повторним пошуком замість зберігання посилання — саме те, що за будовою роблять локатори Playwright і не робить поле PageFactory у Selenium.

🦎

Прочитати відповіді недостатньо

На співбесіді ти говориш вголос під тиском. Кем поставить ті самі питання, оцінить кожну відповідь і покаже, що саме підтягнути.

Пройти інтерв'ю Junior QA Automation →
Безкоштовно · 3 інтерв'ю на місяць

Інші рівні — QA Automation

Middle QA AutomationSenior QA AutomationУсі питання QA Automation

Інші спеціалізації

🔍Junior QA ManualJunior Java Backend🐍Junior Python Backend🐘Junior PHP Backend🦫Junior Go Backend🟢Junior Node.js Backend💎Junior Ruby on Rails🟣Junior .NET Backend Developer🔷Junior C++🟨Junior JavaScript