Виды тестирования
Введение
Тема видов тестирования сложна для тех, кто не погружался в работу, и останется сложной, пока не будет практики. Это вступление для того, чтобы разобраться в видах на практике.
Схема видов тестирования будет представлена, но на первых этапах все задачи ставятся через тимлида, и самому определять, какой вид тестирования нужен, нет необходимости. Для непосредственной работы нужно разбираться не в названиях того, что делаешь, а в том, как тестировать; при этом виды тестирования усваиваются и применяются по взаимному кругу.
Процесс тестирования
Процесс тестирования включает в себя следующие этапы:
- Планирование тестирования
- Анализ требований
- Дизайн тестов (разработка тест-кейсов и тест-сценариев)
- Подготовка к тестированию (настройка тестового окружения и тестовых данных)
- Выполнение тестов
- Запись и анализ результатов тестирования
- Отчетность и закрытие дефектов
- Регрессионное тестирование после исправления дефектов
Вид тестирования определяется в зависимости от этапа разработки, характера проверяемого объекта, и задач тестирования.
Категории видов тестирования
Ниже приведен перечень видов тестирования, разделенных по разным категориям. Процесс тестирования можно охарактеризовать с нескольких разных сторон одновременно. Например: можно проводить функциональное регрессионное ручное тестирование по методу черного ящика с использованием негативных и позитивных сценариев.
По запуску кода на исполнение:
a) Статическое тестирование:
- Тестирование требований
- Code review
b) Динамическое тестирование:
- Модульное тестирование
- Интеграционное тестирование
- Приемочное тестирование
По доступу к коду и архитектуре приложения:
a) Метод белого ящика:
- Юнит-тестирование
b) Метод черного ящика:
- Тестирование через интерфейс пользователя
c) Метод серого ящика:
- Частичный доступ к структуре приложения
По степени автоматизации:
a) Ручное тестирование
b) Автоматизированное тестирование
По уровню детализации:
a) Модульное тестирование
b) Интеграционное тестирование
c) Системное тестирование
По степени важности тестируемых функций:
a) Smoke тестирование
b) Тестирование критического пути
c) Расширенное тестирование
По принципам работы с приложением:
a) Позитивное тестирование
b) Негативное тестирование
По цели тестирования:
a) Функциональные виды тестирования:
- Функциональное тестирование
- Тестирование безопасности
- Тестирование взаимодействия
b) Нефункциональные виды тестирования:
- Нагрузочное тестирование
- Стресс-тестирование
- Тестирование стабильности и надежности
- Объемное тестирование
- Инсталляционное тестирование
- Юзабилити-тестирование
- Тестирование на отказ и восстановление
- Конфигурационное тестирование
c) Связанные с изменениями в коде:
- Регрессионное тестирование
- Тестирование изменений
Нагрузочное тестирование vs тестирование производительности
Нагрузочное тестирование направлено на определение отказа системы при определенном уровне нагрузки. Целью является определение пределов производительности системы и устойчивости при увеличении нагрузки.
Тестирование производительности охватывает более широкий спектр аспектов, включая время отклика, пропускную способность, использование ресурсов и масштабируемость. Целью является определение, насколько быстро система выполняет задачи и потребляет ресурсы, а также нахождение узких мест, которые могут замедлить работу системы.