Що таке СТРЕСС-тестування в програмному тестуванні?
Стрес-тестування
Стрес-тестування це тип тестування програмного забезпечення, який перевіряє стабільність і надійність програмного забезпечення. Мета стрес-тестування полягає в тому, щоб оцінити надійність програмного забезпечення та можливості обробки помилок за умов надзвичайно високого навантаження, а також гарантувати, що програмне забезпечення не аварійно завершує роботу в критичних ситуаціях. Він навіть перевіряє межі нормальних робочих точок і оцінює роботу програмного забезпечення в екстремальних умовах.
У розробці програмного забезпечення стрес-тестування також відоме як Випробування на витривалість. Під час стрес-тестування AUT піддається напрузі протягом короткого періоду часу, щоб дізнатися його здатність витримувати. Найбільш видатне використання Стрес-тестування полягає у визначенні межі, за якої система, програмне чи апаратне забезпечення виходить з ладу. Він також перевіряє, чи система демонструє ефективне керування помилками в екстремальних умовах.
Програма, що тестується, буде навантажена, коли 5 ГБ даних буде скопійовано з веб-сайту та вставлено в блокнот. Блокнот знаходиться під навантаженням і видає повідомлення про помилку «Не відповідає».
Необхідність стрес-тестування
Розглянемо наступні приклади в реальному часі, де ми можемо виявити використання стрес-тестування.
- Під час фестивалю сайт онлайн-магазинів може спостерігати сплеск трафіку або коли він оголошує розпродаж.
- Коли блог згадується у провідній газеті, він відчуває раптовий сплеск трафіку.
Необхідно виконати стрес-тестування, щоб пристосуватися до таких аномальних стрибків трафіку. Якщо не врахувати цей раптовий трафік, це може призвести до втрати прибутку та репутації.
Стрес-тестування також надзвичайно цінне з таких причин:
- Щоб перевірити, чи працює система за ненормальних умов.
- Відображення відповідного повідомлення про помилку, коли система перебуває під навантаженням.
- Збій системи за екстремальних умов може призвести до величезної втрати прибутку
- Краще бути готовим до екстремальних умов, виконавши Стрес-тестування.
Цілі стрес-тестування
Метою стрес-тестування є аналіз поведінки системи після збою. Щоб стрес-тестування було успішним, система повинна відображати відповідне повідомлення про помилку, коли вона знаходиться в екстремальних умовах.
Для проведення стрес-тестування іноді можуть використовуватися великі набори даних, які можуть бути втрачені під час стрес-тестування. Тестери не повинні втрачати дані, пов’язані з безпекою, під час виконання стрес-тестування.
Основна мета стрес-тестування - переконатися, що система відновлюється після збою, який називається as відновлюваність.
Тестування навантаження проти стрес-тестування
Тестування навантаження | Стрес-тестування |
---|---|
Тестування навантаження це тестування поведінки системи за нормальних умов робочого навантаження, і це просто тестування або моделювання з фактичним робочим навантаженням | Стрес-тестування призначене для перевірки поведінки системи в екстремальних умовах і проводиться до моменту відмови системи. |
Навантажувальне тестування не порушує систему | стрес-тестування намагається зламати систему шляхом тестування з величезною кількістю даних або ресурсів. |
Види стрес-тестування
Нижче наведено типи стрес-тестування, які пояснюються наступним чином:
Розподілене стрес-тестування:
У розподілених клієнт-серверних системах тестування виконується для всіх клієнтів від сервера. Роль стрес-сервера полягає в розповсюдженні набору стрес-тестів для всіх стрес-клієнтів і відстеженні статусу клієнта. Після зв’язку клієнта з сервером сервер додає ім’я клієнта та починає надсилати дані для тестування.
Тим часом клієнтські машини надсилають сигнал або серцевий сигнал, що вони підключені до сервера. Якщо сервер не отримує жодних сигналів від клієнтської машини, його необхідно додатково дослідити для налагодження. Як показано на малюнку, сервер може підключатися до 2 клієнтів (Клієнта 1 і Клієнта 2), але він не може надсилати або отримувати сигнал від Клієнтів 3 і 4.
Нічний запуск — найкращий варіант для виконання цих сценаріїв стрес-тестування. Великі серверні ферми потребують ефективнішого методу визначення того, які комп’ютери мали стресові збої, які потрібно дослідити.
Стрес-тестування програми:
Це тестування зосереджено на пошуку дефектів, пов’язаних із блокуванням і блокуванням даних, мережевими проблемами та вузькими місцями продуктивності програми.
Транзакційне стрес-тестування:
Він проводить стрес-тестування однієї або кількох транзакцій між двома чи більше програмами. Він використовується для точного налаштування та оптимізації системи.
Системне стрес-тестування:
Це комплексне стрес-тестування, яке можна протестувати на кількох системах, що працюють на одному сервері. Він використовується для пошуку дефектів, коли дані однієї програми блокують іншу програму.
Дослідницьке стрес-тестування:
Це один із типів стрес-тестування, який використовується для перевірки системи з незвичними параметрами або умовами, які навряд чи виникнуть у реальному сценарії. Він використовується для пошуку дефектів у неочікуваних сценаріях, наприклад
- Велика кількість користувачів увійшли одночасно
- Якщо сканер вірусів запускається на всіх машинах одночасно
- Якщо база даних перейшла в режим офлайн під час доступу до неї з веб-сайту,
- Коли в базу даних одночасно вставляється великий обсяг даних
Як провести стрес-тестування?
Процес стрес-тестування можна здійснити в 5 основних кроків:
Крок 1) Планування стрес-тесту: Тут ви збираєте системні дані, аналізуєте систему, визначаєте цілі стрес-тесту
Крок 2) Створіть сценарії автоматизації: На цьому етапі ви створюєте сценарії автоматизації стрес-тестування, генеруєте тестові дані для стрес-сценаріїв.
Крок 3) Виконання сценарію: На цьому етапі ви запускаєте сценарії автоматизації стрес-тестування та зберігаєте результати стрес-тестування.
Крок 4) Аналіз результатів: На цьому етапі ви аналізуєте результати стрес-тесту та визначаєте вузькі місця.
Крок 5) Налаштування та оптимізація: На цьому етапі ви точно налаштовуєте систему, змінюєте конфігурації, оптимізуєте код, щоб досягти бажаного рівня.
Нарешті, ви знову запускаєте весь цикл, щоб визначити, чи налаштування дали бажані результати. Наприклад, для досягнення поставлених цілей продуктивності не є чимось незвичайним, якщо потрібно провести 3–4 цикли стрес-тестування.
Інструменти, рекомендовані для стрес-тестування
LoadRunner
LoadRunner від HP — це широко використовуваний інструмент тестування навантаження. Результати навантажувальних тестів, сформовані Loadrunner, вважаються еталоном.
jmeter
Jmeter — це інструмент тестування з відкритим кодом. Це чистий Java застосування від стресу і Тестування продуктивності. Jmeter призначений для охоплення таких типів тестів, як навантаження, функціональність, стрес тощо. Для роботи потрібен JDK 5 або вище.
Стрес-тестер
Цей інструмент забезпечує детальний аналіз продуктивності веб-додатків, надає результати в графічному форматі та надзвичайно простий у використанні. Немає потреби у високорівневих сценаріях і забезпечує хорошу віддачу від інвестицій.
Neo загрузка
Це популярний на ринку інструмент для тестування Інтернету та Mobile програми. Цей інструмент може імітувати тисячі користувачів, щоб оцінити продуктивність програми під навантаженням і проаналізувати час відповіді. Він також підтримує інтеграцію в хмару – продуктивність, навантаження та стрес-тестування. Він простий у використанні, економічно ефективний і забезпечує хорошу масштабованість.
Метрики для стрес-тестування
Метрики допомагають оцінити продуктивність системи і зазвичай вивчаються наприкінці стрес-тесту. Зазвичай використовуються такі показники:
Вимірювання масштабованості та продуктивності
- Сторінок за секунду: вимірює кількість запитаних сторінок за секунду
- Пропускна здатність: базова метрика – розмір даних відповіді/секунду
- Раунди: кількість запланованих тестових сценаріїв у порівнянні з кількістю виконання клієнтом
Відповідь на заявку
- Час звернення: середній час для отримання зображення або сторінки
- Час до першого байта: час потрібен для повернення першого байта даних або інформації
- Час сторінки: час потрібен для отримання всієї інформації на сторінці
Невдачі
- Невдалі з’єднання: кількість невдалих з’єднань, відхилених клієнтом (слабкі Signal)
- Невдалі раунди: кількість невдалих раундів
- Невдалі звернення: кількість невдалих спроб, здійснених системою (зламані посилання або невидимі зображення)
Висновок
Метою стрес-тестування є перевірка системи в екстремальних умовах. Він відстежує системні ресурси, такі як пам’ять, процесор, мережа тощо, і перевіряє здатність системи відновлюватися до нормального стану. Він перевіряє, чи система відображає відповідні повідомлення про помилки під час навантаження.
Приклад стрес-тестування
- Сайт електронної комерції оголошує фестивальний розпродаж
- Веб-сайт новин під час деяких важливих подій
- Веб-сайт ради з питань освіти
- Сайти соціальних мереж або блоги, програми тощо