Основные понятия и цели тестирования

Основные понятия и цели тестирования

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

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

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

Цели тестирования

У тестирования сразу несколько целей, и они дополняют друг друга:

  1. Найти дефекты до того, как их обнаружит пользователь. Это самая очевидная цель. Дефект, найденный в продакшене, обходится в десятки раз дороже, чем найденный на этапе разработки.
  2. Подтвердить соответствие требованиям. Продукт должен делать то, что от него ожидают заказчик и пользователи.
  3. Дать информацию для принятия решений. Можно ли релизить? Что нам грозит, если мы выпустим эту версию сейчас? Какие риски остались непокрытыми?
  4. Предотвратить появление новых дефектов. Хороший QA участвует в обсуждении требований и архитектурных решений ещё до того, как написана первая строка кода — тогда часть дефектов вообще не появляется.
  5. Повысить уверенность в качестве — у команды, заказчика и пользователей.

Verification и Validation

В тестировании часто разделяют два понятия:

  • Verification (верификация) — «делаем ли мы продукт правильно?». Соответствует ли реализация спецификации, требованиям и стандартам. Здесь важны проверки документации, кода и тест-кейсов на корректность.
  • Validation (валидация) — «делаем ли мы правильный продукт?». Решает ли продукт реальную задачу пользователя, удобно ли им пользоваться, попадает ли в ожидания.

Можно идеально верифицировать продукт (всё точно по ТЗ) и при этом провалить валидацию (никто этим не пользуется, потому что нужно было совсем другое).

Quality Assurance, Quality Control и Testing

Иерархия QA, QC и Testing: вложенные уровни

Эти три термина часто путают. Разница в фокусе:

  • QA (Quality Assurance, обеспечение качества) — это процесс: как мы вообще организуем работу так, чтобы качество было высоким. Сюда входят процессы код-ревью, требований, релизов, ретроспективы.
  • QC (Quality Control, контроль качества) — это результат: проверяем уже сделанный продукт на соответствие критериям качества.
  • Testing — одна из техник внутри QC: сравниваем фактическое поведение с ожидаемым.

То есть тестирование ⊂ QC ⊂ QA. На практике в России и СНГ «QA-инженер» часто означает именно тестировщика, не разделяя эти роли строго.

Стоимость дефекта

Одно из ключевых правил индустрии: чем позже найден дефект, тем дороже он обходится.

Этап обнаруженияОтносительная стоимость
Анализ требований
Дизайн3-5×
Разработка10×
Тестирование15-20×
Продакшен100×+

Это объясняет, почему хорошие команды стремятся вовлекать тестировщика как можно раньше — на этапе обсуждения требований, а не «когда фича уже почти готова».

Что мы запомним

  • Тестирование = сравнение фактического поведения с ожидаемым.
  • Цель — не «доказать, что багов нет», а снизить риски и дать команде информацию для принятия решений.
  • Verification отвечает за «как», validation — за «что».
  • QA шире, чем тестирование: QA = процессы, QC = результат, Testing = одна из техник.
  • Дефект, пойманный поздно, стоит на порядки дороже, чем найденный на старте.

Попробуйте интерактивную версию

Практические задачи, квизы и AI-наставник — бесплатный старт без карты

Перейти к практике