Що таке Spike Testing у тестуванні програмного забезпечення? Навчайтеся на прикладі

⚡ Розумний підсумок

Тестування на пікове навантаження піддає програму раптовому, екстремальному стрибку навантаження, а потім так само різко його відключає. Мета полягає в тому, щоб з'ясувати, чи витримає система стрибок і, що не менш важливо, чи відновиться вона після нього.

  • Схема навантаження: Різке підвищення, значно вище звичайного руху, ненадовго затримане, а потім зникне.
  • 🎯 Основна мета: Встановіть, чи дає система збій, і чи дає вона збій коректно.
  • 🔄 Важливість відновлення: Повернення до нормального часу реакції після сплеску так само важливо, як і його переживання.
  • 📈 Реалістичні тригери: Блискавичні продажі, випуск квитків, вірусний трафік та заплановані пакетні завдання.
  • 🛠️ інструменти: JMeter і LoadRunner моделюють миттєве, а не поступове нарощування.
  • 📊 Що подивитись: Коефіцієнт помилок, глибина черги та час, необхідний для повернення до базового рівня.

Що таке спайкове тестування

Що таке Spike Testing?

Спайк тестування це тип тестування програмного забезпечення, у якому програмне забезпечення тестується з екстремальними збільшеннями та зменшенням навантаження на трафік. Основна мета стрибкоподібного тестування — оцінити поведінку програмного забезпечення під час раптового збільшення або зменшення навантаження користувача та визначити час відновлення після стрибка навантаження користувача.

Спайк-тестування виконується для оцінки слабких місць програмних додатків.

Спайк тестування
Спайк тестування

Цілі спайкового тестування

Мета тестування Spike — побачити, як система реагує на неочікуване зростання та падіння навантаження користувача. У програмній інженерії Spike-тестування допомагає визначити, чи погіршиться продуктивність системи під час раптового високого навантаження.

Ще одна мета Spike Testing – визначити час відновлення. Між двома послідовними стрибками навантаження користувача системі потрібен деякий час для стабілізації. Цей час відновлення має бути якомога коротшим.

Як проводити Спайк-тестування

Нижче наведено прості кроки для проведення Spike Testing:

Крок 1) Визначте вантажопідйомність

Визначте максимальне користувацьке навантаження програми.

Крок 2) Підготуйте тестове середовище

Підготуйте середовище тестування та налаштуйте його для запису параметрів продуктивності.

Крок 3) Визначте очікуване навантаження

Застосуйте очікуване максимальне навантаження до вашої програмної програми за допомогою a Інструмент тестування продуктивності За вашим вибором.

Крок 4) Збільште навантаження

Швидко збільшити навантаження на систему протягом встановленого періоду.

Крок 5) Встановіть для параметра «Навантаження» значення «Звичайне».

Поступово зменшуйте навантаження до початкового рівня.

Крок 6) Проаналізуйте результати

Проаналізуйте графіки ефективності та показники, такі як невдачі, витрачений час, віртуальні користувачі тощо.

Приклади сценаріїв спайк-тестування

  • Коли магазин електронної комерції запускає спеціальні пропозиції з великими знижками, наприклад у Чорну п’ятницю.
  • Коли веб-програма транслює улюблену телепрограму в прямому ефірі.
  • Коли відбувається швидкий розпродаж на сайті щоденних угод.
  • Коли певний вміст сайту стає вірусним в Інтернеті.
  • Нова система випущена для виробництва, і кілька користувачів хочуть отримати доступ до системи.
  • Через відключення електроенергії всі користувачі можуть втратити доступ до системи. Після вирішення проблеми з відключенням усі користувачі одночасно ввійшли в систему.

Сценарії відновлення при різких навантаженнях

Три основні сценарії відновлення, які можна налаштувати для захисту від спайків:

  1. Використовуйте такі хмарні платформи, як AWS, Azure динамічно збільшувати потужність сервера в тандемі з навантаженням користувача
  2. Не дозволяйте доступ до програми деяким користувачам, щоб система не зазнавала великого навантаження. Це запобігає входу в систему людей, які перевищують максимальне проектне навантаження. Таким чином захищає систему від загрози надмірного навантаження.
  3. Адміністратор сайту дозволяє користувачам приєднуватися до системи. Однак із застереженням, що вони можуть зіткнутися з повільною реакцією через велике навантаження. Це може призвести до негативного впливу на продуктивність системи. Однак користувач зможе працювати з системою.

Переваги та недоліки спайкового тестування

Нижче наведено переваги та недоліки спайк-тестування:

Переваги Недоліки
Продуктивність програмного забезпечення має підтримуватися будь-якою ціною. Однак, коли навантаження будь-якої системи різко зростає, ймовірність виникнення проблем висока. Spike Testing допомагає перевірити такий сценарій. Єдиним недоліком Spike Testing є те, що це дорогий процес тестування. Тому потрібно було створити спеціальні умови тестування. Однак протягом більш тривалого періоду це, безумовно, дасть позитивну рентабельність інвестицій.
У стандартному методі тестування сценарії від поганого до найгіршого можуть не розглядатися. Однак ігнорування їх не означає, що вони ніколи не виникнуть. Тому будь-яке програмне забезпечення повинно бути готове до таких можливостей. Одним із таких найгірших сценаріїв є навантаження, яке можна оцінити та мінімізувати за допомогою тестування на стрибки.  

Інструменти тестування спайків

