Какво е тест за мутация?
Както думата „мутира“ като цяло означава „промяна“, така означава и тестът за мутация. Тестът за мутация е видът на софтуерното тестване, което се извършва чрез промяна или мутация на кода, за да се провери / провери дали тестовите случаи са достатъчно способни да открият грешките / дефектите. Тестът за мутации попада под тестването на Бялата кутия и се извършва основно по време на извършване на тестовете на единица модул на приложение. Направените промени в изходния / основния код са направени в малко количество, така че да не повлияят на общата цел на него. Това е известно също като Техника за откриване на неизправности, тъй като се прави с цел откриване на слабостта на тестовите случаи чрез създаване на повреда в оригиналния код.
Преди да извършите каквото и да е тестване, е много важно да разберете целта, която стои зад него. Основната цел на теста за мутация е да се намери ефективността на разработените тестови случаи, които трябва да са достатъчно способни да открият дори малката промяна, направена в кода. Прави се, за да се намерят проблемите в тестовия пакет и тестовите данни, които се използват по време на извършване на тестване на всяко софтуерно приложение. Създават се множество мутанти или версии на оригиналния код и всеки един от тях се тества спрямо оригиналните тестови случаи. Ако резултатите от тестовите случаи останат същите, каквито сме в оригиналния код, тогава и кодът и тестовите случаи се проверяват отново, защото или кодът не е изпълнен, или тестовият набор не е достатъчно способен да намери мутиращия код.
Видове тестове за мутация
Основно има 3 вида тестване на мутации, които се извършват за създаване на мутанти на оригиналния код:
1. Стойностна мутация
Както името показва, в Value mutation стойността на константи, параметрите, предавани в методите, стойностите, използвани в цикли, се променят, за да се създаде мутантна програма. Или голямата стойност се променя на по-малка или обратно. По принцип стойностите, които вече са дефинирани в програмата, се променят, за да извършат мутация на стойност.
Оригинален код:
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. Мутация на решение
В мутацията на решения логическите и аритметични оператори, използвани в програмата, се променят, което променя цялостното вземане на решения в програмата и съответните резултати. Например, определен оператор „ако“ се изпълнява само когато (a> b). В мутантния код, този оператор се променя на (a <b), което променя цялостното вземане на решение в кода.
Оригинален код:
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”);
)
Предимства и недостатъци на теста за мутация
Предимствата и недостатъците на теста за мутация са дадени по-долу:
Предимства
Някои от предимствата на теста за мутация са дадени по-долу:
- Едно от най-големите предимства на теста за мутация е, че помага да се намерят скритите дефекти и максималното покритие на кода, за да се идентифицира частта от кода, която не е старателно тествана от оригиналните тестови случаи.
- Тестът за мутация помага да се намери качеството на тестовите случаи, които се използват за тестване на софтуера и предоставящи истинска обратна връзка на тестерите относно процеса на тестване и качеството на теста.
- Той помага да се намерят висококачествените грешки, които не са лесни за намиране чрез нормално тестване.
- Тестването на мутацията понякога разкрива скритите дефекти като двусмисленост на кода, неправилни стойности на променливи и т.н. в кода в ранните етапи на софтуерното тестване, което е много полезно.
- Понякога кодът и тестовият случай са правилни, но проблемът е причинен поради данните от теста. Тестът за мутация помага да се открият проблемите в тестовите данни.
Недостатъци
По-долу са дадени някои от недостатъците на теста за мутация:
- При тестване на мутации различни мутанти на кода се създават и тестват спрямо оригиналния тестов пакет и следователно отнема много време, докато се извършва само тестване на единица единица функция / модул на приложение.
- Както бе споменато по-горе, всички мутанти са тествани спрямо оригиналния пакет, така че ще има голям брой тестови случаи, които трябва да бъдат изпълнени и следователно това не може да се извърши без инструмент за автоматизация, който е скъп и може да затрудни бюджета на проекта.
- Сложните мутанти, създадени от оригиналния код, могат да доведат до объркване и грешки в оригиналния код.
заключение
Горното обяснение ясно определя какво е мутационно тестване и неговото значение в областта на тестване на приложение. Ако искаме чрез и изчерпване на тест на приложение с тестови сценарии за максимално покритие на кода, тестването на мутациите играе решаваща роля.
Препоръчителни статии
Това е ръководство за тестване на мутации. Тук обсъждаме какво е тест за мутация? и видовете тестове за мутация, заедно с предимствата и недостатъците. Можете също да прегледате и другите ни предложени статии, за да научите повече
- Какво е React?
- Отрицателно тестване
- Тестване на мобилно приложение
- Разширен стандарт за шифроване
- Кодово покритие срещу тестово покритие | Топ 4 разлики за научаване
- Инструменти за покритие на кода | Топ 6 инструменти за покритие на кода