Топ вопросов на собеседовании QA с ответами


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

В чем разница между QA и тестировщиком?
QA охватывает весь процесс разработки продукта, включая планирование, контроль и улучшение процессов, чтобы предотвратить дефекты. Тестирование же сосредоточено на выявлении дефектов в уже созданном продукте.
Что такое SDLC?

SDLC (Software Development Life Cycle) — жизненный цикл программного обеспечения.

Ключевые этапы: Планирование, Анализ, Дизайн, Реализация, Тестирование, Поддержка.

В чем разница между аутентификацией и авторизацией?

Аутентификация — это процесс подтверждения личности пользователя.
Она отвечает на вопрос: "Является ли пользователь тем за кого себя выдает?"

Авторизация — это процесс предоставления или отказа в доступе на основании прав и привилегий пользователя.
Она отвечает на вопрос: "Что пользователю разрешено делать?"

Начнете тестирование с позитивного или негативного сценария?
С позитивного, так как это целевой сценарий использования системы пользователем, корректность которого важно проверить в первую очередь.

Работа в команде

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

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

Виды тестирования

Что такое регрессионное тестирование?
Регрессионное тестирование — это тип тестирования, направленный на подтверждение того, что недавно внесенные изменения в код не повлияли негативно на существующий функционал системы.
В чем отличие регресса от ретеста?
Регресс: проверяет, что изменения не вызвали новые дефекты в других частях системы.
Ретест: проверяет, что исправленный дефект действительно был устранен.

Уровни тестирования

Расскажите про уровни тестирования по критериям: скорость, количество тестов.

Тут уместно вспомнить про пирамиду тестирования и описать её уровни.

Уровень тестирования Скорость Количество тестов
Модульное тестирование Высокая Большое
Интеграционное тестирование Средняя Среднее
Системное тестирование Низкая Минимальное

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

Чем отличаются поля severity от priority в баг репорте?

Severity (Серьезность): оценивает техническое влияние бага на функциональность системы.

Priority (Приоритет): оценивает срочность и критичность исправления бага с точки зрения бизнеса.

Приведите пример бага с высоким priority и низким severity.

Опечатка в названии компании на главной странице.

HTTP протокол

Назовите HTTP коды ответов и в каких случаях они возвращаются.
Код Описание
100-199 Информационные
200-299 Успешно
300-399 Перенаправление
400-499 Ошибка клиента
500-599 Ошибка сервера
Подробнее про статус коды.
Запрос с методом GET может иметь тело?

Да. На уровне протокола это никак не ограничено и зависит только от того, как разработчик реализовал эндпоинт.

Человек не может знать всё, в том числе интервьюер может заблуждаться. Аргументируйте ответ, если уверены в его правильности.
Назовите идемпотентные и неидемпотентные методы.

Идемпотентные методы — это методы, вызов которых повторно с одним и тем же набором данных приведет к одному и тому же результату, без побочных эффектов для сервера.

Неидемпотентные методы влияют на состояние сервера, например, они могут изменять данные в базе данных.

Идемпотентность Методы
Идемпотентные GET, HEAD, PUT, DELETE, OPTIONS, TRACE
Неидемпотентные POST, PATCH
Чем отличается HTTP от HTTPS?

HTTP (HyperText Transfer Protocol): Данные передаются в открытом виде, без шифрования. Любой, кто перехватит трафик между браузером и сервером, потенциально может прочитать передаваемую информацию.

HTTPS (HyperText Transfer Protocol Secure): Данные шифруются с использованием SSL/TLS (Secure Sockets Layer / Transport Layer Security). Требует наличия SSL/TLS-сертификата, подтверждающего подлинность ресурса.

Форматы данных

Опишите данные в JSON формате (имя Котофей, возраст 5).
{
    "name": "Котофей",
    "age": 5
}
Не стесняйтесь задавать вопросы, если сомневаетесь, что корректно описали JSON. Спросите интервьюера можно ли использовать онлайн валидатор для проверки (в поиске json validator). Валидатор подскажет, в каком месте была нарушена структура.
Где описывается структура при передаче данных в формате XML?

В XSD схеме (XML Schema Definition) — файле с форматом .xsd. Схема XSD определяет элементы и атрибуты, которые могут быть использованы в XML документе, типы данных и ограничения.

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="cat">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="name" type="xs:string"/>
        <xs:element name="age" type="xs:int"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
Не бойтесь говорить, что не работали с XML/XSD — преимущественно на современных проектах используется JSON. Просто будьте готовы ответить на вопрос, XML — это всего лишь еще один формат записи данных.

DevTools

Сервер хранит на клиенте cookie, как их посмотреть в браузере?
  1. Открыть DevTools
  2. Перейти на вкладку Application
  3. В левой панели выбрать Cookies
  4. Кликнуть на URL сайта
  5. Отобразится таблица с именами, значениями и другими атрибутами cookie
Как посмотреть тело запроса, передаваемого фронтом в браузере?
  1. Открыть DevTools
  2. Перейти на вкладку Network
  3. Отправить запрос на фронте
  4. Выбрать нужный запрос из списка
  5. Перейти на вкладку Payload
Где можно посмотреть ответ сервера в браузере?
  1. Открыть DevTools
  2. Перейти на вкладку Network
  3. Отправить запрос на фронте
  4. Выбрать нужный запрос из списка
  5. Перейти на вкладку Response

Архитектура

Плюсы и минусы монолитной и микросервисной архитектуры при тестировании.

Монолит — все компоненты системы объединены в единое приложение.

Микросервисы — набор независимых приложений, каждый из которых выполняет определенную функцию, вместе составляющих систему.

Архитектура Плюсы Минусы
Монолит
  • Легче установить и настроить окружение для тестирования
  • Регресс сложно проводить из-за потенциального влияния доработки на любую область монолита
Микросервисы
  • Регресс легко проводить, так как компоненты изолированы
  • Сложность настройки и управления окружением
  • Сложность проведения интеграционного тестирования
  • Сложность выявления проблем