Тестване на мутации - Предимства и недостатъци на теста за мутация

Съдържание:

Anonim

Какво е тест за мутация?

Както думата „мутира“ като цяло означава „промяна“, така означава и тестът за мутация. Тестът за мутация е видът на софтуерното тестване, което се извършва чрез промяна или мутация на кода, за да се провери / провери дали тестовите случаи са достатъчно способни да открият грешките / дефектите. Тестът за мутации попада под тестването на Бялата кутия и се извършва основно по време на извършване на тестовете на единица модул на приложение. Направените промени в изходния / основния код са направени в малко количество, така че да не повлияят на общата цел на него. Това е известно също като Техника за откриване на неизправности, тъй като се прави с цел откриване на слабостта на тестовите случаи чрез създаване на повреда в оригиналния код.

Преди да извършите каквото и да е тестване, е много важно да разберете целта, която стои зад него. Основната цел на теста за мутация е да се намери ефективността на разработените тестови случаи, които трябва да са достатъчно способни да открият дори малката промяна, направена в кода. Прави се, за да се намерят проблемите в тестовия пакет и тестовите данни, които се използват по време на извършване на тестване на всяко софтуерно приложение. Създават се множество мутанти или версии на оригиналния код и всеки един от тях се тества спрямо оригиналните тестови случаи. Ако резултатите от тестовите случаи останат същите, каквито сме в оригиналния код, тогава и кодът и тестовите случаи се проверяват отново, защото или кодът не е изпълнен, или тестовият набор не е достатъчно способен да намери мутиращия код.

Видове тестове за мутация

Основно има 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”);
)

Предимства и недостатъци на теста за мутация

Предимствата и недостатъците на теста за мутация са дадени по-долу:

Предимства

Някои от предимствата на теста за мутация са дадени по-долу:

  1. Едно от най-големите предимства на теста за мутация е, че помага да се намерят скритите дефекти и максималното покритие на кода, за да се идентифицира частта от кода, която не е старателно тествана от оригиналните тестови случаи.
  2. Тестът за мутация помага да се намери качеството на тестовите случаи, които се използват за тестване на софтуера и предоставящи истинска обратна връзка на тестерите относно процеса на тестване и качеството на теста.
  3. Той помага да се намерят висококачествените грешки, които не са лесни за намиране чрез нормално тестване.
  4. Тестването на мутацията понякога разкрива скритите дефекти като двусмисленост на кода, неправилни стойности на променливи и т.н. в кода в ранните етапи на софтуерното тестване, което е много полезно.
  5. Понякога кодът и тестовият случай са правилни, но проблемът е причинен поради данните от теста. Тестът за мутация помага да се открият проблемите в тестовите данни.

Недостатъци

По-долу са дадени някои от недостатъците на теста за мутация:

  1. При тестване на мутации различни мутанти на кода се създават и тестват спрямо оригиналния тестов пакет и следователно отнема много време, докато се извършва само тестване на единица единица функция / модул на приложение.
  2. Както бе споменато по-горе, всички мутанти са тествани спрямо оригиналния пакет, така че ще има голям брой тестови случаи, които трябва да бъдат изпълнени и следователно това не може да се извърши без инструмент за автоматизация, който е скъп и може да затрудни бюджета на проекта.
  3. Сложните мутанти, създадени от оригиналния код, могат да доведат до объркване и грешки в оригиналния код.

заключение

Горното обяснение ясно определя какво е мутационно тестване и неговото значение в областта на тестване на приложение. Ако искаме чрез и изчерпване на тест на приложение с тестови сценарии за максимално покритие на кода, тестването на мутациите играе решаваща роля.

Препоръчителни статии

Това е ръководство за тестване на мутации. Тук обсъждаме какво е тест за мутация? и видовете тестове за мутация, заедно с предимствата и недостатъците. Можете също да прегледате и другите ни предложени статии, за да научите повече

  1. Какво е React?
  2. Отрицателно тестване
  3. Тестване на мобилно приложение
  4. Разширен стандарт за шифроване
  5. Кодово покритие срещу тестово покритие | Топ 4 разлики за научаване
  6. Инструменти за покритие на кода | Топ 6 инструменти за покритие на кода