Тестирование. Основные понятия
Главное назначение тестирования – проверка соответствия реальных и ожидаемых результатов поведения программы. Тестирование позволяет выявлять дефекты на ранних этапах разработки до того, как с ними столкнётся конечный пользователь. Тестирование несёт в себе и бизнес-ценность: сокращает стоимость разработки за счёт раннего обнаружения дефектов и снижения рисков ухудшения репутации компании и потери лояльности клиентов.
Основные виды тестирования
По запуску кода
- Статическое тестирование — тестирование без фактического выполнения кода.
- Динамическое тестирование — не может быть осуществлено без запуска программного кода приложения.
По доступу к коду
- Белый ящик – с использованием доступа к исходному коду.
- Чёрный ящик – без использования доступа к исходному коду.
По уровню тестирования
- Модульное – проводится над отдельным компонентом системы.
- Интеграционное – проверка взаимодействия нескольких компонентов или систем.
- Системное – показывает, соответствует ли готовая система функциональным и нефункциональным требованиям.
- Приёмочное (UAT) – выполняется самим заказчиком.
По степени автоматизации
- Ручное
- Автоматизированное
По целям тестирования
Различают функциональное и нефункциональное тестирование. К нефункциональному тестированию относят:
- Нагрузочное тестирование – проверка поведения системы при плановой повышенной и пиковой нагрузке.
- Стрессовое тестирование – проверка работы системы в критических условиях.
- Тестирование удобства использования (usability testing)
- Тестирование безопасности
- Регрессионное тестирование — повторное тестирование уже проверенной ранее функциональности после внесения изменений в код приложения, для уверенности в том, что эти изменения не внесли ошибки в областях, которые не подверглись изменениям.
Тестовые стенды
- Среда разработки (Dev) – за данную среду отвечают разработчики, в ней они пишут код, проводят отладку, исправляют ошибки.
- Среда тестирования (Test) – среда, в которой работают тестировщики.
- Интеграционная среда (Integration Env) – среда, в которой проводят тестирование взаимодействующих друг с другом систем.
- Предпрод (Preprod Env) – среда, которая максимально приближена к продакшену. Здесь проводится заключительное тестирование функционала.
- Продакшн среда (Prod Env) – среда, в которой работают пользователи.
Этапы тестирования
- Анализ требований – позволяет выяснить, какие возможные сложности могут возникнуть при тестировании. Также на этом этапе можно выявить возможные несоответствия или недостаточно ясные требования, которые требуют уточнения у разработчиков или заказчика.
- Планирование тестирования – выбор методов тестирования, определение ресурсов, сроков.
- Тест-дизайн – разработка тест-кейсов. Тест-кейс — это алгоритм действий, которые требуется совершить для проверки работы системы. Может иметь следующие атрибуты: ID, название, предусловия, шаги, ожидаемый результат, фактический результат, статус.
- Подготовка к тестированию – включает создание тестового окружения, подготовку тестовых данных, написание автотестов, деплой приложения на тестовом стенде.
- Выполнение тестирования – сначала выполняется интеграционное или даже сразу системное тестирование, зависит от специфики тестирования в конкретной компании. Модульное тестирование обычно выполняется разработчиком при написании кода с помощью unit-тестов.
- Формирование результатов – подготовка отчёта о тестировании, содержащего информацию о результатах выполнения тест-кейсов и о выявленных дефектах.