Какво е STRESS тестване в софтуерното тестване?
⚡ Умно обобщение
Стрес тестовете изтласкат приложението отвъд нормалните му оперативни граници, за да открият точката на пречупване, да потвърдят, че повреди се обработват грациозно и да докажат, че системата се възстановява безпроблемно след премахване на екстремното натоварване.
Какво е стрес тестване?
Стресиране е вид софтуерно тестване, което проверява стабилността и надеждността на софтуерно приложение. Целта на стрес тестването е да се измери софтуерът по отношение на неговата устойчивост и възможности за обработка на грешки при изключително тежки условия на натоварване и да се гарантира, че софтуерът няма да се срине в критични ситуации. То целенасочено тества извън нормалните работни точки и оценява как софтуерът се държи при екстремни условия.
При стрес тестване, тестваното приложение (AUT) се подлага на стрес за кратък период от време, за да се установи неговата издръжливост. Най-известното приложение на стрес тестването е да се определи границата, при която системата, софтуерът или хардуерът се повреждат. То също така проверява дали системата демонстрира ефективно управление на грешките, след като тази граница бъде премината.
In Софтуерно инженерствоСтрес тестовете често са изброени редом с Тест за издръжливост, но двете се различават: Стрес тестът прилага необичайно високо натоварване в кратък импулс, за да се намери точката на счупване, докато тестът за издръжливост (накисване) задържа умерено натоварване в продължение на часове, за да се разкрие постепенното влошаване.
Екранната снимка по-долу показва голям блок данни, който се копира от уеб страница.
Тестваното приложение е натоварено, когато 5 GB данни бъдат копирани от уебсайта и поставени в Notepad. Notepad вече е под напрежение и връща съобщение за грешка „Не отговаря“, точно както е показано на следващата екранна снимка.
Същият принцип се мащабира директно към сървърни системи.
Необходимост от стрес тестване
Разгледайте следните примери в реално време, където използването на стрес тестове става очевидно:
- По време на фестивала, онлайн магазинping сайтът може да отбележи скок в трафика или когато обяви разпродажба.
- Когато блог се споменава във водещ вестник, той преживява внезапен скок в трафика.
Наложително е да се извърши стрес тестване, за да се справят с подобни необичайни пикове на трафика. Неспазването на този внезапен трафик може да доведе до загуба на приходи и репутация.
Стрес тестовете са изключително ценни и поради следните причини:
- Проверява дали системата работи при необичайни условия.
- Това потвърждава, че се показва подходящо съобщение за грешка, докато системата е под напрежение.
- Системна повреда при екстремни условия може да доведе до огромна загуба на приходи.
- По-добре е да сте подготвени за екстремни условия, като извършите стрес тестове предварително.
В следващия раздел е посочено какво трябва да докаже един успешен стрес тест.
Цели на стрес тестовете
Целта на стрес тестването е да се анализира поведението на системата след повреда. За да бъде стрес тестването успешно, системата трябва да показва подходящо съобщение за грешка, докато е в екстремни условия.
За провеждане на стрес тестове понякога се използват огромни масиви от данни и тези данни могат да бъдат загубени, докато системата не работи. Тестерите трябва да гарантират, че тези данни, свързани със сигурността, не се губят по време на стрес тестовете.
Основната цел на стрес тестовете е да се гарантира, че системата се възстановява след повреда, свойство, наречено възстановимост. Тестване за възстановяване след това проверява подробно тази процедура за възстановяване.
Тестване на натоварване срещу стрес тестване
И двете техники принадлежат към Тестване на производителността семейство, така че е лесно да се объркат. Диаграмата по-долу сравнява двата профила на натоварване.
| Тестване на товара | Стресиране |
|---|---|
| Тестване на товара тества поведението на системата при нормални условия на натоварване; симулира действителното очаквано натоварване. | Стрес тестовете тестват поведението на системата при екстремни условия и се провеждат, докато системата не се повреди. |
| Тестването под натоварване не нарушава системата. | Стрес тестовете умишлено се опитват да разрушат системата, като я претоварват с данни или ѝ лишават от ресурси. |
Свързаните профили включват Спайк тестване (внезапен кратък взрив), Тестване на обема (големи данни, а не много потребители) и Тестване на скалируемост (простор за растеж).
Видове стрес тестове
Следват видовете стрес тестове, обяснени един по един.
Разпределено стрес тестване
В разпределените клиент-сървър системи, тестването се извършва на всички клиенти от сървъра. Ролята на стрес сървъра е да разпространява набор от стрес тестове до всички стрес клиенти и да... track състоянието на всеки клиент. След като клиент се свърже със сървъра, сървърът добавя името на клиента и започва да изпраща данни за тестване. Фигурата по-долу показва как стрес сървърът достига до някои клиенти, но не до други.
Междувременно клиентските машини изпращат сигнал или „пулс“, потвърждаващ, че все още са свързани със сървъра. Ако сървърът не получава никакъв сигнал от клиентска машина, тази машина трябва да бъде допълнително проверена за отстраняване на грешки. На фигурата сървърът може да се свърже с 2 клиента (Клиент1 и Клиент2), но не може да изпраща или получава сигнал от Клиент 3 и Клиент 4.
Нощното тестване е най-добрият вариант за тези сценарии на стрес тестване. Големите сървърни ферми се нуждаят от по-ефективен метод за определяне кои компютри са имали повреди от стрес, които трябва да бъдат разследвани.
Стрес тестване на приложенията
Това тестване се концентрира върху откриването на дефекти, свързани със заключване и блокиране на данни, мрежови проблеми и пречки в производителността в едно приложение.
Транзакционно стрес тестване
Извършва стрес тестове на една или повече транзакции между две или повече приложения. Използва се за фина настройка и оптимизиране на системата.
Системно стрес тестване
Това е интегрирано стрес тестване, което може да се проведе на множество системи, споделящи един и същ сървър. Използва се за откриване на дефекти, при които едно приложение блокира данните на друго приложение.
Проучвателно стрес тестване
Това е видът стрес тестване, използвано за тестване на системата с необичайни параметри или условия, които е малко вероятно да се случат в реален сценарий. Използва се за откриване на дефекти в неочаквани ситуации, като например:
- Голям брой потребители са влезли едновременно.
- Скенер за вируси, стартиращ едновременно на всички машини.
- База данни, която преминава в офлайн режим, докато се осъществява достъп до нея от уебсайт.
- Голям обем данни, които се въвеждат едновременно в базата данни.
Независимо кой вариант се прилага, последователността на изпълнение остава същата.
Как се прави стрес тест?
Процесът на стрес тестване може да се извърши в 5 основни стъпки:
- Стъпка 1) Планиране на стрес теста: Тук събирате системните данни, анализирате системата и определяте целите на стрес теста.
- Стъпка 2) Създайте скриптове за автоматизация: В тази фаза създавате скриптове за автоматизация на стрес тестовете и генерирате тестовите данни за стрес сценариите.
- Стъпка 3) Изпълнение на скрипт: На този етап изпълнявате скриптовете за автоматизация на стрес тестовете и съхранявате резултатите от стрес тестовете.
- Стъпка 4) Анализ на резултатите: На този етап анализирате резултатите от стрес теста и идентифицирате пречките.
- Стъпка 5) Настройка и оптимизация: На този етап, вие фино настройвате системата, променяте конфигурациите и оптимизирате кода с цел постигане на желания бенчмарк.
Накрая, изпълнявате целия цикъл отново, за да определите дали промените са довели до желаните резултати. Например, не е необичайно да са необходими 3 до 4 цикъла на процеса на стрес тестване, преди да бъдат постигнати целите за производителност, така че скриптовете обикновено се поддържат заедно с регресия нататък.
Препоръчителни инструменти за стрес тестове
Четирите инструмента по-долу покриват повечето нужди, от корпоративни пакети до безплатна опция с отворен код.
LoadRunner
LoadRunner е широко използван инструмент за тестване на натоварване, който сега се продава от OpenText в Professional, Enterprise и Cloud издания след преминаване от HP към Micro Focus OpenTextРезултатите от тестовете за натоварване, получени от LoadRunner, се третират като бенчмарк.
JMeter
Apache JMeter е инструмент за тестване с отворен код. Той е чист Java приложение за стрес и производителност тестове и е предназначено да обхване типове тестове като натоварване, функционални и стрес тестове. Текущите версии 5.6.x на Apache JMeter изисква Java 8 или по-късно, с Java 17 препоръчителни.
Стрес тестер
Този инструмент предоставя обширен анализ на производителността на уеб приложенията, представя резултатите в графичен формат и е лесен за използване. Не се изисква писане на скриптове на високо ниво, което поддържа възвръщаемостта на инвестициите ниска.tracтивно за по-малки екипи.
NeoНатоварване
NeoНатоварване, сега част от Tricentis портфолио, е популярен инструмент за тестване на уеб и Мобилни приложенияМоже да симулира хиляди потребители, за да оцени производителността на приложенията под натоварване и да анализира времената за реакция. Също така поддържа интегрирани в облака тестове за производителност, натоварване и стрес, и се мащабира добре.
Повече опции са изброени в ръководството за инструменти за тестване на ефективността; който и да е избран, резултатът му означава нещо само спрямо показателите по-долу.
Метрики за стрес тестване
Метриките помагат за оценка на производителността на системата и обикновено се изучават в края на стрес теста. Често използваните показатели са групирани в три семейства.
Измерване на мащабируемост и производителност
- Страници в секунда: Измерва колко страници са заявени в секунда.
- Пропускателна: Основна метрика — размер на данните за отговор в секунда.
- кръгове: Броят пъти, в които са били планирани тестови сценарии, спрямо броя пъти, в които клиентът ги е изпълнил.
Отговор на приложението
- Време на удара: Средно време за извличане на изображение или страница.
- Време до първия байт: Времето, необходимо за връщане на първия байт данни или информация.
- Време на страницата: Време, необходимо за извличане на цялата информация на страницата.
Повреди
- Неуспешни връзки: Брой неуспешни връзки, отказани от клиента (слаб сигнал).
- Неуспешни рундове: Брой неуспешни рундове.
- Неуспешни попадения: Брой неуспешни опити на системата (счупени връзки или невидими изображения).
В заключителния раздел са изброени ситуациите, които най-често оправдават провеждането на стрес тест.
Примери за стрес тестове
Стрес тестовете си заслужават мястото винаги, когато се очаква дадено събитие да увеличи трафика значително над дневната базова линия:
- Уебсайт за електронна търговия, обявяващ фестивална разпродажба.
- Новинарски уебсайт по време на важно събитие.
- Образователен съвет публикува резултатите от изпитите.
- Сайтове за социални мрежи, блогове и мобилни приложения по време на вирусен момент.
Във всеки случай тестът следи ресурси като памет, процесор и мрежа, проверява дали се появяват подходящи съобщения за грешки при натоварване и потвърждава, че системата се връща към нормалното си състояние след това. Той се вписва в жизнен цикъл на софтуерно тестване като нефункционална проверка наред с Тестване на системата и по-широкият набор от видове софтуерно тестване.

.png)
.png)

