Что такое тестирование
Тестирование — это процесс проверки программного продукта на соответствие требованиям, а также деятельность по оценке его качества и снижению рисков для конечного пользователя. В узком смысле тестирование сводится к сопоставлению готового продукта с ожиданиями, зафиксированными в спецификациях. В широком смысле — это комплексная деятельность, которая предоставляет заинтересованным сторонам информацию о текущем качестве продукта, выявляет остаточные риски и минимизирует количество дефектов, которые может обнаружить пользователь, в рамках заданных сроков и бюджета.
Как это работает
Тестирование включает в себя несколько ключевых аспектов:
- Верификация — проверка того, что продукт соответствует формальным требованиям (спецификациям, стандартам).
- Валидация — проверка того, что продукт удовлетворяет реальным потребностям пользователей.
- Оценка рисков — определение вероятности и влияния возможных дефектов на пользователя и бизнес.
- Информирование — предоставление стейкхолдерам (менеджерам, разработчикам, заказчикам) объективных данных о качестве продукта для принятия решений о готовности к релизу.
Тестирование не ограничивается поиском ошибок. Оно также включает планирование, проектирование тестов, анализ результатов и непрерывное улучшение процессов.
Пример
Рассмотрим простой пример: интернет-магазин. Требование: «Пользователь может добавить товар в корзину». Тестировщик проверяет:
- Нажатие кнопки «Добавить в корзину» увеличивает счетчик товаров.
- Товар отображается в корзине с правильной ценой и количеством.
- При повторном добавлении того же товара количество увеличивается, а не создается дубликат.
- Работает корректно в разных браузерах и на мобильных устройствах.
Это пример верификации. Валидация же ответит на вопрос: «Удобно ли пользователю добавлять товар?» — для этого проводятся юзабилити-тесты.
Подводные камни
- Исчерпывающее тестирование невозможно — для большинства продуктов количество комбинаций входных данных и состояний системы бесконечно. Поэтому тестирование всегда направлено на приоритетные сценарии, основанные на рисках.
- Тестирование не гарантирует отсутствие дефектов — даже после тщательных проверок остаются риски, которые необходимо оценивать и сообщать о них.
- Путаница между верификацией и валидацией — часто эти термины используют как синонимы, но они отражают разные аспекты: соответствие спецификациям и соответствие ожиданиям пользователя.
- Недооценка роли тестирования — иногда тестирование воспринимают как «поиск багов», но его главная цель — предоставить информацию для принятия решений.
Когда использовать
Тестирование применяется на всех этапах жизненного цикла разработки ПО: от анализа требований до поддержки. Оно особенно важно при:
- Выпуске новых версий продукта.
- Внесении изменений в существующий функционал.
- Интеграции с внешними системами.
- Оценке готовности продукта к релизу.
Коротко
- Тестирование — это сопоставление продукта с требованиями и оценка его качества.
- В широком смысле — это деятельность по информированию стейкхолдеров о качестве и рисках.
- Тестирование включает верификацию, валидацию, оценку рисков и коммуникацию.
- Исчерпывающее тестирование невозможно, поэтому важно фокусироваться на приоритетных сценариях.
