Запитання на співбесідах на позицію QA Manual Engineer

Запитання на співбесідах на позицію QA Manual Engineer

  • 29 листопада, 2022
  • читати 15 хв
Ігор Осика
Ігор Осика Випускник курсу QA Manual, QA Manual Engineer у Ajax Systems

Випускник нашого курсу QA Manual Ігор Осика зібрав питання на співбесідах QA Trainee та Junior.

Ще готуватися до співбесід можна за нашим довідником ITWiki, у ньому є всі найважливіші тези про тестування, його методи, інструменти та документацію.

Довідник для тестувальників

Загальні питання

1. Що таке тестування?

Процес пошуку невідповідностей між очікуваним та фактичним результатом.

Рекомендуємо публікацію по темі

2. Які бувають принципи тестування?

  • Тестування демонструє наявність дефектів, а не їх відсутність
  • Вичерпне тестування недосяжно
  • Раннє тестування зберігає час та гроші
  • Кластеризація дефектів
  • Парадокс пестициду
  • Тестування залежить від контексту
  • Помилка про відсутність помилок

3. Яка мета тестування?

Мета тестування — перевірка відповідності ПЗ вимогам, забезпечення впевненості в якості ПЗ, пошук очевидних помилок у програмному забезпеченні, які повинні бути виявлені до того, як їх виявлять користувачі програми.

4. Навіщо потрібна автоматизація тестування і коли її потрібно застосовувати?

  • Ручне тестування всіх робочих процесів, полів та негативних сценаріїв вимагає більше часу та грошей (за певних умов)
  • Важко тестувати багатомовні сайти вручну
  • Не вимагає втручання людини
  • Збільшує швидкість виконання тестів
  • Допомагає збільшити охоплення тестуванням
  • Підвищення ефективності тестування
  • Збільшення частотності тестування
  • Скорочення терміну виконання тесту

5. Як зрозуміти, що тестування закінчено?

Тестування може бути завершено, коли:

  • Усі тести пройдено, вони покривають 100% вимог
  • Дефекти встановлені
  • Усі дефекти, що стосуються класу Show Stopper або Blocker, а також критичні дефекти, усунуті

6. Якість програмного забезпечення (Software Quality)?

Якість програмного забезпечення (Software quality) — це те, наскільки програмне забезпечення задовольняє вимогам, що висуваються до нього. Вимоги можуть залежати від багатьох критеріїв, що визначаються виходячи зі сфери застосування програмного продукту.

7. Що таке Bug, Error, Failure, Fault?

Error — дії людини, які призвели до неправильного результату.

Failure — збій у роботі програми, її компоненті чи системі.

Bug — помилка у продукті, яку виявили під час тестування. Вона тягне за собою некоректне функціонування продукту.

Fault — причина, через яку виникають дефекти у ПЗ.

Defect — недолік компонента чи системи.

8. Що таке вимоги?

Вимоги — це вихідні дані, на підставі яких проєктуються та створюються автоматизовані інформаційні системи.

9. Що таке життєвий цикл багу?

Життєвий цикл багу — це стадії, які проходить помилка з початку свого існування і до повного вирішення.

10. Що таке життєвий цикл розробки програмного забезпечення (SDLC)? Які його етапи?

SDLC (життєвий цикл розробки програмного забезпечення) визначає всі стандартні фази, які беруть участь у процесі розробки програмного забезпечення. Життєвий цикл SDLC — це процес поетапної розробки програмного забезпечення.

Етапи SDLC:

  • Ідея
  • Розробка та збирання вимог
  • Дизайн
  • Програмування
  • Тестування
  • Введення в експлуатацію
  • Підтримка
  • Виведення з експлуатації

11. Що таке життєвий цикл тестування програмного забезпечення (STLC)? Які його етапи?

Життєвий цикл тестування програмного забезпечення (STLC) — це процес тестування, який виконується добре спланованим чином. У процесі STLC виконуються різні дії для покращення якості продукту. Однак етапи STLC мають справу лише з тестуванням та виявленням помилок, але не з самою розробкою.

