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

Что такое тестирование

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

Как это работает

Тестирование включает в себя несколько ключевых аспектов:

  • Верификация — проверка того, что продукт соответствует формальным требованиям (спецификациям, стандартам).
  • Валидация — проверка того, что продукт удовлетворяет реальным потребностям пользователей.
  • Оценка рисков — определение вероятности и влияния возможных дефектов на пользователя и бизнес.
  • Информирование — предоставление стейкхолдерам (менеджерам, разработчикам, заказчикам) объективных данных о качестве продукта для принятия решений о готовности к релизу.

Тестирование не ограничивается поиском ошибок. Оно также включает планирование, проектирование тестов, анализ результатов и непрерывное улучшение процессов.

Пример

Рассмотрим простой пример: интернет-магазин. Требование: «Пользователь может добавить товар в корзину». Тестировщик проверяет:

  • Нажатие кнопки «Добавить в корзину» увеличивает счетчик товаров.
  • Товар отображается в корзине с правильной ценой и количеством.
  • При повторном добавлении того же товара количество увеличивается, а не создается дубликат.
  • Работает корректно в разных браузерах и на мобильных устройствах.

Это пример верификации. Валидация же ответит на вопрос: «Удобно ли пользователю добавлять товар?» — для этого проводятся юзабилити-тесты.

Подводные камни

  • Исчерпывающее тестирование невозможно — для большинства продуктов количество комбинаций входных данных и состояний системы бесконечно. Поэтому тестирование всегда направлено на приоритетные сценарии, основанные на рисках.
  • Тестирование не гарантирует отсутствие дефектов — даже после тщательных проверок остаются риски, которые необходимо оценивать и сообщать о них.
  • Путаница между верификацией и валидацией — часто эти термины используют как синонимы, но они отражают разные аспекты: соответствие спецификациям и соответствие ожиданиям пользователя.
  • Недооценка роли тестирования — иногда тестирование воспринимают как «поиск багов», но его главная цель — предоставить информацию для принятия решений.

Когда использовать

Тестирование применяется на всех этапах жизненного цикла разработки ПО: от анализа требований до поддержки. Оно особенно важно при:

  • Выпуске новых версий продукта.
  • Внесении изменений в существующий функционал.
  • Интеграции с внешними системами.
  • Оценке готовности продукта к релизу.

Коротко

  • Тестирование — это сопоставление продукта с требованиями и оценка его качества.
  • В широком смысле — это деятельность по информированию стейкхолдеров о качестве и рисках.
  • Тестирование включает верификацию, валидацию, оценку рисков и коммуникацию.
  • Исчерпывающее тестирование невозможно, поэтому важно фокусироваться на приоритетных сценариях.
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы