Шта је мутацијско тестирање?
Као што реч 'мутирај' уопште значи 'промена', тако то значи и мутацијско тестирање. Тестирање мутација је врста тестирања софтвера која се врши променом или мутирањем дела кода како би се проверило / проверило да ли су тест случајеви довољно способни да пронађу грешке / недостатке. Тестирање мутација спада под тестирање Вхите Бок-а и у основи се обавља током извођења Унит тестова одређеног модула апликације. Промене извршене у изворном / главном коду су учињене у малој количини тако да то не би утицало на укупни циљ истог. То је такође познато као техника откривања грешака, јер се ради у сврху проналажења слабости тестних случајева стварањем грешке у оригиналном коду.
Пре обављања било ког тестирања, веома је важно разумети циљ који стоји иза њега. Главни циљ мутацијског тестирања је пронаћи ефикасност развијених тест случајева, који би требали бити довољно способни да открију чак и мале промене у коду. То се ради на проналажењу проблема у програму за тестирање и тестним подацима који се користе током извођења тестирања било које софтверске апликације. Направљено је више мутаната или верзија оригиналног кода и сваки од њих се тестира у односу на оригиналне тест случајеве. Ако резултати тест случаја остану исти као код оригиналног кода, и код и тест случајеви се поново провјеравају јер или код није извршен или тест скуп није довољно способан да нађе мутирани код.
Врсте тестирања мутацијама
У основи постоје 3 врсте тестирања мутацијама које се изводе како би се створили мутанти оригиналног кода:
1. Вриједност мутација
Као што име каже, у мутацији вредности, вредности константи, параметри прослеђени методама, вредности које се користе у петљи се мењају да би се створио мутирани програм. Или се велика вредност мења у мању или обрнуто. У основи се вредности које су већ дефинисане у програму мењају да би се извршила мутација вредности.
Оригинал Цоде:
int a = 75636737;
int b = 3454;
int mult = a * b;
print(mult);
Мутант Цоде:
int a = 75;
int b = 345466465;
int mult = a * b;
print(mult);
2. Мутација одлуке
У мутацији одлука, логички и аритметички оператори који се користе у програму се мењају што мења целокупно одлучивање у програму и његове резултате. На примјер, одређени израз 'ако' се покреће само кад (а> б). У мутантном коду, овај оператор се мења у (а <б), што мења целокупну одлуку у коду.
Оригинал Цоде:
if (a>b || b>c)
(
print(“yes”);
)
else
(
print (“No”);
)
Мутант Цоде:
if (a (
print(“yes”);
)
else
(
print (“No”);
)
3. Изјава мутација
У мутацији Статемент-а промене се праве у потпуним изјавама кода како би се створио мутирани програм. Промјене у изјави могу бити брисање цијеле изјаве, промјена редослиједа израза у коду, копирање и лијепљење изјава на неку другу локацију у коду, понављање или дуплицирање неколико изјава у изворном коду.
Оригинал Цоде:
if (a > b)
(
print(“a is greater”);
)
else
(
print(“b is greater”);
)
Мутант Цоде:
if(a > b)
(
// removing the statement
)
else
(
print(“b is greater”);
)
Предности и недостаци мутацијског тестирања
Предности и недостаци мутацијског испитивања дати су у даљем тексту:
Предности
Неке од предности мутацијског тестирања дате су у наставку:
- Једна од највећих предности мутацијског тестирања је та што помаже у проналажењу скривених недостатака и максималном покривању кода како би се идентификовао део кода који није оригинално тестиран у оригиналним тест случајевима.
- Тестирање мутација помаже у проналажењу квалитета тест случајева који се користе за тестирање софтвера и пружању истинских повратних информација тестерима о процесу тестирања и квалитети теста.
- Помаже у проналажењу грешака високог квалитета које није лако пронаћи нормалним тестирањем.
- Тестирање мутација понекад открива скривене недостатке попут двосмислености кода, погрешних вредности променљивих итд. У коду у раним фазама тестирања софтвера, што је врло корисно.
- Понекад су и код и тест случај исправни, али проблем је настао због података о тесту. Тестирање мутација помаже да се пронађу проблеми у подацима теста.
Недостаци
У наставку су наведени неки недостаци мутацијског тестирања:
- У мутацијском тестирању, различити мутанти кода се креирају и тестирају у односу на оригинални тестни пакет, па им то одузима пуно времена док изводи само јединствено тестирање једне карактеристике / модула апликације.
- Као што је горе споменуто, сви мутанти се тестирају у односу на оригинални пакет, тако да би било потребно извршити велики број тест случајева, а самим тим се то не може извршити без алата за аутоматизацију који је скуп и може да омета буџет пројекта.
- Сложени мутанти креирани од оригиналног кода могу довести до конфузије и грешака у оригиналном коду.
Закључак
Горе наведено објашњење јасно дефинише шта је мутацијско тестирање и његов значај у области тестирања апликације. Ако желимо да тестирамо и исцрпимо тестирање апликације са тестним сценаријима максималне покривености кода, мутацијско тестирање игра пресудну улогу.
Препоручени чланци
Ово је водич за тестирање мутација. Овде разговарамо о томе шта је мутацијско тестирање? и врсте тестирања мутација заједно са предностима и недостацима. Можете и да прођете кроз друге наше предложене чланке да бисте сазнали више
- Шта је Реацт?
- Негативно тестирање
- Тестирање мобилне апликације
- Напредни стандард шифровања
- Кодна покривеност према покусној покривености | Топ 4 разлике за учење
- Алати за покривање кода | Топ 6 алата за покривање кода