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

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

Middle · 2–4 роки досвіду

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

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

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

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

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

1

Що належить до кожного шару піраміди тестів і що стається, коли форма перевертається?

Відповідь

Юніт-тести покривають логіку і йдуть мілісекунди, інтеграційні — стики між компонентами, e2e — кілька шляхів, які не мають ламатися ніколи. Коли форма перевертається на ріжок морозива, тобто здебільшого UI-тести, набір стає повільним, нестабільним і дорогим у підтримці, а команда починає ігнорувати червону збірку. Піраміда — твердження про швидкість зворотного звʼязку, а не про відсоток покриття.

2

Як клієнтська бібліотека спілкується з браузером?

Відповідь

Selenium шле HTTP-запити процесу драйвера, той перекладає їх у власний протокол автоматизації браузера — одне коло на команду, тому балакучі тести повільні. Playwright тримає одне WebSocket-зʼєднання і говорить протоколом DevTools напряму, тому вміє чекати автоматично й перехоплювати мережевий трафік. Ця архітектурна різниця пояснює більшість практичних.

3

Як запускати тести паралельно, щоб вони не заважали одне одному?

Відповідь

Кожному тесту потрібні свої дані і свій контекст браузера. Звичний винуватець — спільні фікстури, створені один раз на набір: два тести змінюють одного користувача і падають лише при збігу в часі. Лікується створенням даних на тест з унікальним ключем і прибиранням після, плюс свіжим контекстом на воркер, щоб куки і сховище не протікали.

4

Тест проходить локально і падає в CI. Назвіть імовірні причини за порядком.

Відповідь

Спершу час: CI повільніший, і гонка, непомітна локально, стає видимою. Далі оточення: інша версія браузера, відсутній шрифт, що змінює верстку, інший часовий пояс. Далі дані: локально лишився обʼєкт, якого в CI немає, або навпаки. Далі паралельність, якщо CI жене те, що ви запускали послідовно. У такому порядку причина знаходиться значно швидше, ніж читанням дифу.

5

Що ви мокаєте в автотесті, а що ні?

Відповідь

Мокають сторонні сервіси, якими не керують, надто платні, і все недетерміноване — час, випадковість. Не мокають власний бекенд у e2e-тесті, інакше фронт перевіряється проти вигадки. Корисна середина — перехоплення мережі: справжня система працює, а заглушається лише той виклик, який треба впустити на вимогу.

6

Як HashMap знаходить значення і чому важливий hashCode?

Відповідь

Хешує ключ, щоб обрати кошик, далі порівнює через equals усередині нього. Якщо hashCode поганий або константний, усе потрапляє в один кошик і пошук деградує з константного часу до лінійного перебору списку. Тому перевизначити equals без hashCode — помилка: рівні обʼєкти хешуються по-різному і зникають із мапи, куди ви їх щойно поклали.

7

Що таке контрактний тест і що він ловить із того, чого не ловить e2e?

Відповідь

Він перевіряє, що постачальник і споживач згодні щодо форми повідомлення, не запускаючи обох водночас. Ловить зміну, про яку ніхто не оголосив — перейменоване поле, розширений тип, необовʼязкове, що стало обовʼязковим — у момент внесення, а не в нічному прогоні. Цінність зростає з кількістю сервісів, тому одному моноліту він рідко потрібен.

🦎

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

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

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

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

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

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

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