Пирамида тестирования
Что такое пирамида тестирования: определение, основные принципы, примеры и практические советы. Изучайте основах тестирования ПО с подробными объяснениями для начинающих специалистов.
Пирамида тестирования.
«Пирамида тестов» — метафора, которая означает группировку динамических тестов программного обеспечения по разным уровням. Дает представление, какое количество тестов должно быть в каждой из этих групп. Основной принцип разделения уровней — тест должен быть на том же уровне, что и тестируемый объект. В тесте более высокого уровня не тестируется вся условная логика и пограничные случаи, которые уже покрыты тестами более низкого уровня.
Первый уровень: модульное тестирование (юнит).
В основе пирамиды лежат unit-тесты. На данном этапе проверяется функциональность и работоспособность модулей по отдельности.
Второй уровень: интеграционное тестирование.
Суть этого процесса в объединении программных модулей в группы и их последующее тестирование. На данном этапе проверяется взаимодействие модулей системы между собой, а также взаимодействие нашего приложения с модулями других системам. Проще говоря, это проверка бизнес-логики без использования UI.
Третий уровень: системное тестирование.
На системном уровне выявляются такие дефекты, как неверное использование ресурсов системы, не предусмотренные комбинации данных пользовательского уровня, несовместимость с окружением, непредусмотренные сценарии использования, отсутствующая или неверная функциональность, неудобство использования и т.д.
На этом уровне используют черный ящик. Интеграционный уровень позволяет верифицировать требования (проверить соответствие ПО прописанным требованиям).
Четвертый уровень: приемочное тестирование.
Также часто называют E2E тестами (End-2-End) или сквозными. На этом уровне происходит валидация требований (проверка работы ПО в целом, не только по прописанным требованиям, что проверили на системном уровне).
Проверка требований производится на наборе приемочных тестов. Они разрабатываются на основе требований и возможных способах использования ПО.
Стоит отметить, что приемочные тесты проводят, когда (1) продукт достиг необходимого уровня качества и (2) заказчик ПО ознакомлен с планом приемки (в нем описан набор сценариев и тестов, дата проведения и т.п.).
Приемку проводит либо внутреннее тестирование (не обязательно тестировщики) или внешнее тестирование (сам заказчик и необязательно тестировщик).
Важно помнить, что E2E тесты автоматизируются сложнее, дольше, стоят дороже, сложнее поддерживаются и трудно выполняются при регрессе. Значит таких тестов должно быть меньше.
Уровни тестирования:
- Unit / component / program / module testing — тестируется минимально-атомарный модуль программы, чаще всего это одна функция или метод. Таких тестов должно быть больше всего.
- Integration testing — несколько модулей программы тестируются вместе.
- System testing — вся программа тестируется полностью.
- Acceptance testing — программа принимается заказчиком на соответствие заявленным требованиям либо тестировщики проходят end-to-end сценарии с точки зрения пользователя.