Етапи SТLC:

  • Аналіз вимог
  • Фаза планування
  • Розробка тест-кейсів
  • Налаштування тестового середовища
  • Фаза реалізації
  • Закриття циклу випробувань STLC

12. Що таке верифікація?

Це статична практика перевірки документів, дизайну, архітектури, коду тощо.

Верифікація відповідає на питання «Чи робимо ми продукт правильно?». Верифікація відбувається до валідації.

Види та типи тестування

1. Які бувають види тестування?

  • Функціональне тестування
  • Нефункціональне тестування
  • Тестування, пов'язане із змінами

2. Які рівні тестування?

  • (Unit Testing) Модульне тестування
  • (Integration Testing) Інтеграційне тестування
  • (System Testing) Системне тестування
  • (Acceptance Testing) Приймальне тестування

3. Пов'язані зі змінами види тестування:

  • Smoke Testing
  • Regression Testing
  • System testing
  • Re-test

4. Функціональне тестування

Направлене на тестування всіх функцій системи, щоб підтвердити, що кожна функція програми працює відповідно до документації.

5. Нефункціональне тестування

Описує тести, необхідні для визначення характеристики програмного забезпечення. Нефункціональне тестування, як і функціональне, може бути виконане всіх рівнях.

  • Навантажувальне тестування (Performance and Load Testing)
  • Стресове тестування (Stress Testing)
  • Тестування стабільності чи надійності (Stability / Reliability Testing)
  • Об'ємне тестування (Volume Testing)
  • Тестування установки (Installation Testing)
  • Тестування зручності користування (Usability Testing)
  • Тестування на відмову та відновлення (Failover and Recovery Testing)
  • Конфігураційне тестування (Configuration Testing)
  • Тестування безпеки (Security and Access Control Testing)

6. Динамічне тестування

Це такий тип тестування, який передбачає запуск програмного коду. Таким чином аналізується поведінка програми під час її роботи.

7. Статичне тестування

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

8. Позитивне тестування

Тестування, у якому беруться валідні вихідні дані.

9. Негативне тестування

Тестування, за якого беруться невалідні вихідні дані

10. Тестування інтерфейсу користувача (GUI Testing)

Це перевірка відповідності додатку вимогам до графічного інтерфейсу, наскільки професійно він виглядає, чи виконаний він у єдиному стилі, чи на тому місці знаходяться ті кнопки, які є на мокапі, який надав нам дизайнер.

11. Тестування безпеки (Security and Access Control Testing)

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

12. Тестування end-to-end (наскрізне)

Наскрізне тестування (end-to-end, E2E, Chain Testing) — це вид тестування, який використовується для перевірки програмного забезпечення від початку до кінця, а також його інтеграцію із зовнішніми інтерфейсами.

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

13. Стресове тестування (Stress Testing)

Тестування працездатності програми при навантаженнях, що перевищують користувацькі у кілька разів.

При стрес-тестуванні ми можемо отримати реальні дані меж продуктивності та поведінку програми за цими кордонами.

14. Load Testing

Load Testing — тестування часу відгуку програми на запити різних типів з метою переконатися, що програма працює відповідно до вимог при звичайному навантаженні.

15. Scalability Testing

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

16. Spike Testing

Spike Testing фокусується на здатності системи відновлюватися після раптових сплесків навантаження та повертається у стійкий стан.

17. Endurance Testing

Завданням цього тестування є перевірка працездатність ПЗ при тривалому середньому навантаженні.

18. Об'ємне тестування (Volume Testing)

Задачею об'ємного тестування є отримання оцінки продуктивності при збільшенні обсягів даних у базі даних додатка.

19. Тестування стабільності чи надійності (Stability / Reliability Testing)

Один із видів нефункціонального тестування ПЗ, метою якого є перевірка працездатності програми при тривалому тестуванні з очікуваним рівнем навантаження.

20. Тестування установки (Installation Testing)

Спрямоване на перевірку успішної інсталяції та налаштування, а також оновлення або видалення програмного забезпечення.

