Стрес-тестування (Stress Testing) — це тип нефункціонального тестування, який визначає, як система поводиться при надмірному навантаженні або в екстремальних умовах.
Мета — з’ясувати:
- Яку максимальну кількість навантаження система здатна витримати
- Як система реагує на перевантаження
- Наскільки швидко вона відновлюється після збою
Навіщо проводити стрес-тестування?
Реальні ситуації, коли система може вийти з ладу через навантаження:
- Масовий вхід на сайт в Чорну п’ятницю
- Реліз гри або оновлення популярного застосунку
- Публікація результатів вступної кампанії
Система має не просто впоратися з піковим навантаженням, а й коректно повідомити користувача про помилки або затримки, зберегти цілісність даних і стабільно відновитись.
Відмінність від Load Testing
- Load Testing: імітує навантаження в межах нормального використання
- Stress Testing: перевищує очікуване навантаження для виявлення критичних точок
Приклад: Вебсайт інтернет-магазину
Сайт розраховано на 500 користувачів одночасно. Стрес-тест симулює:
- 600 користувачів — система сповільнюється
- 800 — деякі сервіси зависають
- 1000 — сайт падає
Ціль: зафіксувати, на якому етапі система відмовляє та як поводиться після зниження навантаження.
Важливі метрики
- Response Time — як довго відповідає система
- Throughput — кількість запитів за секунду
- Error Rate — відсоток невдалих запитів
- CPU/Memory Usage — ресурсне споживання
- Recovery Time — скільки часу потрібно для відновлення
Інструменти
- Apache JMeter
- Locust
- Gatling
- k6
- Artillery
Висновок
Стрес-тестування допомагає:
- Виявити вузькі місця системи
- Підвищити стійкість до пікових навантажень
- Гарантувати безпечний досвід для користувача навіть у критичних ситуаціях
У сучасному цифровому світі стійкість до стресу — це частина якості. Ігнорування цього виду тестування може призвести до втрати користувачів, прибутку і репутації.