what is scalability testing
Въведение в тестването за мащабируемост:
Тестване на скалируемост е нефункционална методология за тестване, при която ефективността на приложението се измерва по отношение на способността му да мащабира или намалява броя на потребителските заявки или други такива атрибути за измерване на ефективността.
Тестването на скалируемост може да се извърши на ниво хардуер, софтуер или база данни.
Параметрите, използвани за това тестване, се различават от едно приложение до друго, за уеб страница това може да бъде броят на потребителите, използването на процесора, използването на мрежата, докато за уеб сървър това би бил броят на обработените заявки.
как да отворите bin файлове в android -
Този урок ще ви даде пълен преглед на Тестване на скалируемост, заедно с неговите атрибути и различните стъпки, свързани с извършването на теста, с практически примери, за да ви позволи да разберете концепцията по-добре.
Какво ще научите:
- Тестване на скалируемост срещу тестване на натоварване
- Атрибути за тестване на скалируемост
- Стъпки за тестване на мащабируемостта на приложение
- Заключение
- Препоръчително четене
Тестване на скалируемост срещу тестване на натоварване
Тестване на натоварването измерва приложението, което се тества при максимално натоварване, при което системата ще се срине. Основната цел на тестовете за натоварване е да се идентифицира пиковата точка, след която потребителите не биха могли да използват системата.
И натоварването, и мащабируемостта са под методологията за тестване на производителността.
Мащабируемостта се различава от тестването на натоварване по това, че тестът за мащабируемост измерва системата при минимално и максимално натоварване на всички нива, включително софтуер, хардуер и нива на база данни. След като се установи максималното натоварване, разработчиците трябва да реагират по подходящ начин, за да гарантират, че системата е мащабируема след определено натоварване.
Пример: Ако тестването за мащабируемост определи максималното натоварване да бъде 10 000 потребители, тогава за да може системата да бъде мащабируема, разработчиците трябва да вземат мерки по фактори като намаляване на времето за реакция след достигане на 10 000 потребителски лимита или увеличаване на размера на RAM, за да побере нарастващите потребителски данни.
Тестването на натоварване включва поставяне на максимално натоварване върху разработените приложения едновременно, докато тестването на мащабируемост включва постепенно увеличаване на натоварването за определен период от време прогресивно.
Тестването на натоварване определя точката, в която приложението се срива, докато мащабируемостта се опитва да идентифицира причината за срив на приложението и да предприеме стъпки за разрешаване на проблема.
Накратко, Load Testing помага да се идентифицират проблемите с производителността, докато тестването за мащабиране помага да се установи дали системата може да се мащабира до нарастващия брой потребители.
конвертирате YouTube в mp3 безплатно безопасно
Атрибути за тестване на скалируемост
Атрибутите на теста за мащабируемост определят мерките за производителност, въз основа на които ще се извършва това тестване.
Следват някои от често срещаните атрибути:
1) Време за реакция:
- Времето за реакция е времето между заявката на потребителя и отговора на приложението. Това тестване се прави, за да се идентифицира времето за реакция на сървъра при минимално натоварване, прагово натоварване и максимално натоварване, за да се идентифицира точката, в която приложението ще се счупи.
- Времето за реакция може да се увеличи или намали в зависимост от различното натоварване на потребителя в приложението. В идеалния случай времето за реакция на приложението ще намалее, тъй като натоварването на потребителя продължава да се увеличава.
- Приложението може да се счита за мащабируемо, ако може да осигури същото време за реакция за различни нива на потребителско натоварване.
- В случай на клъстеризирани среди, където натоварването на приложението се разпределя между множество сървърни компоненти, тестването на мащабируемост трябва да измерва степента, до която балансиращият товар разпределя товара между множество сървъри. Това ще гарантира, че единият сървър не е претоварен със заявки, докато другият сървър седи без работа и чака заявката да влезе.
- Времето за реакция на всеки сървърен компонент трябва да бъде внимателно измерено, ако приложението се хоства в клъстеризирана среда и тестването за мащабируемост трябва да гарантира, че времето за реакция на всеки сървърен компонент трябва да бъде еднакво, независимо от количеството натоварване, поставено на всеки сървър.
- Пример: Времето за реакция може да се измери като времето, в което потребителят въвежда URL адреса в уеб браузър до времето, до което уеб страницата отнема да зареди съдържанието. Колкото по-малко е времето за реакция, толкова по-висока ще бъде ефективността на приложението.
2) Пропускателна способност:
- Пропускателната способност е мярката на броя заявки, обработени за единица време от приложението.
- Резултатът от пропускателната способност може да се различава при различните приложения. Ако това е уеб приложение, производителността се измерва по отношение на броя на потребителските заявки, обработени за единица време и ако това е база данни. пропускателната способност се измерва по отношение на броя на заявките, обработени за единица време.
- Приложението се счита за мащабируемо, ако може да достави една и съща производителност за различни нива на натоварване на вътрешните приложения, хардуер и база данни.
3) Използване на процесора:
- CPU Usage е мярка за използване на CPU за изпълнение на задача от приложение. Използването на процесора обикновено се измерва по мерната единица MegaHertz.
- В идеалния случай, колкото по-оптимизиран е кодът на приложението, толкова по-малко ще бъде наблюдаваното използване на процесора.
- За да постигнат това, много организации използват стандартни практики за програмиране, за да минимизират използването на процесора.
- Пример: Премахване на мъртъв код в приложението и минимизиране на използването на Thread. Методите на заспиване са една от най-добрите практики за програмиране за минимизиране на използването на процесора.
4) Използване на паметта:
- Използването на паметта е мярка за паметта, изразходвана за изпълнение на задача от приложение.
- В идеалния случай паметта се измерва по байтове (MegaBytes, GigaBytes или Tera Bytes), които разработеното приложение използва за достъп до памет с произволен достъп (RAM).
- Използването на памет на приложението може да бъде сведено до минимум, като се следват най-добрите практики за програмиране.
- Примери за най-добри практики за програмиране биха били да не се използват излишни цикли, да се намалят посещенията към базата данни, да се използва кеш паметта, да се оптимизира използването на SQL заявки и др. Приложението се счита за мащабируемо, ако минимизира използването на паметта до максималната възможна степен.
- Пример: Ако мястото за съхранение, налично за определен брой потребители, свърши, паметта, тогава разработчикът ще бъде принуден да добави допълнително хранилище на база данни, за да компенсира загубата на данни.
5) Използване на мрежата:
- Използването на мрежата е размерът на честотната лента, консумирана от тествано приложение.
- Целта на използването на мрежата е да се намали претоварването на мрежата. Използването на мрежата се измерва като байтове, получени в секунда, получени кадри в секунда, получени и изпратени сегменти в секунда и т.н.
- Техники за програмиране като използването на техники за компресиране могат да помогнат за намаляване на задръстванията и минимизиране на използването на мрежата. Приложението се счита за мащабируемо, ако може да работи с минимално претоварване на мрежата и да осигури висока производителност на приложението.
- Пример: Вместо да следва механизъм за опашка за обработка на потребителските заявки, разработчикът може да напише кода за обработка на потребителските заявки, както и когато заявката пристигне в база данни.
Освен тези параметри има няколко други по-малко използвани параметри като време за отговор на заявката на сървъра, време за изпълнение на задачата, време за транзакция, време за зареждане на уеб страница, време за извличане на отговора от базата данни, време за рестартиране, време за печат, време на сесия, преход на екрана , транзакции в секунда, посещения в секунда, заявки в секунда и т.н.
Атрибутите за тестване на мащабируемост могат да се различават от едно приложение до друго, тъй като показателят за производителност за уеб приложения може да не е същият като този на приложение за настолен компютър или клиент-сървър.
най-добрите шпионски телефонни приложения за android
Стъпки за тестване на мащабируемостта на приложение
Основното предимство на извършването на това тестване на приложение е да се разбере поведението на потребителя при достигане на максимално натоварване и начините за разрешаването му.
Също така, това тестване позволява на тестерите да идентифицират деградацията от страна на сървъра и времето за реакция по отношение на натоварването на потребителя на приложението. В резултат на това тестването се предпочита в няколко организации по света.
По-долу е даден списъкът със стъпки за тестване на мащабируемостта на приложение:
- Създайте повторяеми тестови сценарии за всеки от атрибутите за тестване на мащабируемост.
- Тествайте приложението за различни нива на натоварване като ниско, средно и високо натоварване и проверете поведението на приложението.
- Създайте тестова среда, която е достатъчно стабилна, за да издържи целия цикъл на тестване на мащабируемост.
- Конфигурирайте хардуера, необходим за извършване на това тестване.
- Дефинирайте набор от виртуални потребители за проверка на поведението на дадено приложение при променливо потребителско натоварване.
- Повторете тестовите сценарии за множество потребители при различни условия на вътрешни приложения, промени в хардуера и базата данни.
- В случай на клъстеризирана среда проверете дали балансиращият товар насочва потребителските заявки към множество сървъри, за да се гарантира, че нито един сървър не е претоварен от поредица от заявки.
- Изпълнете тестовите сценарии в тестовата среда.
- Анализирайте генерираните отчети и проверете областите на подобрение, ако има такива.
Заключение
Накратко,
=> Тестването на скалируемост е нефункционална методология за тестване, за да се провери дали приложението може да се увеличи или намали до различните атрибути. Атрибутите, използвани за това тестване, ще варират от едно приложение до друго.
=> Основната цел на това тестване е да определи кога приложението започва да се разгражда при максимално натоварване и да предприеме подходящи стъпки, за да гарантира, че разработеното приложение е достатъчно мащабируемо, за да отговори на промените във вътрешните приложения, софтуер, хардуер, а също и базата данни промени в бъдещето.
=> Ако това тестване е направено правилно, в разработените приложения могат да бъдат открити големи грешки по отношение на производителността в софтуера, хардуера и базата данни.
=> Основен недостатък на това тестване би било ограничението му за съхранение на данни, с ограничения за размера на базата данни и буферното пространство. Също така, ограниченията на честотната лента на мрежата могат да бъдат пречка за тестването на мащабируемост.
=> Процесът на тестване за мащабируемост се различава от една организация до друга, тъй като атрибутите на теста за мащабируемост на едно приложение ще се различават от другите приложения.
Препоръчително четене
- Тестване на натоварване с уроци за HP LoadRunner
- Тестване на ефективността срещу тестване на натоварване срещу тестване на стрес (разлика)
- Разлика между десктоп, тестване на клиентски сървър и уеб тестване
- Тестване на натоварване, стрес и производителност на уеб приложения с помощта на WAPT
- Най-добри инструменти за тестване на софтуер 2021 г. (Инструменти за автоматизация на QA теста)
- Ръководство за тестване на сигурността на уеб приложения
- Тестване на приложения - в основите на софтуерното тестване!
- Инсталирайте приложението си на устройство и започнете да тествате от Eclipse