Еквивалентно партиционисање у тестирању софтвера је техника тестирања црне кутије која вам помаже да изградите ефикасне тестне случајеве без угрожавања покривености тестом.
У овом чланку ћемо погледати шта је партиционисање класа еквиваленције, зашто је корисно и истражићемо неке од процеса и приступа које можете да користите да бисте откључали предности ове технике.
Шта је партиционисање класа еквиваленције
у тестирању софтвера?
Сав софтвер има посебне услове уноса. У контексту тестирања софтвера, ови услови уноса описују вредности или податке које тестер мора да користи да би проверио квалитет и функционалност свог софтвера. Ови уноси могу бити нешто једноставно попут клика мишем, све до текста и бројева.
Еквивалентна партиција у тестирању софтвера истражује различите улазе потребне за коришћење софтвера и групише их у класе еквиваленције, тј. скупове улаза који ће имати еквивалентан ефекат на понашање софтвера.
Ако знате како ће се понашати свака група инпута, онда не морате да тестирате сваког представника групе. Као такво, партиционисање класа еквиваленције је одличан начин да се помогне тестерима да смање учесталост сувишних тестова. У хиперконкурентном свету развоја софтвера са све краћим роковима, уштеда времена и труда у животном циклусу тестирања софтвера (СТЛЦ) је кључна.
На крају, вреди напоменути да је тестирање еквиваленције техника тестирања црне кутије. Укратко, то значи да тестери не морају да знају за интерни код програма или унутрашње функционисање. Тестови се заснивају на улазима, излазима и спољашњим понашањима. Као такви, ови тестови су високо фокусирани на понашање корисника током коришћења програма.
1. Софтверско тестирање еквиваленције партиционирања укратко
Еквивалентно партиционисање дели улазне податке за тестирање софтвера у два табора: валидне и неважеће улазе. Вредности унутар сваке партиције морају проузроковати да софтвер покаже исто понашање. На пример:
- Ако је услов једне вредности у Партицији А тачан, морају бити и друге вредности у Партицији А.
- Слично, ако су услови једне вредности у партицији А лажни, друге вредности у партицији А такође морају бити нетачне.
У контексту тестирања, свака партиција мора бити покривена бар једном. Логично, ово значи да ако један унос у Партицији А не успе, онда ће и сви остали улази такође покварити. Овај процес би требало да уштеди време јер уместо тестирања сваког улаза који се налази у Партицији А, тестери могу да тестирају само један и екстраполирају резултат на основу његових заједничких карактеристика.
2. Зашто је тестирање класе еквиваленције у тестирању софтвера важно
Пре него што уђемо у директне предности тестирања класе еквиваленције у тестирању софтвера, морамо дефинисати зашто је приступ важан.
Сви тестери разумеју да тестирање софтвера захтева компромисе. Време и буџети су ограничени, што значи да тестери морају максимално да искористе своје ресурсе. Партиционирање еквивалентности тестирања софтвера помаже тимовима да пронађу равнотежу између ефикасности и поузданости у свом тестирању смањењем броја улаза.
Предности еквивалентне партиције
у тестирању софтвера
Еквивалентну партицију у тестирању софтвера фаворизују тимови за тестирање из различитих разлога. Ево неких од најупечатљивијих.
1. Ефикасност
Велика предност тестирања еквивалентних партиција лежи у његовој ефикасности. Када тестери користе еквивалентно партиционисање, могу да смање број тест случајева који су им потребни без угрожавања покривености тестом. Одабиром улазног случаја из сваке класе еквиваленције, тестери могу бити сигурни да разумеју како њихов софтвер ради са различитим улазима.
2. Једноставност
Још једна велика предност партиционисања еквивалентности тестирања софтвера је једноставност. Разбијање разноликог скупа улазних података у важећим и неважећим подацима значи да је планирање теста далеко једноставније. Тестирање сваког улаза појединачно захтева много документације и координације. Смањивање тога на један репрезентативан пример поједностављује процес тестирања.
Побољшана покривеност
Коришћење класа еквиваленције у тестирању такође вам омогућава да ефикасније користите време тестирања. Смањење уноса теста у класе значи да можете детаљније да тестирате сваку класу. Овај свеобухватан приступ би био искрено немогућ ако бисте тестирали сваки улаз појединачно. Еквивалентно партиционисање омогућава тимовима да добију темељне и тестирају важеће и неважеће податке, рубне случајеве, граничне вредности и још много тога.
3. Поновна употреба
Прво време које уложите у успостављање сваке класе еквиваленције у тестирању софтвера се исплати ако поново користите ове класе за будуће улазне тестове. Иако све партиције неће бити релевантне за будуће тестове, оне које јесу ће вам уштедети много времена са будућим пројектима или чак ситуацијама регресионог тестирања .
Недостаци еквивалентне партиције
у тестирању софтвера
Иако еквивалентно партиционисање нуди неке велике предности, то није идеално решење за сваки сценарио. Хајде да истражимо нека од његових ограничења.
1. Редослед уноса
У одређеним ситуацијама, редослед уноса је критичан део тестирања функционалности апликације. То није нешто што заиста можете да смањите коришћењем еквивалентне партиције. Тестери морају да буду свесни ових ситуација и да користе алтернативне технике да би обезбедили добру покривеност.
2. Комплексне улазне зависности
Сложени софтвер са сложеним улазним зависностима је још једна област у којој су изложена ограничења еквивалентног партиционисања. На пример, софтвер који даје прорачуне на основу различитих улаза. У овом сценарију, тестери би морали да користе различите технике да смање комбинаторну експлозију и повећају вероватноћу изоловања дефеката.
Алтернативни приступи за допуну
ограничења испитивања еквиваленције
Док је тестирање еквивалентне партиције прикладно за многе сценарије тестирања, веома сложен софтвер са сложеним зависностима између улазних вредности може захтевати додатне комплементарне приступе.
Када је у питању писање тест случајева за сложени софтвер, употреба комбинације ових приступа је добра идеја.
1. Тестирање у пару
Тестирање у пару је техника тестирања софтвера која тестира све могуће комбинације сваког пара улазних параметара. Овај приступ осигурава да се сваки пар параметара тестира заједно најмање једном.
2. Тестирање табеле одлука
Табела одлука помаже тестерима да методично мапирају различите комбинације уноса. То је добар начин да се обезбеди систематска покривеност када постоје сложене зависности.
3. Тестирање транзиције стања
Овај тип тестирања мери како софтвер прелази између различитих стања као одговор на различите комбинације улаза.
4. Тестирање засновано на моделу
Овај приступ захтева израду модела заснованог на интерној логици софтвера и коришћење алата за аутоматизацију за креирање тест случајева заснованих на том моделу. Ова техника је способна да се носи са сложеношћу и обезбеди адекватну покривеност.
Примери тестирања партиционисања класе еквиваленције
Најбољи начин да разумете еквивалентно партиционисање је да погледате како и где можете да користите класу еквиваленције у тестирању софтвера. Ево неколико примера који ће вам помоћи да додатно визуализујете концепт.
1. Пример тестирања партиционисања класе еквиваленције #1
Образац за поруџбину на мрежи је добар пример класе еквиваленције у тестирању софтвера.
Рецимо да правите апликацију за онлајн продавца стационарне опреме. Постоји типичан образац за наруџбу за папире А4 формата. Ево како можете користити класе еквиваленције да бисте тестирали овај образац.
Еквивалентне класе:
Количине А4 папира су у одређеном опсегу, на пример, од 1 до 100. Дакле, три класе су:
- 1 до 100
- Бројеви испод 1
- Бројеви изнад 100.
Тест случајева:
Требало би спровести три тест случаја, са следећим очекиваним исходима
- Било који број између 1 и 100 = Поруџбина је обрађена
- Бројеви испод 1 = порука о грешци
- Бројеви преко 100 = порука о грешци
2. Пример тестирања еквивалентне партиције #2
Класа еквиваленције у тестирању софтвера може да се бави не само бројевима. У овом примеру ћемо истражити како можете користити исти принцип за верификацију портала за отпремање датотека. Рецимо да треба да тестирате сајт који од корисника захтева да отпреме личне документе, али можете да прихватите само одређене формате.
Еквивалентне класе:
- Подржани документи су ПДФ и ЈПЕГ.
- Неподржани документи су сви остали формати докумената
- Нема документа
Тест случајева:
- Тестирајте тако што ћете отпремити ПДФ или ЈПЕГ = успешно отпремање
- Тестирајте отпремањем неподржаног формата = порука о грешци
- Тест без отпремања датотеке = порука о грешци
Како имплементирати еквивалентну партицију
приступ тестирању софтвера
Ако желите да користите класе еквиваленције у тестирању, потребно је да заузмете стратешки приступ. Ево корисног водича корак по корак за имплементацију еквивалентне партиције у тестирању софтвера.
Корак #1: Идентификујте улазне променљиве
Сваки софтвер одговара на различите улазне варијабле. За сложени софтвер, ове варијабле могу бити огромне. Дакле, прођите кроз софтверске захтеве и спецификације и одредите све варијабле које утичу на понашање софтвера.
Неки од најочигледнијих уноса ће укључивати обрасце за унос корисника. Међутим, морате узети у обзир шири опсег уноса за своју листу. Такође можете узети у обзир варијабле окружења, АПИ позиве, интерне прорачуне и тако даље.
Следеће, требало би да разумете различите типове променљивих података. Можете категоризовати ове променљиве као цео број, Булов, стринг, итд., да бисте дефинисали одговарајуће партиције.
Коначно, морате истражити ограничења уноса. То ће бити ствари као што су дозвољени знакови, дефинисани формати и минималне/максималне вредности.
Корак 2. Одредите важеће и неважеће партиције
Погледајте сваку улазну променљиву и почните да их делите према важећим и неважећим исходима. Ово ће бити ваше класе еквиваленције у тестирању.
1. Важеће партиције
Важеће партиције се могу поделити у две класе.
Класе позитивне еквиваленције:
Вредности за које очекујете да ће ваш софтвер успешно обрађивати. На пример, за софтвер који бележи процентуалне оцене, важи све између 0 и 100.
Класе негативне еквиваленције:
Ова категорија ће бити за вредности које су изван граница очекиваног уноса, али које ваш софтвер треба да обради са поруком о грешци. На пример, унос је 110 за оцену у процентима, што тражи од софтвера да врати поруку о грешци која каже: „Све вредности морају бити од 0 до 100“.
2. Неважеће партиције
Ове класе еквиваленције ће укључивати улазе који ће покренути грешке или неочекивана понашања. У нашем примеру изнад, то би могло да укључи покушаје да се у процентуалну оцену унесу А+ или Б или слични подаци. Иако би ови улази могли бити технички исправни, они су изван нумеричких очекивања.
#3. Писање ефикасних тест случајева
Следеће, морате да дизајнирате тест случајеве који покривају сваку еквивалентну партицију најмање једном. Као што је раније поменуто у чланку, ово обезбеђује одговарајућу покривеност тестом.
Прво, морате да изаберете репрезентативне вредности унутар сваке еквивалентне партиције која може да покрије и важеће и неважеће податке.
Савети за писање чврстих тест случајева
- Размислите о граничним вредностима: Уверите се да сте тестирали границе својих партиција. Минимум, максимум, инклузивно, ексклузивно, итд., јер су ове области јаки кандидати за грешке. На пример, ако су ваша очекивана уноса између 0 и 100, тестирајте негативне вредности, као и бројеве попут 101.
- Размотрите позитивне и негативне сценарије тестирања и за ваше важеће и за неважеће тестове.
- Комбиновано тестирање је добра идеја. Користите неколико различитих приступа као што је наведено у нашим алтернативним приступима како бисте допунили ограничења горњег одељка о тестирању еквиваленције.
- Документујте образложење зашто су улазне вредности подељене на специфичне партиције и јасно оцртајте очекивано понашање сваког теста
- Где је могуће, користите визуелне алате да бисте својим тест случајевима донели осећај јасноће и објективности користећи дијаграме или табеле за мапирање ваших партиција.
#4. Закажите и извршите своје тестне случајеве
Дајте приоритет својим задацима на основу фактора као што су:
- Које области ће највероватније имати дефекте
- Који сценарији ће највероватније изазвати озбиљне сценарије, као што су падови или замрзавање
Затим извршите своје тестове и забележите резултате и све грешке које се појаве. За сложене програме са пуно улаза, можете користити РПА алате да опонашате радње корисника.
#5. Анализирајте резултате
Обједините прикупљене податке теста и анализирајте резултате. Неке методе које треба да користите су:
- Погледајте сваки тест случај и упоредите стварне резултате са вашим очекиваним резултатима
- Пронађите сва неслагања и истражите и пријавите све грешке и недостатке.
# 6 Додатни савети
Иако се ови савети неће применити у сваком сценарију, они ће се показати корисним за сложено тестирање софтвера.
- Табеле одлука су одличан начин да визуализујете своје еквивалентне партиције и различите комбинације улаза које бисте можда желели да користите
- Можете да спојите класе еквиваленције ако показују скоро идентично понашање, додатно оптимизујући процес тестирања
- Користите тестирање граничних вредности да бисте побољшали детекцију дефеката
- Где је могуће, аутоматизујте своје тестне случајеве за партиционисање еквивалентности
Партиционисање еквиваленције и анализа граничних вредности
Еквивалентно партиционисање је засновано на претпоставци да ће сваки тест унутар партиције дати исти резултат. Иако је то тачно у многим ситуацијама, неће увек успети. На пример, сви улази који су грешком додати партицији могу остати непроверени, што доводи до смањене покривености и потенцијалне нестабилности софтвера у наставку.
Решење овог проблема је тестирање граничних вредности. Омогућава тимовима за тестирање софтвера да се фокусирају на области које ће највероватније садржати ризике и тестирају софтвер на основу тога. Укратко, предлаже да ће се ризици највероватније појавити на ивицама или границама ваших улазних партиција. Стога, тестери могу писати тест случајеве на горњим и доњим границама улаза, поред других тест случајева класе еквиваленције.
Еквивалентно партиционисање и аутоматизација са ЗАПТЕСТ-ом
Алати за аутоматизацију софтверског тестирања, као што је ЗАПТЕСТ , могу помоћи тимовима да аутоматизују еквивалентно партиционисање и током креирања и извршавања теста.
Хајде да истражимо како ЗАПТЕСТ може да вам помогне да откријете предности овог корисног приступа тестирању црне кутије.
1. Избор алата
Важно је одабрати прави алат за посао. Већина алата за аутоматизацију тестирања специјализована је за тестирање на вебу, мобилном или десктопу. ЗАПТЕСТ је способан да се бави тестирањем на различитим платформама и апликацијама, што га чини солидним избором.
2. Напишите и извршите тест случајеве
ЗАПТЕСТ 1Сцрипт вам омогућава да скенирате кориснички интерфејс да бисте направили аутоматизацију теста. Поред тога, можете скенирати и макете апликација ако сте у раној фази развоја. Користећи Сцан ГУИ функцију, ЗАПТЕСТ ће скенирати све тестне објекте и додати их на листу објеката.
Одавде можете додати објекте дијаграму и направити кораке теста.
ЗАПТЕСТ вам омогућава да аутоматизујете писање случајева помоћу једноставног интерфејса за превлачење и испуштање. Није вам потребна стручност у кодирању да бисте направили тест случајеве са ЗАПТЕСТ-ом. Дакле, одавде можете да изаберете одговарајућу операцију из падајућег метода и направите тест случај на основу улазних вредности потребних за ваш интерфејс. Затим можете да направите тест случајеве за сваку еквивалентност и извршите своје тестне случајеве. Можете чак и поново користити тест случајеве и уређивати их у уређивачу корака, штедећи много времена.
3. Извештавање и управљање тестним случајевима
ЗАПТЕСТ вам омогућава да паралелно покрећете тест случајеве, штедећи знатно време. Ово вам може помоћи да покренете велики број различитих еквивалентних партиција одједном или покренете одређене групе тестова.
Резултате је лако прикупити захваљујући детаљним извештајима о неуспешним/положеним извештајима, снимцима екрана, евиденцијама извршења и метрикама учинка у вези са сваким тестним случајем.
4. Одржавање тест случаја
Такође можете једноставно пратити и одржавати своје тест случајеве захваљујући квалитетним могућностима контроле верзија. Штавише, ЗАПТЕСТ корисници могу да клонирају и поново користе тестове како би постигли нови ниво ефикасности.
ЗАПТЕСТ нуди много више функционалности осим аутоматизације тест случајева. Са пакетом РПА алата, ЗАПТЕСТ нуди 2-у-1 функционалност, премошћујући јаз између ДевОпс-а и БизОпс-а у будућности обележеној хипераутоматизацијом, где ће све што се може аутоматизовати бити аутоматизовано.
Последње мисли
Еквивалентно партиционисање је елегантно решење за ситуације у којима тестери морају успоставити равнотежу између ефикасности и тачности. Са неким софтвером који омогућава скоро бесконачан опсег уноса, партиционисање класе еквиваленције помаже тимовима да разложе податке тестирања на управљиве делове величине залогаја од којих се сваки може детаљно тестирати.