Unetway

Стресс-тестирование

Стресс-тестирование (англ. Stress Testing) — один из видов тестирования программного обеспечения, которое оценивает надёжность и устойчивость системы в условиях превышения пределов нормального функционирования. 

Стресс-тестирование особенно необходимо для «критически важного» ПО, однако также используется и для остального ПО. Обычно стресс-тестирование лучше обнаруживает устойчивость, доступность и обработку исключений системой под большой нагрузкой, чем то, что считается корректным поведением в нормальных условиях.
Термин «стресс-тестирование» часто используется как синоним «нагрузочного тестирования», а также «тестирования производительности», что ошибочно, так как эти виды тестирования отвечают на разные бизнес-вопросы и используют различную методологию.

В общем случае методология стресс-тестирования основана на снятии и анализе показателей производительности приложения при нагрузках, значительно превышающих ожидаемые на стадии сопровождения и несёт в себе цель определить выносливость или устойчивость приложения на случай всплеска активности по его использованию.

Необходимость стресс-тестирования диктуется следующими факторами:

  • Большая часть всех систем разрабатываются с допущением о функционировании в нормальном режиме и даже в случае, когда допускается возможность увеличения нагрузки, реальные объёмы её увеличения не принимаются во внимание.
  • В случае SLA-контракта (соглашения об уровне услуг) стоимость отказа системы в экстремальных условиях может быть очень велика.
  • Обнаружение некоторых ошибок или дефектов в функционировании системы не всегда возможно с использованием других типов тестирования. 
  • Тестирования, проведенного разработчиком, может быть недостаточно для эмуляции условий, при которых происходит отказ системы.
  • Предпочтительнее быть готовым к обработке экстремальных условий системы, чем ожидать её отказа.

Основные направления применения стресс-тестирования:

1.  Общее исследование поведения системы при пиковых нагрузках.
2.  Исследование обработки ошибок и исключительных ситуаций 
системой при пиковых нагрузках.
3.  Исследование узких мест системы или отдельных компонент при 
диспропорциональных нагрузках.
4.  Тестирование ёмкости системы.

Стресс-тестирование, как и нагрузочное тестирование, также может быть использовано для регулярной оценки изменений производительности с целью получения для дальнейшего анализа динамики изменения поведения системы за длительный период.