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 TestingVolume Testing
ФокусПределы системыОбработка данных
Тип НагрузкиОдновременные пользователиОбъем данных
ЦельТочка отказаВалидация обработки данных

Заключение

Stress testing выявляет пределы системы, в то время как volume testing валидирует возможности обработки данных. Оба необходимы для комплексных стратегий тестирования производительности.

Официальные ресурсы

See Also