Мутационно тестване при софтуерно тестване: Mutant Score & Пример за анализ

Съдържание:

Anonim

Мутационно тестване

Мутационното тестване е вид софтуерно тестване, при което определени изрази на изходния код се променят / мутират, за да се провери дали тестовите случаи могат да открият грешки в изходния код. Целта на Mutation Testing е да осигури качеството на тестовите случаи по отношение на надеждността, че то трябва да се провали с мутиралия изходен код.

Промените, направени в мутантната програма, трябва да бъдат изключително малки, за да не повлияят на общата цел на програмата. Мутационното тестване също се нарича стратегия за тестване на базата на грешки, тъй като включва създаване на грешка в програмата и е вид тестване на бяла кутия, което се използва главно за тестване на единици.

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

В този урок ще научите -

  • Какво е тестване на мутации?
  • Как да извърша тестване на мутации?
  • Как да създам програми за мутанти?
  • Какво да промените в програма за мутанти?
  • Видове тестване на мутации
  • Резултат от мутация:
  • Предимства на мутационното тестване:
  • Недостатъци на мутационното тестване:

Как да извърша тестване на мутации?

Следват стъпките за извършване на тестване на мутация (анализ на мутация):

Стъпка 1 : Грешките се въвеждат в изходния код на програмата чрез създаване на много версии, наречени мутанти. Всеки мутант трябва да съдържа единична грешка и целта е да се провали версията на мутанта, което показва ефективността на тестовите случаи.

Стъпка 2 : Тестовите случаи се прилагат към оригиналната програма, а също и към мутантната програма. Тестовият случай трябва да е подходящ и е променен, за да открива грешки в програма.

Стъпка 3 : Сравнете резултатите от оригинална и мутантна програма.

Стъпка 4 : Ако оригиналната програма и мутантните програми генерират различен изход, тогава мутантът е убит от тестовия случай. Следователно тестовият случай е достатъчно добър, за да открие промяната между оригинала и мутантната програма.

Стъпка 5 : Ако оригиналната програма и мутантната програма генерират еднакви резултати, Mutant се поддържа жив. В такива случаи трябва да се създадат по-ефективни тестови случаи, които да убият всички мутанти.

Как да създам програми за мутанти?

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

Оригинална програма Мутантна програма
Ако (x> y)
Отпечатайте "Здравей" В
противен случай
отпечатайте "Здравей"
Ако ( x )Отпечатайте "Здравей" В
противен случай
Отпечатайте "Здравей"

Какво да промените в програма за мутанти?

Има няколко техники, които могат да се използват за генериране на мутантни програми. Нека ги разгледаме

Оператори за заместване на операнди Оператори за модификация на изрази Оператори за модификация на изявление
Заменете операнда с друг операнд (x с y или y с x) или с константната стойност. Заменете оператор или вмъкване на нови оператори в програмен оператор. Програмните изявления се модифицират, за да създадат мутантни програми.
Пример -
Ако (x> y) замени стойностите x и y
Ако (5> y) замени x с константа 5
Пример -
If (x == y)
Можем да заменим == в> = и да имаме мутантна програма като
If (x> = y) и вмъкване на ++ в изявлението
If (x == ++ y)
Пример -
Изтрийте частта else в оператор if-else
Изтрийте целия оператор if-else, за да проверите как се държи една програма
Някои от примерни оператори за мутация:
  • Подмяна на етикет GOTO
  • Връщане на заместване на извлечение
  • Изтриване на изявление
  • Влагане на унар оператор (като - и ++)
  • Подмяна на логически конектор
  • Сравнима подмяна на име на масив
  • Премахване на част от else в оператора if-else
  • Добавяне или замяна на оператори
  • Замяна на изявление чрез промяна на данните
  • Модификация на данните за променливите
  • Модификация на типовете данни в програмата

Автоматизация на тестване на мутации:

Тестването на мутации е изключително трудоемко и сложно за ръчно изпълнение. За да ускорите процеса, препоръчително е да изберете инструменти за автоматизация. Инструментите за автоматизация намаляват и разходите за тестване.

Списък на наличните инструменти -

  • Stryker
  • Тестване на PIT

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

В софтуерното инженерство тестовете за мутации могат да бъдат категоризирани в три типа - мутация на твърдение, мутация на решение и мутация на стойност.

  1. Statement Mutation - разработчикът изрязва и поставя част от код, чийто резултат може да бъде премахване на някои редове
  2. Мутация на стойности - стойностите на основните параметри се променят
  3. Мутация на решение - контролните изявления трябва да бъдат променени

Резултат от мутация:

Резултатът от мутациите се определя като процент на убити мутанти от общия брой мутанти.

  • Резултат от мутация = (Убити мутанти / Общ брой мутанти) * 100

Тестовите случаи са адекватни за мутация, ако резултатът е 100%. Експерименталните резултати показват, че тестването на мутации е ефективен подход за измерване на адекватността на тестовите случаи. Но основният недостатък е, че високата цена за генериране на мутанти и изпълнение на всеки тестов случай срещу тази мутантна програма.

Предимства на мутационното тестване:

Следват предимствата на мутационното тестване:

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

Недостатъци на мутационното тестване:

От друга страна, следните недостатъци на тестването на мутанти:

  • Тестването на мутации е изключително скъпо и отнема много време, тъй като има много мутантни програми, които трябва да бъдат генерирани.
  • Тъй като отнема много време, е справедливо да се каже, че това тестване не може да се направи без инструмент за автоматизация.
  • Всяка мутация ще има същия брой тестови случаи от този на оригиналната програма. Така че може да се наложи да се тестват голям брой мутантни програми спрямо оригиналния тестов пакет.
  • Тъй като този метод включва промени в изходния код, той изобщо не е приложим за тестване на черна кутия.

Заключение:

Искате ли изчерпателно тестване на вашето приложение? Отговорът е Мутационно тестване. Това е най-изчерпателната техника за тестване на програма. Това е методът, който проверява ефективността и точността на програма за тестване за откриване на грешки или грешки в системата.