Вопросы на собеседованиях на позицию QA Manual Engineer

Вопросы на собеседованиях на позицию QA Manual Engineer

  • 29 ноября, 2022
  • читать 15 мин
Игорь Осыка
Игорь Осыка Выпускник курса QA Manual, QA Manual Engineer в Ajax Systems

Выпускник нашего курса QA Manual Игорь Осыка собрал вопросы на собеседованиях QA Junior и Trainee.

Еще готовиться к собеседованиям можно по нашему справочнику ITWiki, в нем есть все самые важные тезисы о тестировании, его методах, инструментах и документации.

Справочник для тестировщиков

Собеседование QA: вопросы и ответы

Общие вопросы

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. Что такое жизненный цикл разработки программного обеспечения (SDLS)? Каковы его этапы?

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)

Nестирование работоспособности приложения при нагрузках, превышающих пользовательские в несколько раз.

При стресс-тестировании мы можем получить реальные данные границ производительности и поведение приложения за этими границами.

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 Testing

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?

Файлы cookie — это небольшие фрагменты текста, передаваемые в браузер с сайта, который вы открываете. С их помощью сайт запоминает информацию о ваших посещениях.

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. Что такое АРI?

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 можно посмотреть на живом примере:

Рекомендуем публикации по теме