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

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

Введение

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

Принцип 1: Тестирование показывает наличие дефектов, но не их отсутствие

Тестирование может доказать, что дефекты есть. Но оно не может доказать, что дефектов нет.

Даже если ты прогнал тысячу тест-кейсов и всё прошло успешно — это не значит, что система свободна от ошибок. Это значит, что в проверенных сценариях ошибок не обнаружено.

«Программа с прошедшими тестами — это программа, в которой пока не нашли баги.»

Принцип 2: Исчерпывающее тестирование невозможно

Протестировать все возможные входные данные, все комбинации условий, все сценарии — нереально.

Пример: Поле для ввода числа от 1 до 100. Формально это 100 значений. Но добавь отрицательные числа, нули, буквы, пустую строку, очень длинные строки, символы Unicode — и комбинаций станут миллионы.

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

Принцип 3: Раннее тестирование экономит время и деньги

Чем раньше в жизненном цикле разработки обнаружен дефект, тем дешевле его исправить.

Дефект в требованиях, найденный на этапе планирования, исправляется правкой документа. Тот же дефект в продакшне — это hotfix, откат, потеря данных и потеря пользователей.

Вывод: Подключай тестировщиков к проекту с самого начала — ещё на этапе анализа требований.

Принцип 4: Скопление дефектов (Defect clustering)

Дефекты распределяются неравномерно. Как правило, 80% дефектов сосредоточены в 20% модулей.

Это называется правилом Парето, применённым к тестированию. Если в каком-то модуле уже нашли много багов — ищи там ещё. Риск высок именно там.

Практическое применение: Отслеживай, где находят больше всего багов, и уделяй этим местам больше внимания при регрессионном тестировании.

Принцип 5: Парадокс пестицида

Если постоянно запускать одни и те же тесты, они перестают находить новые дефекты. Как насекомые вырабатывают иммунитет к пестициду.

Почему это происходит: Код меняется. Разработчики исправляют найденные баги и не делают таких же ошибок снова. Но делают новые — в других местах, которые старые тесты не покрывают.

Решение: Регулярно обновляй тест-кейсы. Добавляй новые сценарии. Проводи исследовательское тестирование.

Принцип 6: Тестирование зависит от контекста

Нет универсальных рецептов тестирования. Подход зависит от:

  • типа продукта (банковское приложение vs игра)
  • рисков (медицинское ПО vs личный блог)
  • команды и сроков
  • требований регулятора

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

Принцип 7: Заблуждение об отсутствии ошибок

Найти и исправить все баги не означает, что продукт успешен. Система может быть технически без дефектов, но не отвечать потребностям пользователей.

Пример: Ты можешь идеально протестировать приложение для управления задачами. Если оно такое сложное, что пользователи не понимают, как им пользоваться — продукт провалится, несмотря на отсутствие багов.

Качество — это соответствие нуждам пользователей, а не только отсутствие дефектов.

Все 7 принципов кратко

Семь принципов тестирования

#Принцип
1Тестирование показывает наличие дефектов, но не их отсутствие
2Исчерпывающее тестирование невозможно
3Раннее тестирование экономит время и деньги
4Скопление дефектов (80% багов в 20% модулей)
5Парадокс пестицида (одни тесты перестают находить новые баги)
6Тестирование зависит от контекста
7Заблуждение об отсутствии ошибок

Распространённые ошибки

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

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

  • Семь принципов тестирования — фундамент профессии QA
  • Тестирование не доказывает отсутствие ошибок, только их наличие
  • Тестировать всё невозможно — нужно расставлять приоритеты
  • Ранние инвестиции в тестирование экономят деньги на поздних этапах
  • Баги скапливаются в «проблемных» местах — отслеживай статистику

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

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

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