Тестування продуктивності (performance testing) в програмній інженерії – це тестування, яке проводиться з ціллю визначення, як швидко працює програма або її частина під деяким навантаженням. Тестування продуктивності намагається враховувати продуктивність на стадії.
Види тестування продуктивності
В тестуванні продуктивності розрізняють наступні напрямки: • навантажувальне (load) • стресове (stress) • тестування стабільності (endurance or soak or stability) • тестування на відмову та відновлення (Failover and Recovery Testing) • об'ємне тестування (Volume Testing) • шип тестування (Spike Testing)
Навантажувальне тестування (Load Testing)
Навантажувальне тестування (load testing) – це проста форма тестування продуктивності. Воно зазвичай проводиться для того, щоб оцінити поведінку програми (додатка) із заданим очікуваним навантаженням. Цим навантаженням може бути, наприклад, кількість користувачів, які будуть одночасно працювати з програмою. Такий вид тестування дозволяє отримати час відгуку всіх найважливіших бізнес-транзакцій.
Стресове тестування (Stress Testing)
Стресове тестування зазвичай використовується для встановлення межі пропускної здатності програми. Цей тип тестування проводиться для визначення надійності системи при екстремальних або непропорційних навантаженнях і відповідає на питання про достатню продуктивність системи у випадку, якщо поточне навантаження значно перевищить очікуваний максимум.
Тестування стабільності (Stability Testing)
Тестування стабільності проводиться з метою переконатися в тому, що програма витримає очікуване навантаження протягом тривалого часу. При проведенні цього виду тестування здійснюється спостереження за споживанням програмою пам'яті, щоб виявити потенційні втрати. Крім цього, таке тестування виявляє деградацію продуктивності, що виражається в зниженні швидкості обробки інформації та збільшенні часу відгуку програми після тривалої роботи порівняно з початком тесту.
Об'ємне тестування (Volume Testing)
Об’ємне тестування (Volume Testing) – тестування проводиться зі збільшенням не навантаження і часу роботи, а кількості використовуваних даних, які зберігаються і використовуються в додатку.
Шип тестування (Spike Testing)
Шип тестування - проводиться раптово, збільшуючи навантаження на невеликий час, створюване за допомогою дуже великого числа користувачів, і спостерігаючи за поведінкою системи. Мета полягає в тому, щоб визначити, чи постраждає продуктивність системи або вона відмовить, або вона зможе обробити різкі зміни навантаження.
Визначення цілей тестування продуктивності
В загальних випадках тестування продуктивності може слугувати різним цілям: - з метою демонстрації того, що система задовольняє продуктивність; - з метою визначення продуктивність якої з двох або більше систем найкраща; - з метою визначення, який елемент навантаження або частина системи спричиняє зниження продуктивності. Багато тестів на продуктивність робляться без спроби осмислити їх реальні цілі. Перед початком тестування завжди задати бізнес-питання: «Яку мету ми переслідуємо, тестуючи продуктивність?». Відповіді на це питання є частиною техніко-економічного обґрунтування (або business case) тестування. Цілі можуть відрізнятися в залежності від технологій, що використовуються додатком, або його призначення, проте, вони завжди включають щось з нижченаведеного:
Паралелізм / Пропускна здатність
Якщо кінцевими користувачами програми вважаються користувачі, які виконують вхід в систему в будь-якій формі, то в цьому випадку вкрай бажано досягнення паралелізму. За визначенням це максимальне число паралельних працюючих користувачів додатку, підтримка якого очікується від програми в будь-який момент часу. Модель поведінки користувача може значно впливати на здатність додатку до паралельної обробки запитів, особливо якщо він включає в себе періодичний вхід і вихід з системи. Якщо концепція програми не полягає в роботі з конкретними кінцевими користувачами, то переслідувана мета для продуктивності буде заснована на максимальній пропускній здатності чи числі транзакцій за одиницю часу. Хорошим прикладом у даному випадку буде перегляд вебсторінок, наприклад, на порталі Wikipedia.
Час відповіді сервера
Ця концепція будується навколо часу відповіді одного вузла додатку на запит, надісланий іншим. Простим прикладом є HTTP 'GET' запит з браузера робочої станції на вебсервер. Практично всі програми, розроблені для навантажувального тестування працюють саме за цією схемою вимірювань. Іноді доцільно ставити завдання по досягненню продуктивності часу відповіді сервера серед всіх вузлів додатку.
Час відображення
Час відображення - одне з найскладніших для програми для навантажувального тестування понять, так як в загальному випадку вони не використовують концепцію роботи з тим, що відбувається на окремих вузлах системи, обмежуючись тільки розпізнаванням періоду часу протягом якого немає мережевої активності. Для того, щоб заміряти час відображення, в загальному випадку потрібно включати функціональні тестові сценарії в тести продуктивності, але більшість програм для тестування продуктивності не включають в себе таку можливість.
Вимоги до продуктивності
Дуже важливо деталізувати вимоги до продуктивності і документувати їх в якому-небудь плані тестування продуктивності. В ідеальному випадку це робиться на стадії розробки вимог при розробці системи, до опрацювання деталей її дизайну. Проте тестування продуктивності часто не проводиться згідно зі специфікацією, так як немає зафіксованого розуміння про максимальний час відповіді для заданого числа користувачів. Тестування продуктивності часто використовується як частина процесу профайлингу продуктивності. Його ідея полягає в тому, щоб знайти «слабку ланку» - таку частину системи, збільшивши час реакції якої, можна поліпшити загальну продуктивність системи. Визначення конкретної частини системи, що стоїть на цьому критичному шляху, іноді дуже непросте завдання, тому деякі програми для тестування включають в себе (або можуть бути додані за допомогою add-on'ів) інструменти, запущені на сервері (агенти) і спостерігають за часом виконання транзакцій, часом доступу до бази даних. Тестування продуктивності може проводитися з використанням глобальної мережі і навіть у географічно віддалених місцях, якщо враховувати той факт, що швидкість роботи мережі Інтернет залежить від місця розташування. Воно також може проводитися і локально, але в цьому випадку необхідно налаштувати мережеві маршрутизатори таким чином, щоб з'явилася затримка, присутня в усіх публічних мережах. Навантаження, що додається до системи, повинне збігатися з реальним станом справ. Так наприклад, якщо 50% користувачів системи для доступу до системи використовують мережевий канал шириною 56К, а інша половина використовує оптичний канал, то комп'ютери, що створюють тестове навантаження на систему повинні використовувати ті ж з'єднання (ідеальний варіант) або емулювати затримки вищевказаних мережевих з'єднань.
Див. також
Посилання
- (англ.)
- The Test Management Guide — A to Z and FAQ Knowledgebase (англ.)
- Текст лекцій до курсу «Технології розробки і тестування програм» Дідковська М. В.
- Про Тестинг — Тестирование Программного Обеспечения (рос.)
- Портал специалистов по тестированию и обеспечению качества ПО(рос.)
- Портал об автоматизированном тестировании ПО(рос.)
- Качество программного обеспечения(рос.)
- Портал об автоматизированном тестировании ПО(рос.)
- Я — QA | Скажи багам нет!(рос.)
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Testuvannya produktivnosti performance testing v programnij inzheneriyi ce testuvannya yake provoditsya z cillyu viznachennya yak shvidko pracyuye programa abo yiyi chastina pid deyakim navantazhennyam Testuvannya produktivnosti namagayetsya vrahovuvati produktivnist na stadiyi Vidi testuvannya produktivnostiV testuvanni produktivnosti rozriznyayut nastupni napryamki navantazhuvalne load stresove stress testuvannya stabilnosti endurance or soak or stability testuvannya na vidmovu ta vidnovlennya Failover and Recovery Testing ob yemne testuvannya Volume Testing ship testuvannya Spike Testing Navantazhuvalne testuvannya Load Testing Navantazhuvalne testuvannya load testing ce prosta forma testuvannya produktivnosti Vono zazvichaj provoditsya dlya togo shob ociniti povedinku programi dodatka iz zadanim ochikuvanim navantazhennyam Cim navantazhennyam mozhe buti napriklad kilkist koristuvachiv yaki budut odnochasno pracyuvati z programoyu Takij vid testuvannya dozvolyaye otrimati chas vidguku vsih najvazhlivishih biznes tranzakcij Stresove testuvannya Stress Testing Stresove testuvannya zazvichaj vikoristovuyetsya dlya vstanovlennya mezhi propusknoyi zdatnosti programi Cej tip testuvannya provoditsya dlya viznachennya nadijnosti sistemi pri ekstremalnih abo neproporcijnih navantazhennyah i vidpovidaye na pitannya pro dostatnyu produktivnist sistemi u vipadku yaksho potochne navantazhennya znachno perevishit ochikuvanij maksimum Testuvannya stabilnosti Stability Testing Testuvannya stabilnosti provoditsya z metoyu perekonatisya v tomu sho programa vitrimaye ochikuvane navantazhennya protyagom trivalogo chasu Pri provedenni cogo vidu testuvannya zdijsnyuyetsya sposterezhennya za spozhivannyam programoyu pam yati shob viyaviti potencijni vtrati Krim cogo take testuvannya viyavlyaye degradaciyu produktivnosti sho virazhayetsya v znizhenni shvidkosti obrobki informaciyi ta zbilshenni chasu vidguku programi pislya trivaloyi roboti porivnyano z pochatkom testu Ob yemne testuvannya Volume Testing Ob yemne testuvannya Volume Testing testuvannya provoditsya zi zbilshennyam ne navantazhennya i chasu roboti a kilkosti vikoristovuvanih danih yaki zberigayutsya i vikoristovuyutsya v dodatku Ship testuvannya Spike Testing Ship testuvannya provoditsya raptovo zbilshuyuchi navantazhennya na nevelikij chas stvoryuvane za dopomogoyu duzhe velikogo chisla koristuvachiv i sposterigayuchi za povedinkoyu sistemi Meta polyagaye v tomu shob viznachiti chi postrazhdaye produktivnist sistemi abo vona vidmovit abo vona zmozhe obrobiti rizki zmini navantazhennya Viznachennya cilej testuvannya produktivnostiV zagalnih vipadkah testuvannya produktivnosti mozhe sluguvati riznim cilyam z metoyu demonstraciyi togo sho sistema zadovolnyaye produktivnist z metoyu viznachennya produktivnist yakoyi z dvoh abo bilshe sistem najkrasha z metoyu viznachennya yakij element navantazhennya abo chastina sistemi sprichinyaye znizhennya produktivnosti Bagato testiv na produktivnist roblyatsya bez sprobi osmisliti yih realni cili Pered pochatkom testuvannya zavzhdi zadati biznes pitannya Yaku metu mi peresliduyemo testuyuchi produktivnist Vidpovidi na ce pitannya ye chastinoyu tehniko ekonomichnogo obgruntuvannya abo business case testuvannya Cili mozhut vidriznyatisya v zalezhnosti vid tehnologij sho vikoristovuyutsya dodatkom abo jogo priznachennya prote voni zavzhdi vklyuchayut shos z nizhchenavedenogo Paralelizm Propuskna zdatnist Yaksho kincevimi koristuvachami programi vvazhayutsya koristuvachi yaki vikonuyut vhid v sistemu v bud yakij formi to v comu vipadku vkraj bazhano dosyagnennya paralelizmu Za viznachennyam ce maksimalne chislo paralelnih pracyuyuchih koristuvachiv dodatku pidtrimka yakogo ochikuyetsya vid programi v bud yakij moment chasu Model povedinki koristuvacha mozhe znachno vplivati na zdatnist dodatku do paralelnoyi obrobki zapitiv osoblivo yaksho vin vklyuchaye v sebe periodichnij vhid i vihid z sistemi Yaksho koncepciya programi ne polyagaye v roboti z konkretnimi kincevimi koristuvachami to peresliduvana meta dlya produktivnosti bude zasnovana na maksimalnij propusknij zdatnosti chi chisli tranzakcij za odinicyu chasu Horoshim prikladom u danomu vipadku bude pereglyad vebstorinok napriklad na portali Wikipedia Chas vidpovidi servera Cya koncepciya buduyetsya navkolo chasu vidpovidi odnogo vuzla dodatku na zapit nadislanij inshim Prostim prikladom ye HTTP GET zapit z brauzera robochoyi stanciyi na vebserver Praktichno vsi programi rozrobleni dlya navantazhuvalnogo testuvannya pracyuyut same za ciyeyu shemoyu vimiryuvan Inodi docilno staviti zavdannya po dosyagnennyu produktivnosti chasu vidpovidi servera sered vsih vuzliv dodatku Chas vidobrazhennya Chas vidobrazhennya odne z najskladnishih dlya programi dlya navantazhuvalnogo testuvannya ponyat tak yak v zagalnomu vipadku voni ne vikoristovuyut koncepciyu roboti z tim sho vidbuvayetsya na okremih vuzlah sistemi obmezhuyuchis tilki rozpiznavannyam periodu chasu protyagom yakogo nemaye merezhevoyi aktivnosti Dlya togo shob zamiryati chas vidobrazhennya v zagalnomu vipadku potribno vklyuchati funkcionalni testovi scenariyi v testi produktivnosti ale bilshist program dlya testuvannya produktivnosti ne vklyuchayut v sebe taku mozhlivist Vimogi do produktivnosti Duzhe vazhlivo detalizuvati vimogi do produktivnosti i dokumentuvati yih v yakomu nebud plani testuvannya produktivnosti V idealnomu vipadku ce robitsya na stadiyi rozrobki vimog pri rozrobci sistemi do opracyuvannya detalej yiyi dizajnu Prote testuvannya produktivnosti chasto ne provoditsya zgidno zi specifikaciyeyu tak yak nemaye zafiksovanogo rozuminnya pro maksimalnij chas vidpovidi dlya zadanogo chisla koristuvachiv Testuvannya produktivnosti chasto vikoristovuyetsya yak chastina procesu profajlingu produktivnosti Jogo ideya polyagaye v tomu shob znajti slabku lanku taku chastinu sistemi zbilshivshi chas reakciyi yakoyi mozhna polipshiti zagalnu produktivnist sistemi Viznachennya konkretnoyi chastini sistemi sho stoyit na comu kritichnomu shlyahu inodi duzhe neproste zavdannya tomu deyaki programi dlya testuvannya vklyuchayut v sebe abo mozhut buti dodani za dopomogoyu add on iv instrumenti zapusheni na serveri agenti i sposterigayut za chasom vikonannya tranzakcij chasom dostupu do bazi danih Testuvannya produktivnosti mozhe provoditisya z vikoristannyam globalnoyi merezhi i navit u geografichno viddalenih miscyah yaksho vrahovuvati toj fakt sho shvidkist roboti merezhi Internet zalezhit vid miscya roztashuvannya Vono takozh mozhe provoditisya i lokalno ale v comu vipadku neobhidno nalashtuvati merezhevi marshrutizatori takim chinom shob z yavilasya zatrimka prisutnya v usih publichnih merezhah Navantazhennya sho dodayetsya do sistemi povinne zbigatisya z realnim stanom sprav Tak napriklad yaksho 50 koristuvachiv sistemi dlya dostupu do sistemi vikoristovuyut merezhevij kanal shirinoyu 56K a insha polovina vikoristovuye optichnij kanal to komp yuteri sho stvoryuyut testove navantazhennya na sistemu povinni vikoristovuvati ti zh z yednannya idealnij variant abo emulyuvati zatrimki vishevkazanih merezhevih z yednan Div takozhTestuvannya Testuvannya programnogo zabezpechennya Yakist programnogo zabezpechennya Tehnologiya rozrobki programnogo zabezpechennya Zvorotne semantichne trasuvannya JUnit BagtrekerPosilannya angl The Test Management Guide A to Z and FAQ Knowledgebase angl Tekst lekcij do kursu Tehnologiyi rozrobki i testuvannya program Didkovska M V Pro Testing Testirovanie Programmnogo Obespecheniya ros Portal specialistov po testirovaniyu i obespecheniyu kachestva PO ros Portal ob avtomatizirovannom testirovanii PO ros Kachestvo programmnogo obespecheniya ros Portal ob avtomatizirovannom testirovanii PO ros Ya QA Skazhi bagam net ros