Співбесіда з QA. 250+ запитань для Junior, Middle, Senior
Цю добірку питань, що ставлять кандидатам різних рівнів на технічних співбесідах на позицію QA, склали спільними зусиллями практики. Список — лише орієнтир. Кандидатам радимо пробігтись питаннями та відзначити невідомі слова, погуглити й заодно підвищити шанси пройти співбесіду.
Інтерв’юерам — поповнити свій запас цікавих питань. Але не переборщіть :)
Якщо ви не тестувальник, а просто проходили повз — краще знайдіть релевантну добірку питань.
Junior
Теорія тестування
1.Що таке тестування?
2.Навіщо тестувати ПЗ?
3.Які є етапи тестування?
4.Які типи тестування можете назвати?
5.Які рівні тестування знаєте?
6.Які техніки тест-дизайну знаєте?
7.Що таке техніка аналізу класів еквівалентності?
8.Що таке техніка аналізу граничних значень? У чому цінність цієї техніки?
9.Що таке Regression і Confirmation тестування, яка між ними різниця?
10.Як часто варто проводити регресійне тестування продукту?
11.Які бувають види інтеграційного тестування?
12.Що таке Configuration testing?
13.Що таке Exploratory testing?
14.Які існують UI-стандарти?
15.Що таке Black/Grey/White Box Testing?
16.Що таке Performance Testing?
17.Що таке Smoke та Sanity тестування і яка між ними різниця?
18.Що таке Traceability Matrix?
19.Що таке Sanity Testing?
20.Що таке End-to-End тест?
21.Що таке тестування безпеки?
22.Що таке випробування на основі ризиків?
23.Що таке динамічне тестування?
24.Що таке «парадокс пестициду»?
25.Опишіть основні фази STLC? Дайте визначення Entry та Exit Criteria.
26.Що таке Bug, Error, Failure, Fault?
27.Які є атрибути баг-репорту? Які основні поля для заповнення?
28.Яка різниця між пріоритетом і серйозністю?
29.Наведіть приклади серйозного, але не пріоритетного багу.
30.У чому різниця між валідацією та верифікацією?
31.Навіщо потрібна тестова документація? Які її види?
32.Що таке тест-план? Які елементи він має?
33.Яку обов’язкову інформацію має містити тест-план? Як правильно його використовувати, підтримувати та чи взагалі він потрібний для більшості проєктів?
34.Яка різниця між чеклістом і тест-кейсами?
35.Наведіть приклад хорошого тест-кейсу.
AQA
Програмування
36.Що таке ООП? Назвіть його принципи з прикладами?
37.Що таке інтерфейс? Що таке абстрактний клас? Чим вони відрізняються?
38.Що таке SOLID? Наведіть приклади.
39.Що таке DRY, KISS, YAGNI?
40.Які патерни GOF вам відомі? Наведіть приклади їхнього використання.
41.Що таке PageObject і PageFactory?
42.Яка ієрархія Collections?
43.Яка різниця між Thread class та Runnable interface?
44.Яка різниця між String, Stringbuffer та Stringbuilder?
45.Різниця між final, finally і finalize?
Selenium
46.Що таке Selenium і для чого його використовують?
47.Що таке драйвер браузера?
48.Які види локаторів сторінки існують? Які їхні переваги й недоліки?
49.Що таке Selenium Waits? Які є і чим відрізняються?
50.Які exceptions може кинути Selenium? Що вони означають і як їх обробляти?
51.Для чого використовують JavaScriptExecutor? Наведіть приклади.
52.Що таке Selenium Grid?
53.Які існують способи click та send keys Selenium?
54.Як ви запускаєте паралельне виконання тестів? Що таке ThreadLocal?
55.Яка різниця між Action та Actions?
56.Як написати метод isElementPresent?
57.Як вичитати дані з динамічної вебтаблиці?
58.Чи можете ви назвати 10 інтерфейсів у Selenium?
59.Назвіть два способи, що дають змогу автоматизувати капчу.
60.Згадайте типи навігаційних команд Selenium.
61.Як знайти пошкоджені посилання в Selenium WebDriver?
62.Яку техніку варто розглянути, використовуючи весь сценарій, якщо «немає ні frame id, ні frame name»?
TestNG/JUnit
63.Для чого потрібні TestNG/JUnit?
64.Які анотації використовують у TestNG/JUnit?
65.Які assertions є в TestNG/JUnit?
66.Як виконувати тести паралельно в TestNG/JUnit?
Git
67.Для чого використовують системи контролю версій?
68.Що таке Git? Який принцип його роботи?
69.Що таке commits, branches у Git?
70.Для чого потрібні GitHub, GitLab та інші, що базуються на Git, вебхостинги проєктів?
CI
71.Що таке CI?
72.Як автоматичне тестування інтегрується в CI?
73.Як налаштувати Job чи Pipeline на знайомому вам
74.Які інструменти для генерації репорту після виконання автоматичних тестів ви знаєте?
75.Яку інформацію має містити звіт про виконання автоматичних тестів?
Web
76.Що таке клієнт-серверна архітектура?
77.Що може виступати у ролі клієнта?
78.Що таке REST API, SOAP? У чому різниця?
79.Які протоколи передачі даних знаєте?
80.Які методи взаємодії з API існують? У чому різниця між ними?
81.Як можна протестувати API, що там потрібно перевіряти?
82.Як розшифровується CRUD?
83.Чим відрізняється GET від POST?
84.Які відмінності між XML та JSON?
85.Які знаєте формати передачі даних?
86.Як відбувається шифрування?
87.Які бувають види баз даних?
88.Охарактеризуйте кожен клас status code (1хх; 2xx; 3xx; 4xx; 5xx).
89.Які є HTTP-методи?
90.Які знаєте Web elements?
91.Які браузери знаєте? У чому їхня відмінність?
92.Для чого необхідні інструменти розробника в браузері (Chrome DevTools) і як вони допомагають у тестуванні.
93.Що таке кеш?
94.Що таке сесія?
95.Навіщо потрібні cookies?
96.Що таке фрейм?
97.Що таке HTML/CSS/JavaScript?
98.Яка структуру має вебсторінка?
99.Навіщо чистити кеш?
100.Які види тестування можна застосувати лише до Web?
101.Для чого у вебсторінках використовують JavaScript?
102.Що таке REST?
103.Що таке AJAX?
Mobile
104.Які існують мобільні платформи?
105.Які версії Android та iOS зараз використовуються на ринку (мінімальні та максимальні)?
106.Які версії Android треба тестувати, якщо замовник сказав підтримувати з версії 5.0?
107.Назвіть типи мобільних програм.
108.Який формат файлів збірок програм для Android та iOS?
109.Що таке ADB?
110.Як зняти логи з пристрою AOS/IOS?
111.Що потрібно перевіряти під час використання сканера відбитка/Face ID?
112.Як я можу запускати тести Android без Appium?
113.Поясніть концепцію дизайну Appium.
Практичні завдання
114.Написати чекліст для функціонала кошика в інтернет-магазині.
115.Написати тестові набори даних для поля введення дати, яке відсіює користувачів віком до 18 років.
116.Написати чекліст тестування форми введення даних платіжної картки.
117.Протестувати «предмет» щодо різних видів тестування. (Предмет — ліфт, олівець, калькулятор тощо.)
118.Є Input поле, яке приймає цілі значення від 18 до 99 включно. Потрібно протестувати за допомогою техніки тест-дизайну Boundary Values Analysis і Equivalence Partitioning.
119.Є вебсторінка з полями: e-mail, password та кнопкою submit. Необхідно навести приклади негативних тест-кейсів, якими можна перевірити цю сторінку.
120.Навести приклади тест-кейсів для функціонала, який є на декількох сторінках проєкту (наприклад, поле пошуку).
121.Як протестувати процес оплати в інтернет-магазині?
122.Як протестувати зламаний тостер?
123.Поясніть для
124.Визначте необхідну кількість функціональних тест-кейсів, щоб перевірити Log in форму.
125.Є форма реєстрації в вебзастосунку з полями (first name, last name, username, password, repeat password) та кнопкою Register. Які перевірки треба провести?
126.Поле username має бути обов’язковим, але воно не є обов’язковим. Наведіть приклад баг-репорту, створеного на цю помилку.
127.Як би ви провели smoke-testing для застосунку типу Telegram?
128.Як буде виглядати баг-репорт, якщо, наприклад, не працює електричний чайник?
129.Є таблиця books з полями: name, price, page_count. Потрібно вибрати всі імена книг, у яких price понад 10 одиниць і кількість сторінок від 20 до 100.
130.У вас є функціонал калькулятора, який доступний через веббраузер за посиланням. Він має тільки функцію ділити, так би мовити, MVP-версію. Діапазони для вписування в чисельник і дільник від 0,1 до 99,9. Виведення значення відбувається автоматично, тому що front-end реалізований на React JS. Як ви тестуватимете цей функціонал? Які види тестування застосуєте? Які техніки тест-дизайну використаєте?
131.Завдання на роботу з SQL.
- Витягнути номер телефону та адресу користувача Muzik.
- Витягнути дані про користувачів, які мають суму замовлення понад 2000 грн.
- Підрахувати кількість замовлень у таблиці та загальну суму зроблених замовлень.
132.Ваша компанія розробляє програмне забезпечення для медичних систем, і ви тестуєте компонент, який керує дефібрилятором серця. Ви помітили, що одне рішення в тестовому модулі складається з 34 незалежних атомарних умов. Який метод тестування білого ящика слід вибрати для цього сценарію і чому?
133.Оздоровча програма для співробітників поєднана з оплатою медичного страхування і має такі правила:
- Співробітники, які споживають 17 одиниць або менше алкоголю на тиждень, отримують $28 знижки на оплату.
- Для співробітників, які заповнять «Оцінку ризику для здоров’я» оплата зменшується на $23.
- Співробітники, які беруть участь у щорічному контролі за станом здоров’я в компанії: отримають знижку на $50 за те, що мають індекс маси тіла (ІМТ) 25,5 або менше, і $19 знижки при ІМТ нижче 30. Некурці отримують додаткову знижку на $46. Курці, які приєдналися до курсу відмови від куріння, отримують знижку в $24. Курці, які не приєдналися до курсу відмови від куріння, оплачують додатково $75.
Використовуючи техніку класів еквівалентності, скільки тестів потрібно написати, щоб покрити вищезгадані умови на 100%?
134.Яка мінімальна кількість тестів необхідна для покриття таких умов автоцивілки:
- Особи до 18 років не страхуються.
- Для чоловіків на червоному авто додається +15% до вартості поліса.
- Для жінок від 18 до 64 років страхова премія 1000 грн.
- Для чоловіків від 18 до 64 років страхова премія 1200 грн.
- Для осіб від 64 років страхова премія 1800 грн.
141.Напишіть сценарії автоматичного тестування для сортування за ціною і додавання товару у кошик на сайті. До ваших тестів додайте документацію з налаштуваннями та розмістіть ваше рішення на GitHub.
Middle
Теорія
1.Назвіть обов’язки QA?
2.Що знаєте про тестування навантаження? У якому випадку треба проводити таке тестування? На якому етапі готовності продукту?
3.Що таке таблиця рішень/decision table та як її можна використовувати?
4.Що може бути критеріями запуску та завершення тестування?
5.Розкажіть про варіанти інтегрування тестової документації у проєкт, інструменти для роботи з нею.
6.Як організувати наскрізне тестування (e2e)?
7.Які тест-кейси можна скласти для тестування баз даних?
8.Наведіть приклади підходів для тестування локалізації.
9.Що таке A/B-тестування?
10.Що таке mock/stub? Які знаєте інструменти для роботи з ними?
11.Коли потрібно використовувати техніку Pairwise?
12.Що таке fuzz-тестування та де його застосовують?
13.Що таке REgexp?
14.Як змінюється вартість дефекту під час тестування програмного забезпечення?
15.Які є шляхи аналізу бізнесу клієнта? Як визначити доцільність того чи іншого функціоналу?
16.Назвіть послідовність виконання CI/CD процесу на проєкті.
17.Яке має бути відсоткове співвідношення між позитивним та негативним тестуванням на проєкті?
18.Який вид тестування доцільніше проводити до релізу?
19.Чи є якась різниця між bug leakage та bug release?
20.Чи може бути ситуація, коли критерії завершення (exit criteria) не виконані? Що має відбуватися у цьому випадку?
21.Що ми справді повинні покривати тест-кейсами, а що вважається надлишковими витратами часу і грошей? Коли недоцільно писати тест-кейси?
22.Для якого функціоналу найважче написати тест-кейси?
23.Як порахувати Cyclomatic complexity?
24.У чому основна різниця між defect detection percentage та defect removal efficiency?
25.Які моделі risk-based testing ви знаєте?
26.Що таке тестування API? Якими інструментами користуються для його виконання?
27.Що таке performance testing? Якими інструментами користуються для його виконання?
28.Що таке load і stress testing? Якими інструментами користуються для їх виконання?
29.Що таке contract testing?
30.Яка різниця між Scrum і Kanban?
31.Розкажіть про ритуали, цінності та ролі у Scrum.
32.Як вибір методології може вплинути на якість розробки?
33.Нульовий спринт у Scrum. Для тестування є завдання під назвою «Налаштування середовища». Що тут треба виконувати?
AQA
Selenium
34.Розкажіть, як ви будете будувати та впроваджувати стратегію з автоматизації тестування.
35.Як взаємодіють клієнтська бібліотека Selenium, драйвер браузера і сам браузер?
36.Для чого використовують browser capabilities, arguments та options?
37.Що таке iframe і як з ним працювати в Selenium?
38.Як обробляти браузерні повідомлення (alerts)?
39.Що таке Appium?
40.Що таке Electron-based applications? Як використовувати Selenium i Appium для їхнього тестування?
41.Як взаємодіяти із запитами, що відправляються з браузера.
42.Як взаємодіяти з cookies, LocalStorage і SessionStorage?
Тестова інфраструктура
43.Що таке і чим відрізняються віртуальна машина, симулятор і емулятор?
44.Що таке контейнер і чим він відрізняється від віртуальної машини?
45.Як використовують віртуальні машини та контейнери в автоматизації?
46.Що таке IaaS і PaaS? Наведіть приклади.
47.Що таке Configuration management?
48.Що таке Provisioning?
49.Які команди Linux Shell вам відомі? Як за допомогою команд Linux Shell знайти лог-файл і рядок з помилкою у файлі?
50.Які команди Windows CMD вам відомі? Як за допомогою команд Windows CMD знайти IP-адресу машини?
51.Що таке SSH і як ним користуватися?
52.Що таке bash і batch скрипти? Для чого їх використовують?
Web
53.Яка різниця між авторизацією та автентифікацією?
54.Як відбувається авторизація на сервері?
55.Які статус-коди помилок бувають? Чи може сервер надіслати код 400, якщо проблема на його стороні?
56.Як виконати Debug сторінки у браузері?
57.Як потестувати адаптивну верстку?
58.Що таке WebSocket і як перевірити обрив з’єднання?
59.Які є основні види вразливості вебзастосунків?
60.Які інструменти для тестування Web performance client-side знаєте?
61.Яка різниця між методами GET та POST?
62.Яка різниця між методами PUT та PATCH?
63.Які знаєте сніфери?
64.Яка різниця між DROP та TRUNCATE?
65.Що таке case function?
66.Що таке collation?
67.Що таке схема GraphQL?
68.Поясніть різницю між OLTP та OLAP.
69.Згадайте різні типи реплікації в SQL Server?
70.Що ви розумієте під Self Join? Наведіть приклади.
71.Що таке cursor і я ним користуватися?
Mobile
72.Що основне треба перевірити під час тестування мобільного застосунку?
73.Що таке Manifest.xml в .apk файлі та які дані там вказують?
74.Що таке режим розробника Do not keep activities?
75.Як відбувається перехоплення трафіку http/https для мобільних пристроїв?
76.В якому вигляді зберігаються дані в мобільних застосунках локально?
77.Як тестувати міграцію локальних даних?
78.Які основні компоненти Android-застосунків (активіті/фрагмент/сервіс/інтент-фільтр)?
79.Опишіть життєвий цикл активіті.
80.Що таке витоки пам’яті? Як знайти?
81.Як протестувати білд на Android?
82.Що таке Testflight? Як тестувати за його допомогою?
83.Як працює Android? Яка у нього архітектура?
84.Як відбувається деплой програм IOS/AOS?
Практичні завдання
85.Що робити, якщо розробник не погоджується, що заведений баг є справді багом? А якщо у вимогах використано неоднозначне формулювання? А якщо бізнес-аналітик, PM та представник клієнта зараз недоступні, щоб підказати? Як можна запобігти такій ситуації?
86.Склалася ситуація, коли команда тестування не встигає закінчити свою роботу до дедлайну. Як правильно діяти у цьому випадку? А якщо реліз пересунути не можна? А якщо ніякі фічі з релізу забрати не можна?
87.Що робити, якщо проєкт вже розпочався, а QA-інженер там почав працювати лише коли почали розроблятися бізнес-фічі? Які етапи тестування тепер треба надолужити і чи потрібно це? Як це зробити максимально грамотно без шкоди для завантаження з тестування нових фіч? Які ризики має пізнє залучення QA-інженера в розробку?
88.Вебсторінка з полями e-mail, password та кнопкою submit. Назвіть негативні тест-кейси, якими можна перевірити цю сторінку.
89.Припустимо, що після натискання кнопки submit сторінка перезавантажується та введені раніше дані зникають. Як перевірити, що інформацію відправлено до бази даних?
90.Як перевірити, що дані відправились на сервер, якщо у нас немає доступу до бекенду?
91.Наведіть приклади покращень для наведеної вебсторінки (будь-яка на вибір).
92.Скласти Smoke Test Suite для DOU.ua.
93.Протестувати функціонал банкомату за допомогою техніки State Transition Diagram.
95.Написати граничні значення для вводу у форму оплати товару на сайті.
96.Є метод POST, який реєструє нового користувача на сайті, є тіло запиту, яке містить дані про пошту, телефон, ім’я користувача та адресу проживання. Які кейси для перевірки можете навести?
97.На що варто акцентувати при автоматизації методів API? Що варто перевіряти?
98.Ви тестуєте логін-форму, вводите логін і пароль, натискаєте кнопку логін і нічого не відбувається. Ваші дії?
99.Протягом 5 хвилин знайдіть та опишіть дефекти, які ви бачите:
100.Вам потрібно зробити Regression Testing за два дні. Як ви це зробите, якщо Regression Run охоплює 1000 тест-кейсів?
101.Ви тестуєте інтернет-магазин, який продає олівці. У замовленні треба вказати кількість олівців (максимум для замовлення — 1000 штук). Залежно від замовленої кількості олівців різниться ціна:
З кожною новою сотнею, ціна зменшується на 1 гривню. Завдання: використовуючи тест-дизайн, опишіть всі необхідні тест-кейси, які будуть максимально покривати описану функціональність.
102.Є застосунок типу месенджера, користувач заходить у чат і відсилає файл (бачить повідомлення Failed to send ...) Коли це може бути баг, а коли ні?
103.Є вебзастосунок інтернет-магазину (реєстрація, логін, пошук товарів, кошик та покупки). Програму підтримують такі браузери: Chrome, Safari, Edge. Ми маємо обмежений час на тестування. Розкажіть, як ви будете тестувати програму?
104.Напишіть автоматичні тестові сценарії для перевірки API операцій створення і перегляду GitHub Gists. Інтегруйте ваш проєкт з відомою вам
Senior
Теорія
1.Як ви подолаєте труднощі через відсутність належної документації для тестування?
2.Який найкращий підхід для старту QA в проєкті?
3.Які перешкоди можуть виникнути у забезпеченні якості для Agile Tester?
4.Що таке Definition of Done?
5.Коли можна вважати, що тестування закінчене?
6.Що таке RCA в тестуванні? Чи потрібно його проводити?
7.Який підхід використовуєте для Test Cases Review?
8.Які існують види ризиків? Що таке Mitigation plan?
9.На основі чого треба складати стратегію для проведення тестування навантаження?
10.Як часто варто рев’ювити тестову документацію?
11.Як можна швидко зробити вибірку необхідних перевірок для смоук-тестування?
12.Як запланувати завантаженість команди тестувальників?
13.Яку цінність несе аналіз результатів тестування команді та проєкту загалом?
14.Як можна підкорегувати флоу розробки, щоб отримувати більш чисті результати на виході та зменшити кількість багів на проді?
15.Розкажіть про метрики якості, які застосовували. Навіщо вони потрібні?
16.Як провести естімейт завдання? Які є техніки оцінювання обсягу тестування?
17.Як можна порахувати покриттям тестами функціоналу?
18.Яка оптимальна кількість кроків у тестовому сценарії?
19.Як уникнути появи регресивних дефектів?
20.Що таке тестування зі зсувом вліво (Shift left testing)?
21.Як тестуватимете програму, якщо для продукту немає документації?
22.У чому сенс юніт-тестів?
23.Які мінуси повної автоматизації тестування?
24.Що таке ROI і як його рахувати?
25.Що таке CI/CD? Які є плюси та мінуси цього підходу?
26.TOP OWASP: які знаєте уразливості та методи захисту?
27.Що ви думаєте щодо BDD? Коли варто використовувати, а в яких буде тільки гірше? Якщо все ж вартує використовувати, то для UI чи API автоматизованого тестування?
28.Що таке сокети і як їх тестувати, вручну й автоматизовано? Для чого їх використовують?
29.Коли варто робити стрес-тестування на проєктах? Від чого відштовхуватись, коли будуєте сценарій для такого тестування? Що врахувати під час вибору інструменту?
30.Розкажіть про алгоритми шифрування трафіку.
31.Що таке NIC?
32.Для чого потрібен протокол RTP?
33.Що, на вашу думку, краще — SIP чи PRI?
34.Що таке NAT?
Практичні завдання
30.Сформулюйте негативні сценарії для POST-запиту, що створює нового користувача.
31.Як ви врегульовуєте конфліктні ситуації між QA та розробниками?
32.Є проєкт, на якому немає тестової документації, але проєкту вже рік. Мануальним QA бракує часу на тестування, вони дуже втомлені, є бажання звільнитися. Яке рішення щодо команди можна ухвалити?
33.Продайте мені тестування як клієнту, який не хоче його купувати. Коротко і структуровано опишіть вашу роботу на кожному з етапів розробки ПЗ, використовуючи професійні терміни (не лити воду).
34.У вас є онлайн-калькулятор. Ви вводите 1+1, а в результаті отримуєте 3. Розкажіть, як ви будете шукати причину проблеми.
35.Чи можуть бути такі види архітектур? Що може не вистачає для правильної роботи архітектур, наведених нижче?
Приклад 1
Приклад 2
Приклад 3
Приклад 4
Запитання при виконанні цього завдання:
- Які запити виконуються за формою авторизації?
- Який запит виконується, коли ми зберігаємо дані в базі даних?
- Чи можна авторизуватись за допомогою GET-запиту і чи нормально так робити?
- Який код відповіді ми отримуємо при падінні помилки на сервері, код при помилкових credentials на формі авторизації?
- Чи можна замінити SSL-сертифікат шифруванням даних у пакеті від клієнта до сервера для протоколу HTTP, чи це буде рівноцінною заміною?
36.Є вебсторінка з полями e-mail, password та кнопкою submit. Припустимо, що після натискання кнопки submit сторінка перезавантажується та введені раніше дані зникають. Як перевірити, що дані відправлені до бази даних?
37.Яка мінімальна кількість тест-кейсів необхідна, щоб переконатись у коректній роботі цієї вебсторінки?
38.Як перевірити безпеку на вебсторінці (на вибір)?
Дякуємо за питання та рецензію Роману Поботіну, Андрію Заблоцькому, Віктору Максименку, Мар’яні Батюк, Ірині Литвин, Сергію Могилевському, Святославу Логіну, Роману Марінському, Олегу Заревичу, Олесі Паславській, Тарасу Лірку, Максиму Богуну, Вадиму Гуличу, Віталію Кашубі, Юрію Суравському, Світлані Франковій, Володимиру Арутіну, Станіславу Жупінасу, Людмилі Федчук, Іванні Черусі, Юлії Левченко, Владиславу Куліченку, Юрію Бояру.