21. Тестування на відмову та відновлення (Failover and Recovery Testing)

До таких властивостей можна віднести, наприклад, надійність та реакцію системи на непередбачені ситуації. Це дослідження програмних систем щодо відновлення після помилок і збоїв.

22. Smoke Testing

Димове тестування розглядається як короткий цикл тестів, що виконується для підтвердження того, що після складання коду (нового або виправленого) додаток, що встановлюється, стартує і виконує основні функції.

23. Sanity тестування

Sanity Testing —- це вузькоспрямоване тестування, достатнє для доказу того, що конкретна функція працює відповідно до заявлених у специфікації вимог. Використовується для визначення працездатності певної частини програми після змін вироблених у ній чи навколишньому середовищі.

24. Re-test

Confirmation / Re-testing (повторне тестування) — перевірка правильності виправлення дефекту.

25. Regression Testing

Regression Testing — це вид тестування, спрямований на перевірку змін, зроблених у додатку або навколишньому середовищі (починання дефекту, злиття коду, міграція на іншу операційну систему, базу даних, веб-сервер або сервер додатка) для підтвердження того факту, що функціональність працює як і раніше.

26. Що таке Unit Testing

Unit Testing дозволяє протестувати окремі компоненти вихідного програмного коду.

Рекомендуємо публікацію по темі

27. System Testing

System Testing — процес тестування системи в цілому з метою перевірки того, що вона відповідає встановленим вимогам. Тестування може ґрунтуватися на ризиках, вимогах до системи чи операційної системи.

System Testing має бути спрямоване як на функціональні, так і на нефункціональні вимоги системи. Тобто можуть виконуватися як функціональні, так і нефункціональні види тестування.

Мета системного тесту полягає в тому, щоб перевірити, чи працює вся система в цілому, чи відповідає вона зазначеним функціональним та нефункціональним вимогам.

28. Integration Testing

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

29. Приймальний тест (Acceptance Testing)

Це вид тестування, що проводиться на етапі здачі готового продукту, або якоїсь його готової частини замовнику. Метою приймального тестування є визначення готовності продукту і досягається шляхом проходу тестових сценаріїв, випадків, які побудовані на основі вимог до нашого продукту.

Acceptance Testing — формальне тестування стосовно потреб, вимог та бізнес-процесів користувача, що проводиться з метою визначення відповідності системи критеріям приймання та надання можливості користувачеві, замовнику чи іншим авторизованим особам визначити, приймати систему чи ні.

30. Тестування локалізації

Це процес забезпечення адаптованості програмного забезпечення до різних культур та мов по всьому світу без будь-яких модифікацій вихідного коду.

31. Альфа-тестування

Alpha Testing виконується на боці організації, що розробляє продукт, але не командою розробників, а потенційними або існуючими клієнтами та/або незалежною командою тестування.

Альфа-тестування часто використовується для готового програмного забезпечення як форма внутрішнього приймального тестування.

32. Бета-тестування

Beta Testing виконується покупцями чи потенційними замовниками з їхньої власних потужностях. Бета-тестування може відбуватися після альфа-тестування або може відбуватися без попереднього альфа-тестування.

33. Тестування зручності користування (Usability Testing)

Тестування для визначення ступеня, в якому продукт зрозумілий, простий у освоєнні, простий в експлуатації та привабливий для користувачів за певних умов.

34. Compatibility Testing

Compatibility Testing — перевірка сумісності з існуючими системами, імпорт/експорт даних тощо.

35. Конфігураційне тестування (Configuration Testing)

