Cтратегии
тестирования.
Что такое стратегия:
• Cтратегия наука о войне, в частности наука полководца, общий,
недетализированный план военной деятельности,
охватывающий длительный период времени, способ
достижения сложной цели.
• Стратегия тестирования — это план проведения работ по
тестированию системы или её модуля, учитывающий специфику
функциональности и зависимости с другими компонентами
системы и платформы. Стратегия определяет типы тестов,
которые нужно выполнять для данного функционала системы,
включает описание необходимых подходов с точки зрения
целей тестирования и может задавать описания или требования
к необходимым для проведения тестирования инструментам и
инфраструктуре.
Критерии для классификации стратегий:
• Компонентное (модульное)
тестирование (component/unit testing)
• Интеграционное тестирование (integration
testing)
• Системное тестирование (system/end-to-
end testing)
По времени проведения тестирования:
• Альфа-тестирование (alpha testing) - имитация реальной работы с системой .
Чаще всего альфа-тестирование проводится на ранней стадии разработки
продукта, но в некоторых случаях может применяться для законченного
продукта в качестве внутреннего приёмочного тестирования.
– Дымовое тестирование (smoke testing)- в тестировании по означает минимальный
набор тестов на явные ошибки. "Дымовой тест" обычно выполняется самим
программистом; не проходящую этот тест программу не имеет смысла отдавать на
более глубокое тестирование.
– Тестирование новой функциональности (new feature testing)
– Подтверждающее тестирование (confirmation testing)
– Регрессионное тестирование (regression testing) - собирательное название для всех
видов тестирования программного обеспечения, направленных на обнаружение
ошибок в уже протестированных участках исходного кода. Такие ошибки — когда
после внесения изменений в программу перестает работать то, что должно было
продолжать работать, — называют регрессионными ошибками
– Приёмочное тестирование (acceptance testing)
По времени проведения тестирования:
• Бета-тестирование (beta testing) - интенсивное использование почти готовой
версии продукта (как правило, программного или аппаратного обеспечения)
с целью выявления максимального числа ошибок в его работе для их
последующего устранения перед окончательным выходом (Релизом)
продукта на рынок, к массовому потребителю.
В отличие от альфа-тестирования, проводимого силами штатных
разработчиков или тестировщиков, бета-тестирование предполагает
привлечение добровольцев из числа обычных будущих пользователей
продукта, которым доступна упомянутая предварительная версия продукта
(так называемая бета-версия).
Кроме того, открытие бета-тестирования может использоваться как часть
стратегии продвижения продукта на рынок (например, бесплатная раздача
бета-версий позволяет привлечь широкое внимание потребителей к
окончательной дорогостоящей версии продукта), а также для получения
предварительных отзывов о нём от широкого круга будущих пользователей.
По признаку позитивности сценариев:
• Позитивное тестирование (positive testing) - это тестирование на
данных или сценариях, которые соответствуют нормальному
(штатному, ожидаемому) поведению системы.
Основной целью “позитивного” тестирования является проверка того,
что при помощи системы можно делать то, для чего она создавалась.
• Негативное тестирование (negative testing) - это тестирование на
данных или сценариях, которые соответствуют нештатному поведению
тестируемой системы – различные сообщения об ошибках,
исключительные ситуации, “запредельные” состояния и т.п.
Основной целью “негативного” тестирования является проверка
устойчивости системы к воздействиям различного рода, валидация
неверного набора данных, проверка обработки исключительных
ситуаций (как в реализации самих программных алгоритмов, так и в
логике бизнес-правил).
По степени подготовленности к
тестированию:
• Тестирование по документации (formal
testing) - тестирование приложения
проводится по заранее подготовленным
данным (тест-кейсы, чек-листы, чит-листы,
спецификация и т.д.)
• Тестирование ad hoc или интуитивное
тестирование (ad hoc testing) - тестирование
проводится при полном отсутствии
документации, без плана и цели;