Основные понятия и цели тестирования
Основные понятия и цели тестирования
Что такое тестирование
Тестирование программного обеспечения — это процесс проверки соответствия фактического поведения продукта ожидаемому. Тестировщик не «ищет ошибки ради ошибок» — он сравнивает то, что есть, с тем, что должно быть, и сообщает команде о расхождениях.
Важно понимать, что тестирование — это не способ доказать, что в системе нет ошибок. Полное доказательство отсутствия дефектов невозможно даже для небольших программ. Поэтому работа QA — снизить риски до приемлемого уровня и дать бизнесу обоснованную уверенность в том, что продукт можно выпускать.
Цели тестирования
У тестирования сразу несколько целей, и они дополняют друг друга:
- Найти дефекты до того, как их обнаружит пользователь. Это самая очевидная цель. Дефект, найденный в продакшене, обходится в десятки раз дороже, чем найденный на этапе разработки.
- Подтвердить соответствие требованиям. Продукт должен делать то, что от него ожидают заказчик и пользователи.
- Дать информацию для принятия решений. Можно ли релизить? Что нам грозит, если мы выпустим эту версию сейчас? Какие риски остались непокрытыми?
- Предотвратить появление новых дефектов. Хороший QA участвует в обсуждении требований и архитектурных решений ещё до того, как написана первая строка кода — тогда часть дефектов вообще не появляется.
- Повысить уверенность в качестве — у команды, заказчика и пользователей.
Verification и Validation
В тестировании часто разделяют два понятия:
- Verification (верификация) — «делаем ли мы продукт правильно?». Соответствует ли реализация спецификации, требованиям и стандартам. Здесь важны проверки документации, кода и тест-кейсов на корректность.
- Validation (валидация) — «делаем ли мы правильный продукт?». Решает ли продукт реальную задачу пользователя, удобно ли им пользоваться, попадает ли в ожидания.
Можно идеально верифицировать продукт (всё точно по ТЗ) и при этом провалить валидацию (никто этим не пользуется, потому что нужно было совсем другое).
Quality Assurance, Quality Control и Testing

Эти три термина часто путают. Разница в фокусе:
- QA (Quality Assurance, обеспечение качества) — это процесс: как мы вообще организуем работу так, чтобы качество было высоким. Сюда входят процессы код-ревью, требований, релизов, ретроспективы.
- QC (Quality Control, контроль качества) — это результат: проверяем уже сделанный продукт на соответствие критериям качества.
- Testing — одна из техник внутри QC: сравниваем фактическое поведение с ожидаемым.
То есть тестирование ⊂ QC ⊂ QA. На практике в России и СНГ «QA-инженер» часто означает именно тестировщика, не разделяя эти роли строго.
Стоимость дефекта
Одно из ключевых правил индустрии: чем позже найден дефект, тем дороже он обходится.
| Этап обнаружения | Относительная стоимость |
|---|---|
| Анализ требований | 1× |
| Дизайн | 3-5× |
| Разработка | 10× |
| Тестирование | 15-20× |
| Продакшен | 100×+ |
Это объясняет, почему хорошие команды стремятся вовлекать тестировщика как можно раньше — на этапе обсуждения требований, а не «когда фича уже почти готова».
Что мы запомним
- Тестирование = сравнение фактического поведения с ожидаемым.
- Цель — не «доказать, что багов нет», а снизить риски и дать команде информацию для принятия решений.
- Verification отвечает за «как», validation — за «что».
- QA шире, чем тестирование: QA = процессы, QC = результат, Testing = одна из техник.
- Дефект, пойманный поздно, стоит на порядки дороже, чем найденный на старте.