Какво е тестване за издръжливост в софтуерното тестване? (с пример)

⚡ Умно обобщение

Тестването за издръжливост изпълнява приложение при нормално очаквано натоварване за продължителен период от време, за да се установи дали производителността се влошава с течение на времето. Това е тестът, който открива дефектите, до които едночасово натоварване не може да достигне.

  • 🕒 Постоянно натоварване: Очаква се производственият трафик да се задържа за часове или дни, а не за минути.
  • 📉 Фокус на разграждане: Въпросът е дали времето за реакция се увеличава, а не дали целта е постигната веднъж.
  • ???? Често срещани открития: Течове на памет, изчерпване на пула за връзки и неограничен растеж на лог файлове или кеш памет.
  • 📊 Комплект за мониторинг: Памет, процесор, време за реакция, пропускателна способност и връзки към базата данни по време на цялото изпълнение.
  • 🛠️ Инструментална: Стандартните инструменти за натоварване управляват трафика, докато APM инструментите записват кривите на ресурсите.
  • Компромис: Резултатите са висококачествени, но се получават бавно, което ограничава честотата на провеждане на теста.

Какво е тестване за издръжливост

Какво е тест за издръжливост?

Тест за издръжливост е нефункционален тип софтуерно тестване, при което софтуерът се тества с високо натоварване, продължило значително време, за да се оцени поведението на софтуерното приложение при продължителна употреба. Основната цел на тестовете за издръжливост е да се гарантира, че приложението е достатъчно способно да се справи с продължително натоварване без никакво влошаване на времето за реакция.

Този тип тестване се извършва на последния етап от цикъла на изпълнение. Тестването за издръжливост е дълъг процес и понякога продължава дори до една година. Това може да включва прилагане на външни натоварвания като интернет трафик или потребителски действия. Това прави тестовете за издръжливост различни от Тестване на товара, което обикновено приключва след няколко часа.

Издръжливостта означава капацитет, така че с други думи можете да наречете теста за издръжливост като тестване на капацитета.

Цели на теста за издръжливост

  • Основната цел на теста за издръжливост е да се провери за изтичане на памет.
  • За да разберете как работи системата при продължителна употреба.
  • За да се гарантира, че след дълъг период времето за реакция на системата ще остане същото или по-добро от началото на теста.
  • За определяне на броя потребители и/или транзакции дадена система ще поддържа и ще отговаря на целите за ефективност.
  • За да управляваме бъдещите натоварвания, трябва да разберем колко допълнителни ресурси (като капацитет на процесора, капацитет на диска, използване на паметта или честотна лента на мрежата) са необходими за поддържане на използването в бъдеще.
  • Тестовете за издръжливост обикновено се извършват чрез претоварване на системата или чрез намаляване на определени системни ресурси и оценка на последствията.
  • Извършва се, за да се гарантира, че няма да възникнат дефекти или изтичане на памет след това, което се счита за относително „нормален“ период на използване.

Какво да се следи при тестове за издръжливост

Тест за издръжливост

При тестовете за издръжливост се тестват следните неща.

  • Тествайте изтичане на памет– Извършват се проверки, за да се провери дали има изтичане на памет в приложението, което може да причини срив на системата или операционната система
  • Тествайте затварянето на връзката между слоя на системата – Ако връзката между слоевете на системата не е затворена успешно, това може да спре някои или всички модули на системата.
  • Тестовата връзка с базата данни се затваря успешно– Ако връзката с базата данни не е затворена успешно, това може да доведе до срив на системата
  • Време за реакция на теста – Системата се тества за времето за реакция на системата, тъй като приложението става по-малко ефективно в резултат на продължителната употреба на системата.

Как да се извърши тест за издръжливост

По-долу е основният подход за тестване за тест за издръжливост

  • Тестова среда – Идентифицирайте необходимия хардуер, софтуер, операционна система за тестване на издръжливостта, разпределяне на роли и отговорности в екипа и т.н. Средата трябва да е готова преди изпълнението на теста. Трябва също така да оцените общия производствен размер на базата данни и годишния растеж. Това е необходимо, тъй като трябва да тествате как вашето приложение ще реагира след година, две или пет.
  • Създаване на план за тестване, сценарии – Въз основа на естеството на тестването – ръчно или автоматизирано, или комбинация от двете, Тестов случай проектирането, прегледите и изпълнението трябва да бъдат планирани. Тестване за натоварване на системата, тестване на точка на прекъсване и т.н. също трябва да бъдат част от плана за тестване. Тестването за стрес на системата определя точката на прекъсване в приложението.
  • Тестова оценка – Предоставете приблизителна оценка колко време ще отнеме завършването на фазата на тестване. Трябва да се анализира въз основа на броя на участващите тестери и броя на необходимите тестови цикли.
  • Анализ на риска – Анализиране на риска и предприемане на подходящи действия за превенция. Приоритизиране на тестови случаи според рисковия фактор и идентифициране на рисковете и проблемите по-долу, които тестерът може да направи по време на теста за издръжливост.
  • Ще остане ли ефективността постоянна във времето?
  • Има ли други незначителни проблеми, които все още не са открити?
  • Има ли външна намеса, на която не е обърнато внимание?
  • График на тестовете – Определете бюджета, резултатите в рамките на времевите рамки. като Тест за издръжливост прилага огромно, но естествено натоварване на транзакциите към системата/приложението за непрекъснат период от време.

Пример за тест за издръжливост

Докато Стрес тестове извежда тестваната система до нейните граници, Тест за издръжливост извежда приложението до неговия лимит с течение на времето.

Например, най-сложните проблеми – течове на памет, използване на сървъра на базата данни и блокираща система – възникват, когато софтуерът работи за продължителен период от време. Ако пропуснете тестовете за издръжливост, шансовете ви да откриете такива дефекти преди внедряването им са доста ниски.