1) JMeter

Команда Apache JMeter це інструмент Java для тестування з відкритим вихідним кодом. Він спеціально розроблений для завантаження поведінки функціонального тесту та вимірювання продуктивності. Цей інструмент тестування продуктивності можна використовувати для аналізу та вимірювання продуктивності веб-додатків або різноманітних служб. Сьогодні він широко використовується для функціонального тестування, тестування сервера бази даних.

2) LoadRunner

LoadRunner — це інструмент для тестування навантаження Windows і Linux, що дозволяє швидко тестувати веб та інші програми. Це допомагає визначити продуктивність і результат застосування навіть при великому навантаженні.

Як цей тест підходить для сімейства тестів продуктивності

Тестування продуктивності – це загальний термін. Варіанти, наведені нижче, відрізняються лише формою прикладеного навантаження та тривалістю його утримання, тому їх так часто плутають один з одним.

Тип тесту Схема навантаження Питання, на яке воно відповідає
Тестування навантаженням Очікуване пікове навантаження, короткочасна тривалість Чи досягає система своїх цілей за нормальних пікових навантажень?
Стресові випробування Збільшення за межі ємності до відмови Де воно ламається, і чи виходить з ладу належним чином?
Спайкове тестування Раптовий екстремальний сплеск, потім відмова Чи виживе воно та відновиться після дорожнього шоку?
Випробування на витривалість Нормальне навантаження витримується протягом багатьох годин Чи знижується продуктивність з часом?
Випробування замочуванням Постійне навантаження протягом тривалого періоду Чи є витоки пам'яті або виснаження ресурсів?
Тестування стабільності Зміна навантаження залежно від умов Чи залишається система надійною, коли умови змінюються?
Об'ємне тестування Звичайні користувачі, дуже великий обсяг даних Чи справляється воно зі зростанням бази даних?

Випробування на витривалість та замочування часто розглядаються як синоніми. У загальному вжитку це: обидва витримують стійке навантаження протягом тривалого періоду. Там, де команди їх розрізняють, тестування на витривалість зосереджується на тому, чи збільшується час відгуку, тоді як тестування на замочування зосереджується на споживанні ресурсів, таких як пам'ять, дескриптори файлів та пули підключень. Запуск одного з них зазвичай дає докази для обох.

Ключові показники для відстеження під час тестування

Якість продуктивності залежить від того, як добре ви записуєте під час його виконання. Зафіксуйте ці шість показників на стороні сервера та клієнта, а потім порівняйте їх з базовим рівнем, а не з інтуїцією.

Metric Що це вам говорить Попереджувальний знак
Середній час відгуку Типовий досвід користувача Будь-який висхідний дрейф поперек траси
Час відповіді 95-го процентиля Досвід найповільніших користувачів Значно вище середнього, що означає нестабільність
Пропускна здатність Запитів, оброблених за секунду Падіння при постійному навантаженні
Частота помилок Частка невдалих або запитів, що минули за часом Будь-яке підвищення вище узгодженого порогу
Використання процесора та пам'яті Запас ресурсів сервера Пам'ять, що піднімається і ніколи не повертається
Підключення до бази даних та потоки Виснаження в басейні Кількість, яка постійно зростає без релізу

Прочитайте середнє значення та процентиль разом. Середнє значення 800 мс з 95-м процентилем 900 мс описує стабільну систему. Таке ж середнє значення з 95-м процентилем 9 секунд означає, що один користувач з двадцяти переживає невдалі часи, і середній показник це приховує.

Звертайте увагу на форму, а не лише на значення. У будь-якому тривалому тесті рівна лінія ресурсу вважається пройденим, а зростаюча – витоком, навіть якщо абсолютне число все ще комфортно знаходиться в межах ліміту на момент завершення тесту.

Тестування спайків: ключові висновки

  • тестування програмного забезпечення це тип тестування програмного забезпечення, у якому програмне забезпечення тестується з екстремальними збільшеннями та зменшенням навантаження на трафік.
  • Правильний підхід до проведення тестування на стрибки полягає в тому, щоб несподівано збільшити кількість користувачів із наступним негайним зменшенням навантаження.
  • Несподіване навантаження - головний атрибут угоди.
  • Приклади реальних сценаріїв тестування Spike: коли магазин електронної комерції запускає спеціальні пропозиції з великими знижками, наприклад у Чорну п’ятницю. Крім того, коли веб-програма транслює улюблену телепрограму в прямому ефірі.
  • JMeter є одним із таких корисних інструментів для тестування на стрибки.

Поширені запитання

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

Система, яка продовжує працювати, але ніколи не повертається до нормального часу відгуку, все одно підводить користувачів, які приходять після піку. Час відновлення – це показник, який відображає реальний вплив на бізнес.

Базуйте його на реальній події, а не на круглому числі. Історичний трафік від минулого продажу чи запуску, помножений на очікуване зростання з того часу, дає обґрунтовану ціль.

Моделі штучного інтелекту, навчені на основі історичних даних про трафік, маркетингових календарів та зовнішніх сигналів, прогнозують, коли відбудуться сплески, що дозволяє командам заздалегідь масштабувати інфраструктуру, а не реагувати постфактум.

Так. Інструменти штучного інтелекту можуть отримувати профілі піків із журналів доступу до виробництва, відтворюючи справжню форму минулих сплесків, а не штучну стрибкову зміну.

Підсумуйте цей пост за допомогою: