TL;DR
- Stress testing: наращивает количество пользователей до точки отказа (CPU, память, порог ошибок)
- Volume testing: наполняет систему большими объёмами данных для проверки базы данных и обработки файлов
- Оба типа определены ISTQB как нефункциональные тесты производительности с разными целями
- k6 или JMeter — для stress testing; sysbench или кастомные скрипты — для volume testing
- Ключевой инсайт: система, выдерживающая 10 000 пользователей, может упасть при обработке 100 миллионов записей
Stress testing и volume testing — два отдельных типа нефункциональных тестов по классификации ISTQB. Согласно глоссарию ISTQB, stress testing оценивает поведение системы «за пределами нормальной операционной мощности, часто до точки отказа», а volume testing — производительность при обработке «больших объёмов данных». По данным отраслевых исследований, 60% производственных сбоев вызваны проблемами с масштабируемостью, которые можно выявить с помощью stress- или volume-тестирования (Gartner, 2023). Мировой рынок нагрузочного тестирования достиг $4,3 млрд в 2023 году и растёт на 14% ежегодно до 2028 года (Grand View Research). Несмотря на общую цель — найти пределы системы — stress testing нацелен на параллельную нагрузку пользователей, а volume testing — на объём данных. Оба типа необходимы для всесторонней стратегии тестирования производительности.
Stress Testing
Определение
Оценивает поведение системы за пределами нормальной операционной мощности для выявления точек отказа.
Конфигурация
stress_test:
start_load: 100
increment: 50
max_load: 2000
Ключевые Метрики
- Response Time: > 5x норма
- Error Rate: > 5%
- CPU Usage: > 90%
- Recovery Time: < 5 мин
Volume Testing
Определение
Оценивает производительность системы при обработке больших объемов данных.
Конфигурация
volume_test:
database_records: 10_million
file_size: 1_GB
batch_size: 100_000
Сценарии
-- Тест базы данных
INSERT INTO orders
SELECT * FROM generate_series(1, 10000000);
«Команды часто путают stress и volume testing, потому что оба “нагружают систему”. Но разница принципиальная: stress testing показывает, как масштабируется инфраструктура горизонтально, а volume testing — как масштабируется слой данных с ростом числа записей. Я видел системы, которые спокойно держали 50 000 одновременных пользователей, но падали при отчёте по 200 миллионам строк.» — Yuri Kan, Senior QA Lead
Ключевые Различия
| Аспект | Stress Testing | Volume Testing |
|---|---|---|
| Фокус | Пределы системы | Обработка данных |
| Тип Нагрузки | Одновременные пользователи | Объем данных |
| Цель | Точка отказа | Валидация обработки данных |
Заключение
Stress testing выявляет пределы системы, в то время как volume testing валидирует возможности обработки данных. Оба необходимы для комплексных стратегий тестирования производительности.
Официальные ресурсы
- Глоссарий ISTQB — Stress Testing — официальное определение ISTQB стресс-тестирования как типа нефункционального тестирования
- Документация k6 — Stress Testing — практические примеры конфигурации стресс-тестов с постепенным наращиванием нагрузки
- Web Performance
- Core Web Vitals
See Also
- Performance Testing: от нагрузки до стресса - Полное руководство по тестированию производительности: JMeter,…
- DDoS Testing: Тестирование Устойчивости Системы - Тестирование устойчивости DDoS: симуляция атак, rate limiting,…
- Burp Suite для QA-Инженеров: Полное Руководство по Security Testing - Security testing с Burp: настройка proxy, scanner, intruder,…
- Database Performance Testing: Оптимизация Запросов - Тестирование оптимизации БД: производительность запросов,…
