Какво е STRESS тестване в софтуерното тестване?
Стресиране
Стресиране е вид софтуерно тестване, което проверява стабилността и надеждността на софтуерното приложение. Целта на стрес тестовете е да се измери софтуера по отношение на неговата устойчивост и способности за обработка на грешки при условия на изключително тежко натоварване и да се гарантира, че софтуерът няма да се срине при кризи. Той дори тества извън нормалните работни точки и оценява как софтуерът работи при екстремни условия.
В софтуерното инженерство, стрес тестването е известно още като Тест за издръжливост. При стрес тестване, AUT се подлага на стрес за кратък период от време, за да се разбере неговият капацитет за издържане. Най-известна употреба на стрес тестването е да се определи границата, при която системата или софтуерът, или хардуерът се поврежда. Той също така проверява дали системата демонстрира ефективно управление на грешки при екстремни условия.
Тестваното приложение ще бъде натоварено, когато 5 GB данни се копират от уебсайта и се поставят в бележника. Notepad е под стрес и дава съобщение за грешка „Не е отговорено“.
Необходимост от стрес тестване
Разгледайте следните примери в реално време, където можем да открием използването на стрес тестване-
- По време на фестивала сайт за онлайн пазаруване може да стане свидетел на скок в трафика или когато обяви разпродажба.
- Когато блог се споменава във водещ вестник, той преживява внезапен скок в трафика.
Наложително е да се извърши стрес тестване, за да се приспособят такива необичайни пикове на трафика. Неспазването на този внезапен трафик може да доведе до загуба на приходи и репутация.
Стрес тестовете също са изключително ценни поради следните причини:
- За да проверите дали системата работи при необичайни условия.
- Показване на подходящо съобщение за грешка, когато системата е под напрежение.
- Срив на системата при екстремни условия може да доведе до огромна загуба на приходи
- По-добре е да сте подготвени за екстремни условия, като извършите стрес тестване.
Цели на стрес тестовете
Целта на стрес тестовете е да се анализира поведението на системата след повреда. За да бъде стрес тестът успешен, системата трябва да покаже подходящо съобщение за грешка, докато е в екстремни условия.
За провеждане на стрес тестване понякога могат да се използват масивни набори от данни, които могат да бъдат загубени по време на стрес тестване. Тестерите не трябва да губят тези данни, свързани със сигурността, докато правят стрес тестове.
Основната цел на стрес тестовете е да се гарантира, че системата се възстановява след повреда, която се нарича as възстановимост.
Тестване на натоварване срещу стрес тестване
Тестване на товара | Стресиране |
---|---|
Тестване на товара е да тества поведението на системата при нормални условия на работно натоварване и е просто тестване или симулиране с действителното работно натоварване | Стрес тестът е за тестване на поведението на системата при екстремни условия и се провежда до повреда на системата. |
Тестването на натоварването не нарушава системата | стрес тестването се опитва да разбие системата чрез тестване с огромно количество данни или ресурси. |
Видове стрес тестове
Следват видовете стрес тестове и са обяснени по следния начин:
Разпределено стрес тестване:
В разпределените системи клиент-сървър тестването се извършва на всички клиенти от сървъра. Ролята на стрес сървъра е да разпространява набор от стрес тестове до всички стрес клиенти и да проследява статуса на клиента. След като клиентът се свърже със сървъра, сървърът добавя името на клиента и започва да изпраща данни за тестване.
Междувременно клиентските машини изпращат сигнал или пулс, че са свързани със сървъра. Ако сървърът не получава никакви сигнали от клиентската машина, той трябва да бъде проучен допълнително за отстраняване на грешки. От фигурата сървърът може да се свърже с двата клиента (Клиент2 и Клиент1), но не може да изпраща или получава сигнал от Клиент 2 и 3.
Нощното изпълнение е най-добрият вариант за изпълнение на тези сценарии за стрес тестване. Големите сървърни ферми се нуждаят от по-ефективен метод за определяне кои компютри са имали стресови повреди, които трябва да бъдат проучени.
Стрес тестване на приложението:
Това тестване се концентрира върху намирането на дефекти, свързани със заключване и блокиране на данни, мрежови проблеми и затруднения в производителността на приложение.
Транзакционен стрес тест:
Той прави стрес тестове на една или повече транзакции между две или повече приложения. Използва се за фина настройка и оптимизиране на системата.
Системен стрес тест:
Това е интегриран стрес тест, който може да бъде тестван в множество системи, работещи на един и същи сървър. Използва се за намиране на дефекти, при които едно приложение блокира друго приложение.
Проучвателни стрес тестове:
Това е един от видовете стрес тестове, които се използват за тестване на системата с необичайни параметри или условия, които е малко вероятно да се появят в реален сценарий. Използва се за намиране на дефекти в неочаквани сценарии като
- Голям брой потребители са влезли едновременно
- Ако скенер за вируси стартира на всички машини едновременно
- Ако базата данни е излязла офлайн, когато е достъпна от уебсайт,
- Когато голям обем данни се въвежда едновременно в базата данни
Как се прави стрес тест?
Процесът на стрес тестване може да се извърши в 5 основни стъпки:
Стъпка 1) Планиране на стрес теста: Тук събирате системните данни, анализирате системата, определяте целите на стрес теста
Стъпка 2) Създайте скриптове за автоматизация: В тази фаза създавате скриптове за автоматизиране на стрес тестване, генерирате тестови данни за стрес сценариите.
Стъпка 3) Изпълнение на скрипт: На този етап изпълнявате скриптовете за автоматизиране на стрес теста и съхранявате резултатите от стреса.
Стъпка 4) Анализ на резултатите: На този етап анализирате резултатите от стрес теста и идентифицирате тесните места.
Стъпка 5) Ощипване и оптимизиране: На този етап вие прецизирате системата, променяте конфигурациите, оптимизирате кода с цел постигане на желания бенчмарк.
И накрая, отново стартирате целия цикъл, за да определите дали настройките са довели до желаните резултати. Например, не е необичайно да имате 3 до 4 цикъла от процеса на стрес тестване, за да постигнете целите за ефективност
Инструменти, препоръчани за стрес тестване
LoadRunner
LoadRunner от HP е широко използван инструмент за тестване на натоварване. Резултатите от тестовете за натоварване, оформени от Loadrunner, се считат за еталон.
JMeter
Jmeter е инструмент за тестване на отворен код. Това е чисто Java приложение за стрес и Тестване на производителността. Jmeter е предназначен да покрива типове тестове като натоварване, функционалност, стрес и т.н. Нуждае се от JDK 5 или по-нова версия, за да функционира.
Стрес тестер
Този инструмент предоставя обширен анализ на ефективността на уеб приложението, предоставя резултати в графичен формат и е изключително лесен за използване. Не се изисква скрипт на високо ниво и дава добра възвръщаемост на инвестицията.
Neo натоварване
Това е популярен инструмент, наличен на пазара за тестване на мрежата и подвижен приложения. Този инструмент може да симулира хиляди потребители, за да оцени производителността на приложението при натоварване и да анализира времето за реакция. Той също така поддържа облачно интегрирано – тестване на производителност, натоварване и стрес тестване. Той е лесен за използване, рентабилен и осигурява добра скалируемост.
Метрики за стрес тестване
Метриките помагат при оценката на ефективността на системата и обикновено се изучават в края на стрес теста. Често използвани показатели са –
Измерване на скалируемост и производителност
- Страници в секунда: Измерва колко страници са били заявени в секунда
- Пропускателна способност: Основен показател – Размер на данните за отговор/секунда
- Кръгове: Броят пъти, в които са били планирани тестови сценарии спрямо броя пъти, в които клиентът е изпълнявал
Отговор на приложението
- Време на попадение: Средно време за извличане на изображение или страница
- Време до първия байт: Отнема се време за връщане на първия байт данни или информация
- Време на страница: Отнема време за извличане на цялата информация в страница
Повреди
- Неуспешни връзки: Брой неуспешни връзки, отказани от клиента (Слаби Signal)
- Неуспешни рундове: Брой неуспешни рундове
- Неуспешни посещения: Брой неуспешни опити, извършени от системата (счупени връзки или невидяни изображения)
Заключение
Целта на стрес теста е да провери системата при екстремни условия. Той следи системните ресурси като памет, процесор, мрежа и т.н. и проверява способността на системата да се възстанови обратно към нормално състояние. Той проверява дали системата показва подходящи съобщения за грешка, докато е под стрес.
Пример за стрес тестване
- Уебсайтът за електронна търговия обявява фестивална разпродажба
- Новинарски уебсайт по време на някои големи събития
- Уебсайт с резултати на Образователния съвет
- Сайтове за социални мрежи или блогове, приложения и др