Спеціальний вид тестування, спрямований на перевірку роботи програмного забезпечення при різних конфігураціях системи (заявлених платформах, драйверах, що підтримуються, при різних конфігураціях комп'ютерів і т.д.)

36. Black Box

Black Box тестування, як функціональне, і нефункціональне, передбачає знання внутрішнього пристрою компонента чи системи.

37. White Box (Glass Box)

Метод тестування програмного забезпечення, який передбачає, що внутрішня структура/пристрій/реалізація системи відомі тестувальнику, є доступ до коду.

38. Grey Box

Метод тестування програмного забезпечення з частковим знанням внутрішньої структури передбачає комбінацію White Box і Black Box підходів.

39. Maintenance Testing

Після випуску продукт використовується роками чи навіть десятиліттями. Протягом цього часу система та її середовище часто змінюється чи розширюється. Тестування, що виконується на цьому етапі життєвого циклу, називається maintenance.

40. Exploratory Testing

Одночасно є і технікою, і видом тестування. Таке тестування передбачає одночасно вивчення проєкту, функціоналу, проєктування тест-кейсів в розумі і відразу ж їх виконання, не записуючи і не створюючи тестову документацію.

Рекомендуємо публікацію по темі

Тестова документація

1. Навіщо потрібна тестова документація? Які її види?

Тестова документація — це набір документів, що створюються перед початком процесу тестування і безпосередньо в процесі. Ці документи описують покриття тестами і виконання тестів, у яких вказуються необхідні для тестування речі, наводиться основна термінологія тощо.

Тестова документація включає тест-план, тестову стратегію, чек-лист, тестовий сценарій, тестовий комплект, звіт про тестування, Traceability Matrix, а також Test Policy, звіт про дефект.

2. Що таке тест план (Test Plan)?

Тест-план — це документ, який описує всі роботи, які виконуватиме команда тестування на проєкті. Він містить ризики, перелік необхідних ресурсів, порядок, опис різних процесів тестування.

3. Які основні пункти тест-плану?

Елементи тест-плану:

  • Назва тест-плану, ім'я автора та номер версії
  • Зміст з розділами тест-плану
  • Вступ, в якому ми наводимо інформацію про сутність та історію тестованого проєкту
  • Документація з вимогами до ПЗ
  • Фічі, які тестуватимуться, перераховуємо і, якщо потрібно, коментуємо. Кожній фічі призначається пріоритет
  • Фічі, які НЕ тестуватимуться, перераховуємо і пояснюємо, чому НЕ тестуватимуться
  • Обсяг тестування
  • Тест-документація
  • Тест-тули
  • Критерій початку/завершення
  • Припущення
  • Залежності
  • «Залізо» та ПЗ
  • Умови призупинення/відновлення тестування
  • Відповідальні обличчя
  • Тренінг — тренінг, необхідний для цього проєкту
  • Розклад
  • Оцінка ризику
  • Інші положення
  • Твердження
  • Програми

4. Що таке тестовий сценарій (Test Case)?

Test Case — набір вхідних значень, передумов виконання, очікуваних результатів та постумов виконання, розроблений для певної мети або тестової умови, таких як виконання певного шляху програми або для перевірки відповідності певній вимогі.

5. Що таке чек-лист і як його оформляти?

Check List — це перелік, що містить низку необхідних перевірок під час тестування програмного продукту.

6. Що таке баг-репорт (Bug Report)?

Баг-репорт — це технічний документ, який описує ситуацію чи послідовність дій, що призвела до некоректної роботи об'єкта тестування.

7. Що таке Backlog?

Product Backlog — вимоги до продукту, побажання замовника щодо функціоналу та дизайну.

Основи мереж

1. Що таке Інтернет?

Всесвітня інформаційна комп'ютерна мережа, що пов'язує між собою як користувачів комп'ютерних мереж, так і користувачів індивідуальних комп'ютерів для обміну інформацією.

2. Що таке веб-додаток?

Веб-додаток — клієнт-серверна програма, в якій клієнт взаємодіє з веб-сервером за допомогою браузера.

3. Що таке веб-сервіс?

Це набір протоколів і стандартів з відкритим вихідним кодом, які використовуються для обміну даними між різними системами та програмами.

4. Що таке веб-сайт?

Це одна або кілька сторінок в Інтернеті. Сторінки одного сайту поєднує доменне ім'я, загальна тема та дизайн.

5. Що таке кеш?

Проміжний буфер із швидким доступом до нього, що містить інформацію, яка може бути запитана з найбільшою ймовірністю.

6. Навіщо чистити кеш?

Видалення цих даних допомагає усунути різні проблеми з сайтами (у тому числі із завантаженням та відображенням веб-сторінок).

7. Що таке сесія?

Сесія (session) — це деякий відрізок у часі, в межах якого веб-програма може визначати всі запити від одного клієнта. Коли клієнт вперше передає персональні дані у запиті, на сервері створюється нова сесія цього клієнта.

8. Навіщо потрібні cookies?

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

9. Що таке фрейм?

Окремий закінчений HTML-документ, який разом з іншими HTML-документами може відображатися у вікні браузера. Фрейми за своєю суттю дуже схожі на комірки таблиці, проте універсальніші

10. Що таке моделі OSI та TCP/IP?

Модель OSI — це концептуальна модель, розроблена ще у 1970-х роках, щоб описати архітектуру та принципи роботи мереж передачі даних.

Модель TCP/IP визначає процес передачі цифрових даних. Він широко відомий як TCP/IP, оскільки основними протоколами є TCP та IP.

11. Що таке клієнт-серверна архітектура?

Мережева архітектура, в якій завдання або мережеве навантаження розподілені між постачальниками послуг, які називаються серверами, та замовниками послуг, які називають клієнтами.

Рекомендуємо публікацію по темі

12. Що може виступати у ролі клієнта?

  • Браузер
  • ПК

13. Які протоколи передачі даних знаєте?

  • IP
  • TCP
  • UDP
  • HTTP
  • HTTPS
  • DNS
  • SSH

14. Які знаєте основні формати передачі даних?

  • XML
  • JSON
  • YAML

15. Чим відрізняється REST від протоколу SOAP?

  • REST — це архітектурний стиль. SOAP — це формат обміну повідомленнями, має веб-сервіс WSDL із прописаними методами, які можна віддалено викликати.
  • REST працює тільки за HTTP/HTTPS, SOAP — з будь-яким протоколом прикладного рівня: SMPT, FTP, HTTP, HTTPS, POP3.
  • REST успадковується від протоколу HTTP і використовує всі його правила.
  • REST більш простий, гнучкий і швидкий, SOAP типізований, але в деяких випадках краще візуалізується за рахунок застосування синтаксису, схожого на HTML розмітку.
  • REST використовує Json та XML, SOAP — лише XML.

16. Що таке АРІ?

API — опис способів, якими одна комп'ютерна програма може взаємодіяти з іншою програмою.

17. Які інструменти ви знаєте для тестування API?

  • Postman
  • SoapUI
  • JMeter
  • PowerShell

18. Як розшифровується CRUD?

CREATE, READ, UPDATE, DELETE.

19. Чим відрізняється GET від POST?

Основна відмінність методу GET від POST полягає у способі передачі даних. Запит GET передає дані URL у вигляді пар «ім'я-значення» (іншими словами, через посилання), а запит POST передає дані в тілі запиту.

20. Які є HTTP-методи?

  • GET використовується отримання інформації від сервера. Запити клієнтів, які використовують метод GET, повинні отримувати лише дані та не повинні ніяк впливати на ці дані
  • Метод HEAD працює так само, як GET, але у відповідь сервер посилає тільки заголовки та статусний рядок без тіла HTTP повідомлення
  • Метод POST використовується для надсилання даних на сервер, наприклад, з HTML форм, які заповнює відвідувач сайту
  • Метод PUT замінює всі поточні уявлення ресурсу даними запиту
  • Метод DELETE видаляє вказаний ресурс
  • Метод CONNECT перетворює існуюче з'єднання в тунель
  • Метод OPTIONS використовується для отримання параметрів поточного з'єднання HTTP
  • Метод TRACE створює зашморг, завдяки якому клієнт може побачити, що відбувається з повідомленням на всіх вузлах передачі
  • Метод PATCH використовується для часткової зміни ресурсу

21. Розкажіть про структуру HTTP-запиту та відповіді

HTTP повідомлення — це обмін даними між сервером та клієнтом. Є два типи повідомлень: запити, що надсилаються клієнтом, ініціювати реакцію з боку сервера, і відповіді від сервера.

HTTP request:

  • Header
  • Body

HTTP response:

  • Status line
  • Header
  • Body

Рекомендуємо публікацію по темі

22. Охарактеризуйте кожен клас status code (1хх; 2xx; 3xx; 4xx; 5xx)

Інформаційні 100 — 199

Успішні 200 — 299

Перенаправлення 300 — 399

Клієнтські помилки 400 — 499

Серверні помилки 500 — 599

23. Що таке HTML/CSS/JavaScript?

  • HTML (Hypertext Markup Language) — це мова гіпертекстової розмітки. Ця розмітка створюється за допомогою тегів — наборів символів, що входять у незграбні дужки.
  • CSS — Cascading Style Sheets — це каскадні таблиці стилів. За допомогою розмітки ми створюємо структуру та наповнюємо документ, а потім оформляємо за допомогою CSS.
  • JavaScript — це мова програмування, скорочено «JS».

Рекомендуємо публікацію по темі

24. Для чого на веб-сторінках використовують JavaScript?

За допомогою коду JavaScript програміст визначає, як сторінка відреагує на дії користувача.

Зараз JavaScript — єдина мова програмування для браузерів.

25. Що таке REST?

REST API — це прикладний програмний інтерфейс (API), який використовує HTTP-запити для отримання, вилучення, розміщення та видалення даних. Абревіатура REST у контексті API розшифровується як «передача стану подання» (Representational State Transfer).

26. Що таке SOAP?

SOAP (Simple Object Access Protocol) є стандартизованим протоколом передачі повідомлень між клієнтом та сервером.

Техніки тест-дизайну

1. Які основні техніки тест-дизайну бувають?

  • Еквівалентний поділ (Equivalence Partitioning)
  • Граничні значення (Boundary Values)
  • Таблиця прийняття рішень (Desicion Table)
  • Парне тестування (Pairwise Testing)
  • Діаграма переходу станів (State-transition Diagram)
  • Діаграма ролей (Use Case Diagram)
  • Вгадування помилок (Error Guessing)
  • Дослідницьке тестування (Exploratory Testing)
  • Причина і наслідок

Рекомендуємо публікацію по темі

2. Що таке клас еквівалентності?

Клас еквівалентності — одне або кілька значень, до яких програмне забезпечення застосовує однакову логіку.

Техніка, при якій ми поділяємо функціонал (часто діапазон можливих значень, що вводяться) на групи еквівалентних за своїм впливом на систему значень. Такий поділ допомагає переконатися у правильному функціонуванні цілої системи — одного класу еквівалентності, перевіривши лише один елемент цієї групи.

Ця техніка полягає у розбитті всього набору тестів на класи еквівалентності з подальшим скороченням кількості тестів.

3. Що таке тестування класів еквівалентності?

Техніка тест-дизайну, за якої береться за одним значенням з кожного класу еквівалентності

4. Що таке аналіз граничних значень?

При використанні аналізу граничних значень беруться значення на межах цих класів та на виході за ці межі.

5. Що таке попарне тестування?

Це техніка тест-дизайну, яка забезпечує повне тестове покриття, при якій тест-кейс створюються таким чином, щоб виконати всі можливі окремі комбінації кожної пари вхідних параметрів

6. Що таке Traceability Matrix?

Таблиця, що описує зв'язок двох сутностей (наприклад, вимог та тестових сценаріїв).

Таблиця дозволяє проводити пряме і зворотне трасування від однієї сутності до іншої, забезпечуючи таким чином можливість визначення покриття та оцінки впливу передбачуваних змін.

Рекомендуємо курс по темі

А ось як пройти співбесіду на QA Engineer можна подивитися на прикладі, щоб дізнатись, що потрібно знати тестеру та до яких саме питань готуватись.

Рекомендуємо публікації по темі