Инструменти за тестване на издръжливостта

  • WebLOAD
  • Зареждането завърши
  • Apache JMeter
  • LoadRunner
  • Appvance
  • LoadUI
  • OpenSTA
  • Rational Performance Tester

Предимства на тестовете за издръжливост

  • Помага при определяне на това как работното натоварване може да се справи със системата под натоварване.
  • Предоставя точни данни, които клиентът може да използва, за да потвърди или подобри своите инфраструктурни нужди.
  • Идентифицира проблеми с производителността, които могат да възникнат, след като системата е работила на високо ниво за по-дълъг период от време
  • Типичните проблеми се идентифицират в по-малки целеви тестове за производителност, което означава, че гарантира, че приложението остава достъпно дори когато има огромно натоварване за много кратък период от време.
  • Тестът за издръжливост се използва и за проверка дали има влошаване на производителността след дълъг период на изпълнение

Недостатъци на тестовете за издръжливост

  • Често е трудно да се определи колко стрес си струва да се прилага.
  • Тестването за издръжливост може да причини сривове в приложението и/или мрежата, които могат да доведат до значителни смущения, ако Тестова среда не са изолирани.
  • Може да възникне постоянна загуба или повреда на данни при прекомерно натоварване на системата.
  • Използването на ресурсите остава много високо след отстраняване на стреса.
  • Някои компоненти на приложението не отговарят.
  • Необработените изключения се наблюдават от крайния потребител.

Как този тест се вписва в семейството на тестовете за производителност

Тестването на производителността е общ термин. Вариантите по-долу се различават само по формата на приложеното натоварване и продължителността на задържането му, поради което толкова често се бъркат един с друг.

Тип на теста Модел на натоварване Въпрос, на който отговаря
Тестване на натоварването Очаквано пиково натоварване, кратка продължителност Постига ли системата целите си при нормален пиков трафик?
Стрес тестове Увеличено отвъд капацитета до повреда Къде се чупи и дали се поврежда грациозно?
Спайк тестване Внезапен екстремен скок, след това отдръпване Оцелява ли и възстановява ли се от шок в трафика?
Тест за издръжливост Нормално натоварване, задържано в продължение на много часове Влошава ли се производителността с течение на времето?
Тестване с накисване Постоянно натоварване за продължителен период от време Има ли изтичане на памет или изчерпване на ресурсите?
Тестване на стабилност Променливо натоварване при различни условия Системата остава ли надеждна при промяна на условията?
Обемно тестване Нормални потребители, много голям обем данни Справя ли се с нарастването на базата данни?

Изпитването за издръжливост и изпитването за накисване често се третират като синоними. В обща употреба те са: и двата теста задържат постоянно натоварване за дълъг период. Когато екипите ги разграничават, тестовете за издръжливост се фокусират върху това дали времето за реакция се увеличава, докато тестовете за soak се фокусират върху консумацията на ресурси, като памет, файлови манипулатори и пулове за връзки. Изпълнението на един от тях обикновено ви дава доказателства и за двата.

Ключови показатели за отчитане по време на теста

Едно изпълнение за оценка на производителността е толкова добро, колкото е добро това, което записвате, докато се изпълнява. Запишете тези шест показателя на сървъра и клиента, след което ги сравнете с базовата линия, а не с интуицията си.

метричен Какво ви казва Предупредителен знак
Средно време за реакция Типично потребителско изживяване Всяко отклонение нагоре по трасето
Време за отговор на 95-ия персентил Опитът на най-бавните потребители Далеч над средното, което означава непоследователност
магистрала Заявки, обработени в секунда Падане, докато товарът остава постоянен
Степен на грешки Дял на неуспешни или изтекли заявки Всяко покачване над договорения праг
Използване на процесора и паметта Свободен капацитет на сървърните ресурси Спомен, който се изкачва и никога не се връща
Връзки и нишки към базата данни Изтощение в басейна Брой, който расте постоянно без освобождаване

Прочетете средната стойност и процентила заедно. Средно време от 800 ms с 95-ти персентил от 900 ms описва последователна система. Същата средна стойност с 95-ти персентил от 9 секунди означава, че един потребител на двадесет се справя зле, а средната стойност го крие.

Обърнете внимание на формата, не само на стойността. При всеки продължителен тест, равна линия на ресурса е преминал тест, а нарастваща е теч, дори когато абсолютното число е все още удобно в рамките на лимита в момента, в който тестът приключи.

Тестване за издръжливост: Ключови изводи

  • In Софтуерно инженерство, Тестването за издръжливост е подмножество от тестовете за натоварване.
  • Тестването за издръжливост е дълъг процес и понякога продължава дори до една година
  • Извършват се проверки за проверка
  • Тествайте изтичане на памет
  • Време за реакция на теста
  • Тествайте връзката с база данни и др.

Въпроси и Отговори

Тестването на натоварване проверява дали системата достига целите си при пиково натоварване за кратък период. Тестването за издръжливост поддържа нормално натоварване в продължение на часове, за да се установи дали тези цели все още са валидни в края на цикъла.

Всяка устойчива възходяща тенденция във времето за реакция или използването на ресурси, дори ако не е нарушен праг. Дефектът е самото отклонение, защото в крайна сметка ще премине лимита в производството.

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

Мониторингът, базиран на изкуствен интелект, открива точката, в която дадена метрика променя тенденцията, и я съпоставя с внедрявания или планирани задачи, превръщайки часове графики в специфичен заподозрян.

Това може да помогне за приоритизиране. Моделите на риска подчертават кои издания са склонни към изтичане на данни от докосване, така че пълните изпълнения са запазени за промените, които най-вероятно ще се нуждаят от тях.

Обобщете тази публикация с: