
Описание
- Выполняемое на полностью интегрированной системе с целью оценить качество выполнения системных требований.
- Системному тестированию подлежат компоненты, прошедшие интеграционное тестирование.
- Цель системного тестирования: оценить работу системы как единого целого (почему и называется системным).
- Результатом системного тестирования является подтвержденное ожидаемое поведение компонентов и всей системы.
- Этот тип тестирования сосредоточен на проверке системных спецификаций и/или функциональных требований, в зависимости от проекта.
- Оно проверяет дизайн и поведение системы, часто выходя за пределы, прописанные в требованиях.
- Обычно выполняется QA-командой, независимой от разработчиков, что помогает сохранять объективность.
- Системное тестирование может быть как функциональным, так и нефункциональным.
- Системное тестирование типологически относится к черному ящику.
- Порядок выполнения системного тестирования: после интеграционного и перед приемочным
Этапы системного тестирования
- Настройка окружения: создание и настройка тестового окружения (тестовой среды)
- Создание тест-кейсов: генерация нужных тест-кейсов
- Генерация тестовых данных: о генераторах здесь
- Выполнение тест-кейсов: запуск подготовленных тест-кейсов с генерированными данными
- Репорты по дефектам: отчет о найденных дефектах, подробнее здесь
- Регрессионное тестирование: проверка «побочных результатов тестирования»
- Устранение дефектов разработчиками
- Повторное тестирование, если тест-кейс опять падал

Некоторые разновидности системного тестирования
- Тестирование производительности: проверка скорости, расширяемости (масштабируемости), стабильности и надежности продукта
- Нагрузочное тестирование: проверка поведения системы под большой нагрузкой
- Стресс-тестирование: проверка «выносливости» системы, подвергая ее «стрессу» экстремальной нагрузкой / нагрузкой необычного типа
- Тестирование масштабируемости: проверка продуктивности системы в плане ее готовности к расширению, «подстройке» к постепенному росту количества пользователей/запросов

Распространенные инструменты системного тестирования
Преимущества системного тестирования
- Тестируется весь продукт, поэтому находятся ошибки, недоступные для юнит- и интеграционного тестирования
- Преимущественно, тестировщикам не требуется очень глубокое знание языков программирования
- Окружение соответствует реальному продакт- или бизнес-окружению
- Хорошее тестовое покрытие функциональности
- Выполнение технических и бизнес-требований
- Уверенный переход к приемочному тестированию
Недостатки
- Достаточно затратный по времени процесс, сравнивая с другими видами тестирования — поскольку идет проверка всей системы, которая может быть очень большой
- По этой же причине стоимость системного тестирования бывает высокой
- И требуются качественные инструменты
Видео по теме
На английском: