Встречается на 52% собеседований по QA

Какие есть виды тестирования

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

Функциональное тестирование

Функциональное тестирование проверяет, что ПО выполняет функции, ради которых оно создано. Оно отвечает на вопрос «что делает система?» и включает несколько подгрупп:

  • По доступу к коду: черный ящик (без знания кода), белый ящик (с полным знанием кода), серый ящик (частичное знание).
  • По уровню глубины: верхний уровень — тестирование пользовательского интерфейса; средний — тестирование API и бэкенда; нижний — тестирование баз данных; интеграционное — проверка взаимодействия между компонентами.
  • По инструменту: ручное и автоматизированное тестирование.

Пример функционального теста: проверка, что при вводе корректных данных в форму авторизации пользователь попадает в личный кабинет.

Нефункциональное тестирование

Нефункциональное тестирование проверяет характеристики системы, не связанные с её функциональностью, но влияющие на качество продукта. К нему относятся:

  • Нагрузочное тестирование — проверка поведения системы под ожидаемой нагрузкой.
  • Стресс-тестирование — проверка работы системы при нагрузке, превышающей нормальные значения.
  • Тестирование надежности — проверка стабильности работы в течение длительного времени.
  • Тестирование безопасности — проверка защиты от несанкционированного доступа.
  • Тестирование удобства использования (юзабилити) — оценка того, насколько интерфейс понятен и удобен.
  • Тестирование локализации — проверка корректности перевода и адаптации к региональным особенностям.
  • Тестирование масштабируемости — проверка способности системы расширяться при росте нагрузки.

Пример нефункционального теста: проверка, что время ответа сервера не превышает 2 секунд при 1000 одновременных пользователей.

Тестирование, связанное с изменениями

Эти виды тестирования проводятся после внесения изменений в продукт и направлены на проверку того, что изменения не сломали существующую функциональность:

  • Смоук-тестирование — быстрая проверка критически важного функционала после сборки, чтобы убедиться, что система запускается и основные сценарии работают.
  • Ретест — повторная проверка конкретного дефекта после его исправления.
  • Регрессионное тестирование — проверка того, что изменения не повлияли на уже работающие функции.
  • Санитарное тестирование — узкая проверка после внесения изменений, направленная на конкретный компонент.

Пример: после исправления ошибки в модуле оплаты проводится ретест этого модуля, а затем регрессионное тестирование всего процесса оформления заказа.

Коротко

  • Основные группы видов тестирования: функциональное, нефункциональное и связанное с изменениями.
  • Функциональное тестирование проверяет, что система делает то, что должна, и делится по доступу к коду, уровню глубины и инструменту.
  • Нефункциональное тестирование охватывает нагрузку, безопасность, удобство использования, надежность и другие характеристики.
  • Тестирование изменений включает смоук, ретест, регрессионное и санитарное тестирование.
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы