performance testing vs load testing vs stress testing
Разлика между тестване на производителността, тестване на натоварване и стрес тестване - с примери
Предишният ни урок от тази поредица ще бъде най-добрият Ръководство за тестване на производителността за всеки начинаещ.
В областта на софтуерното тестване срещаме термини като тестване на производителността, тестване на натоварване, стрес тестове и др. Тези термини често се разбират погрешно и се тълкуват като едни и същи понятия.
Въпреки това има значителна разлика между тези три вида тестване и е важно тестерът да разбере същото.
=> Щракнете тук за пълна серия уроци за тестване на ефективността
В този урок ще обсъдим всеки от тези видове тестване, за да разберем точните разлики между тях.
Какво ще научите:
Разлика между тестване на ефективността, тестване на натоварване и тестване на стрес
# 1) Тестване на производителността
Какво е тестване на ефективността?
Тестване на производителността е тестването, което се извършва, за да се установи как компонентите на системата се представят в дадена ситуация.
Използването на ресурси, мащабируемостта и надеждността на продукта също са валидирани при това тестване. Това тестване е подмножината на инженеринга на производителността, която е фокусирана върху решаването на проблеми с производителността в дизайна и архитектурата на софтуерен продукт.
Горното изображение ясно ни обяснява това Тестването на производителността е суперкомплекс както за тестване на натоварване, така и за стрес. Други видове тестове, включени в тестването на ефективността, са тестване на шипове, тестване на обема, тестване за издръжливост и Тестване на скалируемост . По този начин, тестването на производителността всъщност е много широк термин.
Цел за тестване на ефективността:
Основната цел на тестването на производителността включва установяване на еталонното поведение на системата. Съществуват редица дефинирани в бранша еталони, които трябва да бъдат изпълнени по време на тестването на производителността.
Тестването на производителността няма за цел да открие дефекти в приложението. Той също така не преминава или пропуска теста. По-скоро той се занимава с критичната задача за задаване на еталон и стандарт за приложение . Тестването на ефективността трябва да се извършва много точно. Внимателното наблюдение на работата на приложението / системата е основната характеристика на тестването на производителността.
Бенчмаркът и стандартът на приложението трябва да бъдат определени по отношение на атрибути като скорост, време за реакция, производителност, използване на ресурси и стабилност. Всички тези атрибути се тестват в тест за ефективност.
Например,
Например можете да тествате производителността на мрежата на приложението чрез диаграмата „Скорост на връзка спрямо закъснение“. Латентността е разликата във времето между данните за достигане от източника до местоназначението.
Страницата от 70kb няма да отнеме повече от 15 секунди, за да се зареди за най-лошата връзка от 28,8kbps модем (латентност = 1000 милисекунди), докато страницата със същия размер ще се появи в рамките на 5 секунди за средната връзка от 256kbps DSL (латентност = 100 милисекунди).
Връзка 1,5 Mbps T1 (латентност = 50 милисекунди) ще има показател за ефективност, зададен като 1 секунда, за да постигне тази цел.
Друг пример би било това на модел Request-response. Можем да зададем еталон, че разликата във времето между генерирането на заявка и потвърждаването на отговора трябва да бъде в диапазона от x ms (милисекунди) и y ms, където x и y са стандартните цифри.
Успешният тест за ефективност трябва да проектира повечето проблеми с производителността, които могат да бъдат свързани с база данни, мрежа, софтуер, хардуер и т.н.
# 2) Тестване на товара
Изпитването на натоварване има за цел да тества системата чрез постоянно и постоянно увеличаване на натоварването на системата, докато достигне границата на прага. Това е подмножество на тестване на производителността.
Тестването на натоварването може лесно да се извърши чрез използване на някой от подходящите инструменти за автоматизация, предлагани на пазара. WAPT и LoadRunner са два толкова известни инструмента, които помагат при тестване на натоварването. Тестовете за натоварване също са известни с имена като Обемно тестване и Тестване на издръжливост .
Въпреки това, обемното тестване се фокусира основно върху бази данни. Тестване на издръжливост тества системата, като я държи под значителен товар за продължителен период от време.
Единствената цел на тестовете за натоварване е да се възложи на системата най-голямата работа, която може да се справи, за да се тества издръжливостта на системата и да се наблюдават резултатите. Интересен факт тук е, че понякога системата се захранва с празна задача да определи поведението на системата в ситуация на нулево натоварване.
Атрибутите, които се наблюдават при тест за натоварване, включват пикова производителност, пропускателна способност на сървъра, време за реакция при различни нива на натоварване (под прага на прекъсване), адекватност на H / W околната среда, колко потребителски приложения може да обработва, без да се засяга производителността.
Зареждане на тестова цел:
Целите на тестовете за натоварване включват:
- Разкриване на дефекти в приложение, свързани с препълване на буфера, изтичане на памет и неправилно управление на паметта. Проблемите, които в крайна сметка ще излязат в резултат на тестване на натоварване, могат да включват проблеми с балансирането на натоварването, проблеми с честотната лента, капацитета на съществуващата система и т.н.
- За да се определи горната граница на всички компоненти на приложение като база данни, хардуер, мрежа и т.н., така че приложението да може да управлява очакваното натоварване в бъдеще.
- За да зададете SLA за приложението.
Например,
Нека помислим да проверим функционалността на имейлите на приложение, което може да бъде наводнено с 1000 потребители наведнъж. Сега 1000 потребители могат да задействат имейл транзакциите (четене, изпращане, изтриване, препращане, отговор) по много различни начини.
Ако вземем по една транзакция на потребител на час, това би било 1000 транзакции на час. Като симулираме 10 транзакции / потребители, бихме могли да заредим тест на имейл сървъра, като го заемем с 10000 транзакции / час.
Друг пример за тест за натоварване е показан на изображението по-долу:
Горното изображение изобразява тест за натоварване, направен в инструмента, наречен JMeter . Този тест се прави, за да се идентифицира с колко потребители може да се справи системата. В този тест се добавят 100 потребители на всеки 30 секунди, докато натоварването достигне 1000 потребители. Всяка стъпка отнема 30 секунди, а JMeter изчаква 30 секунди, преди да започне следващата стъпка.
След като натоварването достигне 1000 нишки, всички те ще продължат да работят в продължение на 300 секунди (5 минути) заедно и след това накрая спират 10 нишки на всеки 3 секунди.
# 3) Тестване на стрес
При стрес тестване се извършват различни дейности за претоварване на съществуващите ресурси с излишни работни места в опит да се разруши системата. Отрицателно тестване , което включва отстраняване на компонентите от системата, също се извършва като част от стрес тестване.
Също известен като тестване за умора , това тестване трябва да улови стабилността на приложението, като го тества отвъд капацитета на честотната лента.
По този начин, стрес тестовете оценяват поведението на приложението извън пиково натоварване и нормални условия.
Целта на тестовете за стрес е да се установи неизправността на системата и да се следи как системата се възстановява грациозно. Предизвикателството тук е да настроите контролирана среда преди стартирането на теста, така че да можете точно да уловите поведението на системата многократно при най-непредсказуемите сценарии.
Проблемите, които в крайна сметка ще излязат в резултат на стрес тестване, могат да включват проблеми със синхронизирането, изтичане на памет, състезателни условия и др. Ако стрес тестът проверява как системата се държи в случай на внезапно нарастване на броя на потребителите , тогава се нарича тест за скок.
Ако тестът за стрес е да се провери устойчивостта на системата за определен период от време чрез бавно нарастване на броя на потребителите, той се нарича тест за накисване.
Цел за стрес тестване:
Целта на стрес тестовете е да се анализират доклади след срив, за да се определи поведението на приложението след отказ.
Най-голямото предизвикателство е да се гарантира, че системата не нарушава сигурността на чувствителните данни след повредата. При успешно тестване на стрес системата ще се върне към нормалното, заедно с всичките си компоненти, дори след най-ужасната повреда.
Например,
Като пример, текстов процесор като Writer1.1.0 от OpenOffice.org се използва при разработването на писма, презентации, електронни таблици и др. Целта на нашето стрес тестване е да го заредим с излишни символи.
За да направим това, ние многократно ще поставяме ред данни, докато достигне границата на прага за обработка на голям обем текст. Веднага щом размерът на знака достигне 65 535 знака, той просто ще откаже да приеме повече данни.
Резултатът от стрес тестовете на Writer 1.1.0 води до това, че той не се срива под стрес и обработва ситуацията грациозно, което гарантира, че приложението работи правилно дори при строги условия на стрес.
Друг пример за тест за натоварване, който изобразява тест за скок чрез внезапно увеличаване на 7000 потребители, е показан по-долу:
ЧЗВ
След като имахме достатъчно дискусии за тестване на производителността, стрес тестване и тестване на натоварването, нека сега разгледаме някои свързани често срещани въпроси, на които тестерите търсят отговор.
В # 1) Еднакво ли е тестването на натоварване и тестването на производителността?
Отговор: Отговорът на това е „Не“. Те не са еднакви.
Досега трябва да сте разбрали ясно разликата между тестване на производителността и тестване на натоварването. Можете да се обърнете към табличното резюме по-долу, за да видите как тестването на производителността и натоварването имат различни цели, атрибути на обхвата за проучване и проблеми за разкриване.
Q # 2) Нечестен тест ли е да провеждате стрес тестване едновременно, когато извършвате тестване на натоварване?
Отговор: Това също е често срещан въпрос в много интервюта за тестване на софтуер и изпити за сертифициране, тъй като е несправедливо паралелно да се правят стрес тестове и тестове за натоварване? Отговорът на това е „Не“. Не е несправедливо да правите тестове за стрес едновременно, когато правите тестове за натоварване.
Никой тест никога не е несправедлив. Като тестер, вашата работа е да намерите проблеми. Обаче действителността на софтуерното тестване може да се приложи и всеки проблем, който откриете в тази ситуация, може да не бъде отстранен.
В # 3) Тестването за възстановяване част ли е от тестването на производителността?
Отговор: Да, тестването за възстановяване се категоризира под тестване на производителността и понякога се провежда и с тестване на натоварването. В тестване за възстановяване , той е достъпен като колко добре приложението е в състояние да се възстанови от грешки, сривове, хардуерни откази и други подобни проблеми.
При тази дейност софтуерът е принуден да се провали и след това се проверява дали е в състояние да се възстанови правилно. Например, внезапно рестартиране на системата, когато дадено приложение се изпълнява и след това проверка на целостта на данните на приложението.
В # 4) Необходимо ли е тестване на производителността да се кодира?
Отговор: Тестването на производителността не изисква да познавате напредналото ниво на кодиране. Притежаването на основни познания по програмиране обаче е допълнително предимство.
Например, ако използвате JMeter, тогава е добре да знаете основите на Java. Това може да ви помогне да отстраните грешки в някои неща и можете да напишете свой собствен скрипт, ако е необходимо.
В # 5) Какво представлява тестването на Spike при тестване на производителността?
Отговор: При тестване на скокове, натоварването рязко се увеличава или намалява от огромен брой потребители и по-късно се наблюдава поведението на системата. Тестването на шипове се извършва главно, за да се провери дали системата е в състояние да се справи с внезапни промени в товара.
Разлика между тестване на натоварване и стрес
За да обобщим, нека да наблюдаваме основните разлики между тестовете за натоварване, тестовете за стрес, както и тестовете за изпълнение в таблицата по-долу:
Тестване на производителността | Тестване на товара | Стрес тестване | |
---|---|---|---|
Домейн | Супер набор от тестове за натоварване и стрес | Подмножество на тестване на производителността. | Подмножество на тестване на производителността. |
Обхват | Много широк обхват. Включва - Тестване на натоварване, Тестване на стреса, тестване на капацитета, тестване на обема, тестване на издръжливост, тестване на скокове, тестване на мащабируемост и тестване за надеждност и др | По-тесен обхват в сравнение с тестването на производителността. Включва тестване на обема и тестване на издръжливост. | По-тесен обхват в сравнение с тестването на производителността. Включва тестване на накисване и тестване на шипове. |
Основна цел | За определяне на еталон и стандарти за приложението. | За да идентифицирате горната граница на системата, задайте SLA на приложението и вижте как системата се справя с големи обеми на натоварване. | За да се идентифицира как системата се държи при интензивни натоварвания и как се възстановява от повреда. По принцип, за да подготвите приложението си за неочаквания скок на трафика. |
Ограничение на натоварването | И двете - под и над прага на почивка. | До прага на прекъсване | Над прага на пробив |
Изучени атрибути | Използване на ресурсите, надеждност, мащабируемост, използване на ресурсите, време за реакция, производителност, скорост и др. | върхова производителност, производителност на сървъра, време за реакция при различни нива на натоварване (под прага на прекъсване), адекватност на H / W околната среда, броят на потребителското приложение, което могат да се справят, изискванията за балансиране на натоварването и др. | Стабилност извън капацитета на честотната лента, времето за реакция (над прага на прекъсване), и т.н. |
Проблеми, идентифицирани чрез този тип тестване | Всички грешки в производителността, включително раздуване по време на работа, обхват за оптимизация, проблеми, свързани със скоростта, латентността, производителността и т.н. По принцип - всичко, свързано с производителността! | Проблеми с балансирането на натоварването, проблеми с честотната лента, проблеми с капацитета на системата, лошо време за реакция, проблеми с производителността и т.н. | Вратички в сигурността с претоварване, проблеми с повреда на данните при ситуация на претоварване, бавност, изтичане на памет и др. |
Разлика между тестване на натоварване, стрес и обем
Към момента вече знаем за натоварването и тестовете за стрес заедно с разликите между двете. Нека сега изследваме какво е тестване на обема и по какво се различава от тестването на натоварване и тестовете за стрес.
Обемното тестване също е вид тестване на производителността, което основно се фокусира върху базата данни.
При тестване на обем се проверява как системата се държи спрямо определен обем данни. По този начин базите данни са пълни с максималния си капацитет и се следят нивата им на производителност като време за реакция и производителност на сървъра.
За да бъде много лесно, разликата между тестването на натоварване, стрес и обем е показана по-долу:
Обемно тестване | Тестване на товара | Стрес тестване |
---|---|---|
Огромно количество данни | Огромен брой потребители | Твърде много потребители, твърде много данни за срив на системата. |
Заключение
В този урок видяхме и разбрахме чрез примери как тестването на производителността, тестовете за натоварване и тестовете за стрес се различават помежду си и какъв е обхватът на всеки тип тестване.
Също така имахме кратък преглед на много категории при тестване на производителността, като тестване на скокове, тестване за възстановяване, тестване на обема и т.н., и разбрахме как всяка от тях се различава една от друга.
Надяваме се, че този урок би бил от огромна помощ, за да разберете практическата разлика между производителността, натоварването и тестовете за стрес.
Проверете нашия предстоящ урок, за да научите повече за функционалното тестване срещу тестването на производителността.
кой е най-добрият сайт за изтегляне на mp3 безплатно
=> Посетете тук за пълна серия уроци за тестване на ефективността
Препоръчително четене
- Пълно ръководство за тестване на ефективността с примери
- Ръководство за стрес тестване за начинаещи
- Пълно ръководство за тестване на зареждане за начинаещи
- Тестване на натоварване, стрес и производителност на уеб приложения с помощта на WAPT
- Тестване на натоварване с уроци за HP LoadRunner
- Тестване на производителността в облака: Доставчици на услуги за тестване на натоварване в облак
- Функционално тестване срещу тестване на производителността: Трябва ли да се прави едновременно?
- Тестване на натоварване с помощта на LoadUI - безплатен инструмент за тестване на натоварване с отворен код