Какво е Spike Testing в софтуерното тестване? Учете с пример
⚡ Умно обобщение
Тестването на пикове подлага приложението на внезапен, екстремен скок в натоварването и след това го премахва също толкова рязко. Целта е да се установи дали системата оцелява след шока и, също толкова важно, дали се възстановява след това.

Какво е Spike Testing?
Спайк тестване е вид софтуерно тестване, при което софтуерно приложение се тества с екстремни увеличения и намаления на трафика. Основната цел на пиковото тестване е да се оцени поведението на софтуерното приложение при внезапно увеличение или намаляване на потребителското натоварване и да се определи времето за възстановяване след скок на потребителското натоварване.
Спайк тестването се извършва за оценка на слабостите на софтуерните приложения.

Цели на тестването на шипове
Целта на тестването на Spike е да се види как системата реагира на неочаквано нарастване и спад на потребителското натоварване. В софтуерното инженерство Spike тестването помага да се определи дали производителността на системата ще се влоши, когато има внезапно високо натоварване.
Друга цел на Spike Testing е да се определи времето за възстановяване. Между два последователни пика на потребителско натоварване системата се нуждае от известно време, за да се стабилизира. Това време за възстановяване трябва да бъде възможно най-кратко.
Как да направите Спайк тестване
Ето простите стъпки за извършване на Spike Testing:
Стъпка 1) Определете капацитета на натоварване
Определете максималния потребителски капацитет на натоварване на вашето софтуерно приложение.
Стъпка 2) Подгответе тестовата среда
Подгответе тестовата среда и я конфигурирайте да записва параметри за производителност.
Стъпка 3) Дефинирайте очакваното натоварване
Приложете очакваното максимално натоварване към вашето софтуерно приложение, като използвате a Инструмент за тестване на ефективността по ваш избор.
Стъпка 4) Увеличете натоварването
Бързо увеличаване на натоварването на системата за определен период.
Стъпка 5) Задайте натоварването обратно на нормално
Постепенно намалете натоварването до първоначалното му ниво.
Стъпка 6) Анализирайте резултатите
Анализирайте графиките на ефективността и показателите като неуспехи, отнето време, виртуални потребители и др.
Примери за сценарии за пиково тестване
- Когато магазин за електронна търговия пуска специални оферти със страхотни отстъпки, като например Черен петък.
- Когато уеб приложение предава на живо любима телевизионна програма.
- Когато тече бърза разпродажба на сайт за ежедневни сделки.
- Когато определено съдържание на даден сайт стане вирусно в интернет.
- Нова система е пусната за производство и множество потребители искат достъп до системата.
- Прекъсването на захранването може да доведе до загуба на достъп до системата на всички потребители. След като проблемът с прекъсването е решен, всички потребители влизат отново в системата едновременно.
Сценарии за възстановяване при пикови натоварвания
Три основни сценария за възстановяване, които могат да бъдат конфигурирани да предпазват от шипове, са:
- Използвайте облачни платформи като AWS, Azure за динамично увеличаване на капацитета на сървъра в тандем с потребителското натоварване
- Не позволявайте достъп до приложението на някои потребители, така че системата да не е изправена пред голямо натоварване. Това спира влизането на хора над максималния проектиран товар в системата. Така предпазва системата от заплахата от прекомерно натоварване.
- Администраторът на сайта позволява на потребителите да се присъединят към системата. Въпреки това с предупреждение, че може да се сблъскат с бавна реакция поради голямо натоварване. Това може да доведе до неблагоприятен ефект върху производителността на системата. Потребителят обаче ще може да работи със системата.
Предимства и недостатъци на тестването с шипове
По-долу са посочени предимствата и недостатъците на Spike Testing:
| Предимства | Недостатъци |
|---|---|
| Ефективността на софтуера трябва да се поддържа на всяка цена. Въпреки това, когато има екстремно увеличение на натоварването на която и да е система, има големи шансове за проблеми. Spike Testing помага да се тества такъв сценарий. | Единственият недостатък на Spike Testing е, че това е скъп процес на тестване. Така че беше необходимо да се създадат специални условия за тестване. Въпреки това, при по-голяма продължителност, това със сигурност ще даде положителна възвръщаемост на инвестициите. |
| При стандартния метод за тестване лошите до най-лошите сценарии може да не бъдат разгледани. Пренебрегването им обаче не означава, че никога няма да се появят. Следователно всеки софтуер трябва да е готов за такива възможности. Един такъв най-лош сценарий е натоварването, което може да бъде преценено и сведено до минимум с помощта на пиково тестване. |
Инструменти за тестване на шипове
1) JMeter
- Apache JMeter е инструмент за пиково тестване на Java с отворен код. Той е специално проектиран да зарежда функционално тестово поведение и да измерва производителността. Този инструмент за тестване на ефективността може да се използва за анализиране и измерване на ефективността на уеб приложение или различни услуги. Днес той се използва широко за функционален тест, тест на сървър на база данни.
2) LoadRunner
LoadRunner е инструмент за тестване на натоварване за Windows и Linux, което позволява пиково тестване на уеб и други приложения. Помага да се определи ефективността и резултата от приложението дори при голямо натоварване.
Как този тест се вписва в семейството на тестовете за производителност
Тестването на производителността е общ термин. Вариантите по-долу се различават само по формата на приложеното натоварване и продължителността на задържането му, поради което толкова често се бъркат един с друг.
| Тип на теста | Модел на натоварване | Въпрос, на който отговаря |
|---|---|---|
| Тестване на натоварването | Очаквано пиково натоварване, кратка продължителност | Постига ли системата целите си при нормален пиков трафик? |
| Стрес тестове | Увеличено отвъд капацитета до повреда | Къде се чупи и дали се поврежда грациозно? |
| Спайк тестване | Внезапен екстремен скок, след това отдръпване | Оцелява ли и възстановява ли се от шок в трафика? |
| Тест за издръжливост | Нормално натоварване, задържано в продължение на много часове | Влошава ли се производителността с течение на времето? |
| Тестване с накисване | Постоянно натоварване за продължителен период от време | Има ли изтичане на памет или изчерпване на ресурсите? |
| Тестване на стабилност | Променливо натоварване при различни условия | Системата остава ли надеждна при промяна на условията? |
| Обемно тестване | Нормални потребители, много голям обем данни | Справя ли се с нарастването на базата данни? |
Изпитването за издръжливост и изпитването за накисване често се третират като синоними. В обща употреба те са: и двата теста задържат постоянно натоварване за дълъг период. Когато екипите ги разграничават, тестовете за издръжливост се фокусират върху това дали времето за реакция се увеличава, докато тестовете за soak се фокусират върху консумацията на ресурси, като памет, файлови манипулатори и пулове за връзки. Изпълнението на един от тях обикновено ви дава доказателства и за двата.
Ключови показатели за отчитане по време на теста
Едно изпълнение за оценка на производителността е толкова добро, колкото е добро това, което записвате, докато се изпълнява. Запишете тези шест показателя на сървъра и клиента, след което ги сравнете с базовата линия, а не с интуицията си.
| метричен | Какво ви казва | Предупредителен знак |
|---|---|---|
| Средно време за реакция | Типично потребителско изживяване | Всяко отклонение нагоре по трасето |
| Време за отговор на 95-ия персентил | Опитът на най-бавните потребители | Далеч над средното, което означава непоследователност |
| магистрала | Заявки, обработени в секунда | Падане, докато товарът остава постоянен |
| Степен на грешки | Дял на неуспешни или изтекли заявки | Всяко покачване над договорения праг |
| Използване на процесора и паметта | Свободен капацитет на сървърните ресурси | Спомен, който се изкачва и никога не се връща |
| Връзки и нишки към базата данни | Изтощение в басейна | Брой, който расте постоянно без освобождаване |
Прочетете средната стойност и процентила заедно. Средно време от 800 ms с 95-ти персентил от 900 ms описва последователна система. Същата средна стойност с 95-ти персентил от 9 секунди означава, че един потребител на двадесет се справя зле, а средната стойност го крие.
Обърнете внимание на формата, не само на стойността. При всеки продължителен тест, равна линия на ресурса е преминал тест, а нарастваща е теч, дори когато абсолютното число е все още удобно в рамките на лимита в момента, в който тестът приключи.
Тестване на шипове: Ключови изводи
- тестване на софтуер е вид софтуерно тестване, при което софтуерно приложение се тества с екстремни увеличения и намаления на трафика.
- Правилният подход за извършване на пиково тестване е неочаквано увеличаване на броя на потребителите, последвано от незабавно намаляване на натоварването.
- Неочакваното натоварване е основният атрибут на сделката.
- Примери за реални сценарии за тестване на Spike са – когато магазин за електронна търговия пуска специални оферти със страхотни отстъпки, като например Черен петък. Като алтернатива, когато уеб приложение предава на живо любима телевизионна програма.
- JMeter е един такъв полезен инструмент за извършване на пикови тестове.
