Mutációs tesztelés A mutációs tesztelés előnyei és hátrányai

Tartalomjegyzék:

Anonim

Mi a mutációs tesztelés?

Mivel a „mutáció” szó általában azt jelenti, hogy a „változás”, a mutációteszt is ezt jelenti. A mutációs tesztelés a szoftver tesztelésének típusa, amelyet a kóddarab megváltoztatásával vagy mutációjával hajtanak végre annak ellenőrzése / igazolása érdekében, hogy a teszt esetek eléggé képesek-e megtalálni a hibákat / hibákat. A mutációs tesztelés a White Box tesztelés alá tartozik, és alapvetően az alkalmazás egy adott moduljának Unit teszteinek elvégzésekor történik. A forrás / fő kódban elvégzett változtatások csekély összegben történnek, hogy ez ne befolyásolja annak általános célkitűzését. Ezt a hibát észlelési technikának is nevezik, mivel arra szolgál, hogy a teszt esetek gyengeségét az eredeti kódban hiba létrehozásával állapítsák meg.

Mielőtt bármilyen tesztet elvégzünk, nagyon fontos megérteni annak hátterét. A mutációs tesztelés fő célja a kidolgozott teszt esetek hatékonyságának megtalálása, amelyeknek elég képesnek kell lenniük a kódban bekövetkezett apró változások észlelésére is. Megtörtént a tesztelési csomag problémáinak és a teszt adatoknak a megtalálása, amelyeket bármilyen szoftver alkalmazás tesztelésekor használnak. Az eredeti kód több mutánsát vagy változatát hozza létre, és mindegyiket megvizsgálják az eredeti teszt esetekkel szemben. Ha a teszt eredménye ugyanaz, mint az eredeti kódban, akkor a kódot és a teszt esetet ismételten ellenőrizzük, mert vagy a kód nem került végrehajtásra, vagy a tesztkészlet nem elégséges a mutáns kód megtalálásához.

A mutációs tesztelés típusai

Alapvetően háromféle mutációs tesztet végeznek, amelyeket az eredeti kód mutánsának létrehozására hajtanak végre:

1. Érték mutáció

Amint a név jelzi, az Érték mutációban az állandók, a módszerekben átadott paraméterek és a hurkokban használt értékek módosulnak mutáns program létrehozásához. Vagy a nagy értéket kisebbre változtatja, vagy fordítva. Alapvetően a programban már meghatározott értékeket megváltoztatják az értékmutáció végrehajtásához.

Eredeti kód:

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

Mutáns kód:

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

2. Döntés mutáció

A döntési mutáció során megváltoznak a programban használt logikai és számtani operátorok, ami megváltoztatja a program általános döntéshozatalát és annak megfelelő eredményeit. Például, bizonyos „if” utasítás csak akkor fut, ha (a> b). A mutáns kódban ezt az operátort (a <b) -re változtatják, ami megváltoztatja az általános döntéshozást kódban.

Eredeti kód:

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

Mutáns kód:

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

3. Nyilatkozat mutációja

Az Statement Mutation részben a kód teljes utasításaiban módosítják a mutáns programot. Az utasítás változásai lehetnek az egész utasítás törlése, az utasítások sorrendjének megváltoztatása a kódban, az utasítások másolása és beillesztése a kód más helyére, az eredeti kódban található néhány állítás megismétlése vagy másolása.

Eredeti kód:

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

Mutáns kód:

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

A mutációs tesztelés előnyei és hátrányai

A mutációs tesztelés előnyei és hátrányai az alábbiakban találhatók:

Előnyök

A mutációs tesztelés néhány előnye az alábbiakban olvasható:

  1. A mutációs tesztelés egyik legnagyobb előnye, hogy elősegíti a rejtett hibák és a maximális kódlefedettség megtalálását annak érdekében, hogy azonosítsa a kód azon részét, amelyet az eredeti teszt esetek nem alaposan tesztelnek.
  2. A mutációs tesztelés segít megtalálni a szoftver teszteléséhez használt teszt esetek minőségét, és valódi visszajelzést ad a tesztelőknek a tesztelési folyamatról és a teszt minőségéről.
  3. Segít megtalálni a kiváló minőségű hibákat, amelyeket normál teszteléssel nem könnyű megtalálni.
  4. A mutációs tesztelés néha felfedi a rejtett hibákat, például a kód kétértelműségét, a változók helytelen értékeit stb. A kódban a szoftver tesztelésének korai szakaszában, ami nagyon hasznos.
  5. Időnként mind a kód, mind a teszt helyes, de a teszt adatok miatt a problémát okozták. A mutációs tesztelés segítséget nyújt a teszt adatok hibáinak tisztázásában.

hátrányok

Az alábbiakban bemutatjuk a mutációs tesztelés néhány hátrányát:

  1. A mutációs tesztelés során a kód különféle mutánsai létrejönnek és tesztelésre kerülnek az eredeti tesztkészlettel szemben, ezért sok időt vesz igénybe, miközben csak egy alkalmazás egyetlen tulajdonságának / moduljának a Unit-tesztelése.
  2. Mint fentebb említettem, az összes mutánst az eredeti készlettel teszteljük, tehát nagyszámú teszt esetre van szükség, amelyeket végre kell hajtani, ezért ezt nem lehet elvégezni olyan automatizálási eszköz nélkül, amely költséges és akadályozhatja a projekt költségvetését.
  3. Az eredeti kódból létrehozott komplex mutánsok zavart és hibákat okozhatnak az eredeti kódban.

Következtetés

A fenti magyarázat világosan meghatározza, hogy mi a mutációs tesztelés, és milyen jelentőséggel bír az alkalmazás tesztelésének területén. Ha azt szeretnénk, hogy egy alkalmazás átmeneti és kimerítő tesztelést végezzünk a maximális kód lefedettség tesztforgatókönyveivel, a mutáció tesztelése döntő szerepet játszik.

Ajánlott cikkek

Ez egy útmutató a mutációs teszteléshez. Itt megvitatjuk, mi a mutációs tesztelés? valamint a mutációs tesztelés típusai, valamint az előnyei és hátrányai. További információkért áttekintheti a többi javasolt cikket is

  1. Mi a React?
  2. Negatív tesztelés
  3. Mobil alkalmazás tesztelése
  4. Speciális titkosítási szabvány
  5. Kód lefedettség vs teszt lefedettség | A 4 legfontosabb különbség a tanuláshoz
  6. Kódfedő eszközök | A 6 legnépszerűbb kódfedeles eszköz