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