Što je mutacijsko testiranje?
Kao što riječ 'mutiraj' općenito znači 'promjena', tako to znači i mutacijsko testiranje. Testiranje mutacija je vrsta testiranja softvera koje se provodi promjenom ili mutiranjem dijela koda radi provjere / provjere jesu li test slučajevi dovoljno sposobni da pronađu pogreške / nedostatke. Testiranje mutacija provodi se pod Bijelim testom i u osnovi se provodi tijekom izvođenja Jedinstvenih testova određenog modula aplikacije. Promjene učinjene u izvornom / glavnom kodu učinjene su u maloj količini tako da to ne bi utjecalo na ukupni cilj istog. To je također poznato kao tehnika otkrivanja kvarova jer se radi u svrhu pronalaženja slabosti testnih slučajeva stvaranjem greške u izvornom kodu.
Prije provođenja bilo kakvog testiranja, vrlo je važno razumjeti cilj koji stoji iza njega. Glavni cilj mutacijskog testiranja je pronaći učinkovitost razvijenih testnih slučajeva, koji bi trebali biti dovoljno sposobni za otkrivanje čak i malih promjena u kodu. Provodi se pronalaženjem problema u programu za testiranje i testnim podacima koji se koriste tijekom izvođenja testiranja bilo koje softverske aplikacije. Stvara se više mutanata ili verzija originalnog koda i svaki se testira u odnosu na izvorne testne slučajeve. Ako rezultati test slučaja ostanu isti kao u originalnom kodu, tada se i kôd i testni slučajevi ponovo provjeravaju jer ili kôd nije izvršen ili testni skup nije dovoljno sposoban da pronađe mutirani kôd.
Vrste ispitivanja mutacijama
U osnovi postoje 3 vrste ispitivanja mutacija koji se izvode kako bi stvorili mutante izvornog koda:
1. Vrijednost mutacija
Kao što ime pokazuje, u mutaciji vrijednosti, vrijednosti konstanti, parametri proslijeđeni metodama, vrijednosti koje se koriste u petlji mijenjaju se za stvaranje programa mutanta. Ili se velika vrijednost mijenja u manju ili obrnuto. U osnovi se vrijednosti koje su već definirane u programu mijenjaju u izvođenju mutacije vrijednosti.
Izvorni kod:
int a = 75636737;
int b = 3454;
int mult = a * b;
print(mult);
Mutant code:
int a = 75;
int b = 345466465;
int mult = a * b;
print(mult);
2. mutacija odluke
U mutaciji odluke mijenjaju se logički i aritmetički operatori koji se koriste u programu što mijenja cjelokupno odlučivanje u programu i njegove rezultate. Na primjer, određeni izraz 'ako' pokreće se samo kad (a> b). U mutiranom kôdu, ovaj operator se mijenja u (a <b), što mijenja cjelokupno odlučivanje u kodu.
Izvorni kod:
if (a>b || b>c)
(
print(“yes”);
)
else
(
print (“No”);
)
Mutant code:
if (a (
print(“yes”);
)
else
(
print (“No”);
)
3. Izjava mutacija
U Izjavi mutacija unose se cjelovite izjave koda kako bi se stvorio mutirani program. Promjene u izjavi mogu biti brisanje cijele izjave, promjena redoslijeda izraza u kodu, kopiranje i lijepljenje izjava na neko drugo mjesto u kodu, ponavljanje ili dupliciranje nekoliko izjava u izvornom kodu.
Izvorni kod:
if (a > b)
(
print(“a is greater”);
)
else
(
print(“b is greater”);
)
Mutant code:
if(a > b)
(
// removing the statement
)
else
(
print(“b is greater”);
)
Prednosti i nedostaci mutacijskog ispitivanja
Prednosti i nedostaci mutacijskog ispitivanja dati su u nastavku:
prednosti
Neke od prednosti mutacijskog testiranja date su u nastavku:
- Jedna od najvećih prednosti mutacijskog testiranja je ta što pomaže pronaći skrivene nedostatke i maksimalnu pokrivenost koda kako bi se identificirao dio koda koji nije izvorno testiran u izvornim testnim slučajevima.
- Testiranje mutacija pomaže u pronalaženju kvalitete testnih slučajeva koji se koriste za testiranje softvera i pružanju istinskih povratnih informacija testerima o procesu testiranja i kvaliteti ispitivanja.
- Pomaže u pronalaženju grešaka visoke kvalitete koje nije lako pronaći normalnim testiranjem.
- Testiranje mutacija ponekad otkriva skrivene nedostatke poput dvosmislenosti koda, netočnih vrijednosti varijabli itd. U kodu u ranim fazama testiranja softvera, što je vrlo korisno.
- Ponekad su i kôd i testni slučaj točni, ali problem je nastao zbog podataka ispitivanja. Testiranje mutacija pomaže u otkrivanju problema s testnim podacima.
Nedostaci
Ispod su neki od nedostataka mutacijskog testiranja:
- U mutacijskom testiranju, različiti mutanti koda stvaraju se i testiraju u odnosu na originalni testni skup, pa im to oduzima puno vremena dok izvodi samo Jedinstveno testiranje pojedine značajke / modula aplikacije.
- Kao što je gore spomenuto, svi mutanti se testiraju u odnosu na izvorni skup, tako da bi bilo potrebno izvršiti veliki broj testnih slučajeva, pa se to ne može izvesti bez alata za automatizaciju koji je skup i može smanjiti proračun projekta.
- Složeni mutanti stvoreni u izvornom kodu mogu dovesti do zbrke i grešaka u izvornom kodu.
Zaključak
Gore navedeno objašnjenje jasno definira što je mutacijsko testiranje i njegovu važnost u području testiranja aplikacije. Ako želimo ispitivanje i iscrpljivanje aplikacije s testnim scenarijima maksimalne pokrivenosti koda, mutacijsko testiranje igra presudnu ulogu.
Preporučeni članci
Ovo je vodič za testiranje mutacija. Ovdje razgovaramo o tome što je mutacijsko testiranje? i vrste testiranja mutacija zajedno s prednostima i nedostacima. Također možete proći kroz naše druge predložene članke da biste saznali više
- Što je React?
- Negativno testiranje
- Testiranje mobilne aplikacije
- Napredni standard šifriranja
- Pokrivenost koda vs pokusna pokrivenost | Top 4 razlike za učenje
- Alati za pokrivanje kodova | Top 6 alata za pokrivanje koda