Mutationstest - Fördelar och nackdelar med mutationstest

Innehållsförteckning:

Anonim

Vad är mutationstest?

Eftersom ordet "mutera" i allmänhet betyder "förändringen" så betyder mutationstestningen. Mutationstestning är den typ av mjukvarutestning som utförs genom att ändra eller mutera kodstycket för att kontrollera / verifiera att testfallen är tillräckligt kapabla för att hitta fel / defekter. Mutationstest omfattas av White Box-testen och görs i grund och botten när du utför enhetstesterna i en viss modul i en applikation. Ändringarna gjorda i den gjorda källan / huvudkoden görs i en liten mängd så att den inte påverkar det övergripande målet för den. Detta är också känt som feldetekteringsteknik eftersom det görs i syfte att lokalisera svagheten i testfallen genom att skapa ett fel i den ursprungliga koden.

Innan du testar är det mycket viktigt att förstå målet bakom det. Huvudsyftet med mutationstestning är att hitta effektiviteten hos de utvecklade testfallen, som borde vara tillräckligt kapabla för att upptäcka till och med den lilla förändringen i koden. Det görs för att hitta problemen i testsviten och testdata som används vid testning av vilken programvara som helst. Flera mutanter eller versioner av den ursprungliga koden skapas och var och en av dem testas mot de ursprungliga testfallen. Om testfallsresultaten förblir desamma som vi har i den ursprungliga koden, kontrolleras både koden och testfallen igen eftersom antingen koden inte kördes eller att testsviten inte är tillräckligt kapabel för att hitta den mutanta koden.

Typer av mutationstest

Det finns i princip tre typer av mutationstester som utförs för att skapa mutanter av den ursprungliga koden:

1. Värdemutation

Som namnet indikerar, i värdemutation, värdet på konstanter, parametrar som skickas i metoderna, värden som används i slingor ändras för att skapa ett mutantprogram. Antingen ändras det stora värdet till ett mindre eller vice versa. I princip ändras värden som redan definierats i programmet för att utföra värdemutation.

Original kod:

int a = 75636737;
int b = 3454;
int mult = a * b;
print(mult);

Mutantkod:

int a = 75;
int b = 345466465;
int mult = a * b;
print(mult);

2. Beslutsmutation

I beslutsmutation ändras de logiska och aritmetiska operatörer som används i programmet vilket ändrar det övergripande beslutsfattandet i programmet och dess respektive resultat. Exempelvis körs vissa "if" -satser endast när (a> b). I mutantkod ändras denna operatör till (a <b), vilket ändrar det övergripande beslutsfattandet i kod.

Original kod:

if (a>b || b>c)
(
print(“yes”);
)
else
(
print (“No”);
)

Mutantkod:

if (a (
print(“yes”);
)
else
(
print (“No”);
)

3. Uttalande mutation

I Statement Mutation görs ändringar i de fullständiga koduppgifterna för att skapa ett mutantprogram. Ändringar i uttalandet kan ta bort hela uttalandet, ändra ordning på uttalandet i kod, kopiera och klistra in uttalningarna på någon annan plats i koden, upprepa eller duplicera de få uttalandena i den ursprungliga koden.

Original kod:

if (a > b)
(
print(“a is greater”);
)
else
(
print(“b is greater”);
)

Mutantkod:

if(a > b)
(
// removing the statement
)
else
(
print(“b is greater”);
)

Fördelar och nackdelar med mutationstest

Fördelar och nackdelar med mutationstest ges nedan:

fördelar

Några av fördelarna med mutationstest ges nedan:

  1. En av de största fördelarna med mutationstestning är att det hjälper till att hitta de dolda defekterna och maximal kodtäckning för att identifiera den del av koden som inte testas noggrant av de ursprungliga testfallen.
  2. Mutationstest hjälper till att hitta kvaliteten på testfall som används för att testa programvaran och ge äkta feedback till testare om testprocessen och testkvaliteten.
  3. Det hjälper till att hitta högkvalitativa buggar som inte är enkla att hitta genom normal testning.
  4. Mutationstest avslöjar ibland de dolda defekterna som kodduklarhet, felaktiga värden på variabler, etc i koden i de tidiga stadierna av mjukvarutestning, vilket är mycket fördelaktigt.
  5. Ibland är både koden och testfallet korrekta men problemet orsakas på grund av testdata. Mutationstest hjälper till att ta reda på problemen i testdata.

nackdelar

Nedan ges några av nackdelarna med mutationstest:

  1. Vid mutationstest skapas och testas olika mutanter av koden mot den ursprungliga testsviten och följaktligen tar det mycket tid medan det bara utför enhetstestning av en enda funktion / modul i en applikation.
  2. Som nämnts ovan testas alla mutanter mot den ursprungliga sviten, så det skulle finnas ett stort antal testfall som måste genomföras och därför kan detta inte utföras utan ett automatiseringsverktyg som är kostsamt och kan hämma projektbudgeten.
  3. Komplexa mutanter som skapats av den ursprungliga koden kan leda till förvirring och misstag i den ursprungliga koden.

Slutsats

Ovanstående förklaring definierar tydligt vad som är Mutationstest och dess betydelse inom området för testning av en applikation. Om vi ​​vill genomgå och avgöra testning av en applikation med testscenarierna för maximal kodtäckning, spelar mutationstest en avgörande roll.

Rekommenderade artiklar

Detta är en guide till mutationstest. Här diskuterar vi vad som är mutationstest? och typerna av mutationstestning tillsammans med fördelar och nackdelar. Du kan också gå igenom våra andra föreslagna artiklar för att lära dig mer

  1. Vad är React?
  2. Negativt test
  3. Testning av mobilapplikation
  4. Avancerad krypterings standard
  5. Kodtäckning vs testtäckning | Topp 4 skillnader att lära sig
  6. Verktyg för kodtäckning | Topp 6 verktyg för kodtäckning