Инкрементное тестирование (Incremental Testing) — это стратегия тестирования интеграции, при которой компоненты или модули системы тестируются после их последовательного добавления к уже протестированным частям.
Ключевые характеристики:
- Последовательное добавление: Новые модули интегрируются один за другим или небольшими группами.
- Повторное тестирование: После добавления нового модуля проводится интеграционное тестирование всей текущей сборки.
- Зависимость от порядка: Порядок интеграции модулей важен.
Виды инкрементного тестирования:
- "Снизу вверх" (Bottom-Up): Тестирование начинается с самых низкоуровневых модулей, которые не зависят от других. Затем к ним добавляются модули более высокого уровня, вызывающие их.
- Преимущества: Обнаружение дефектов в критических низкоуровневых модулях на ранних этапах.
- Недостатки: Главные модули системы (связывающие все вместе) тестируются последними.
- "Сверху вниз" (Top-Down): Тестирование начинается с высокоуровневых модулей (например, пользовательского интерфейса или главного модуля). Функции нижнего уровня, которые еще не реализованы, заменяются "заглушками" (stubs). Модули нижнего уровня тестируются и интегрируются постепенно.
- Преимущества: Тестирование потока выполнения, приближенного к реальному сценарию пользователя, на ранних этапах. Обнаружение интеграционных дефектов в основных модулях.
- Недостатки: Низкоуровневые модули тестируются последними. Требуется разработка заглушек.
- "Сэндвич" или "Гибридное" (Sandwich/Hybrid): Комбинирует подходы "сверху вниз" и "снизу вверх". Главный модуль тестируется отдельно, модули нижнего уровня тестируются отдельно, а затем эти подсистемы интегрируются.
- Преимущества: Сочетает преимущества обоих подходов. Позволяет обнаружить дефекты как на низком уровне, так и в основных потоках.
Цель инкрементного тестирования — обнаружить дефекты, возникающие при взаимодействии модулей, на ранних этапах интеграции, что делает отладку более простой по сравнению с подходом "Big Bang" (тестирование всех модулей сразу после их разработки).