Mi az a mutációs tesztelés? (Példa)

Mi az a mutációs tesztelés?

Mutációs tesztelés A szoftverteszt egy olyan típusa, amelyben a forráskód bizonyos utasításait megváltoztatják/mutálják annak ellenőrzésére, hogy a tesztesetek képesek-e hibákat találni a forráskódban. A Mutation Testing célja a tesztesetek minőségének biztosítása a robusztusság szempontjából, hogy megbukjon a mutált forráskóddal.

A mutáns programban végrehajtott változtatásokat rendkívül kicsiben kell tartani, hogy ne befolyásolják a program általános célját. A mutációtesztelést hiba alapú tesztelési stratégiának is nevezik, mivel magában foglalja a programban történő hiba létrehozását, és ez egyfajta fehér Box Tesztelés amelyet főleg arra használnak Egység tesztelése.

A mutációt eredetileg 1971-ben javasolták, de a magas költségek miatt elvesztette a lelkesedését. Most ismét elterjedt, és széles körben használják olyan nyelveken, mint pl Java és XML.

Hogyan kell végrehajtani a mutációtesztet?

Mutációteszt végrehajtása

A mutációs tesztelés (mutációanalízis) végrehajtásának lépései a következők:

1 lépés: A hibákat mutánsoknak nevezett változatok létrehozásával vezetik be a program forráskódjába. Minden mutánsnak egyetlen hibát kell tartalmaznia, és a cél az, hogy a mutáns verzió meghibásodjon, ami a tesztesetek hatékonyságát mutatja.

2 lépés: A tesztesetek az eredeti programra és a mutáns programra is vonatkoznak. A Teszt eset megfelelőnek kell lennie, és úgy van beállítva, hogy észlelje a program hibáit.

3 lépés: Hasonlítsa össze az eredeti és a mutáns program eredményeit.

4 lépés: Ha az eredeti program és a mutáns programok eltérő kimenetet generálnak, akkor a teszteset megöli a mutánst. Ezért a teszteset elég jó az eredeti és a mutáns program közötti változás észlelésére.

5 lépés: Ha az eredeti program és a mutáns program ugyanazt a kimenetet generálja, a mutáns életben marad. Ilyen esetekben hatékonyabb teszteseteket kell létrehozni, amelyek elpusztítják az összes mutánst.

Hogyan készítsünk mutáns programokat?

Mutáns programok létrehozása

A mutáció nem más, mint egyetlen szintaktikai változtatás, amelyet a program utasításában hajtanak végre. Minden mutáns programnak egy mutációval kell különböznie az eredeti programtól.

Eredeti Program Mutáns Program
Ha (x>y)

Nyomtassa ki a „Hello”

Más

Nyomtassa ki a "Szia"

Ha(x<y)

Nyomtassa ki a „Hello”

Más

Nyomtassa ki a "Szia"

Mit kell megváltoztatni a Mutant Programban?

Számos technika használható mutáns programok generálására. Nézzük meg őket

Operaés helyettesítő operátorok Kifejezés módosítása Operatorzok Nyilatkozat módosítása Operatorzok
Cserélje ki az operandust egy másik operandusra (x-et y-vel vagy y-t x-szel) vagy a konstans értékkel. Operátor cseréje vagy új operátorok beszúrása a programutasításban. A programozott utasításokat úgy módosítják, hogy mutáns programokat hozzanak létre.
Példa-

Ha(x>y) cserélje ki az x és y értékeket

Ha(5>y) cserélje ki x-et 5 konstansra

Példa-

Ha(x==y)

Helyettesíthetjük az ==-t >=-ra, és mutáns programunk lehet as

If(x>=y) és ++ beillesztése az utasításba

Ha(x==++y)

Példa-

Törölje az else részt az if-else utasításban

Törölje a teljes if-else utasítást a program viselkedésének ellenőrzéséhez

Néhány minta mutációs operátor:

  • GOTO címkecsere
  • A visszáru nyilatkozat cseréje
  • Nyilatkozat törlése
  • Unáris operátor beszúrása (mint – és ++)
  • Logikai csatlakozó csere
  • Összehasonlítható tömbnévcsere
  • Az else rész eltávolítása az if-else utasításból
  • Operátorok hozzáadása vagy cseréje
  • Nyilatkozat pótlása az adatok megváltoztatásával
  • Adatmódosítás a változókhoz
  • Adattípusok módosítása a programban

A mutációteszt automatizálása

A mutációteszt rendkívül időigényes és bonyolult manuálisan végrehajtani. A folyamat felgyorsítása érdekében célszerű automatizálási eszközöket választani. Az automatizálási eszközök csökkentik a tesztelés költségeit is.

A rendelkezésre álló eszközök listája -

A mutációvizsgálat típusai

In Szoftverfejlesztés, A mutációtesztelés alapvetően 3 típusba sorolható – utasításmutáció, döntésmutáció és értékmutáció.

  1. Állítás mutáció – a fejlesztő kivágja és beilleszti a kód egy részét, aminek az eredménye lehet néhány sor eltávolítása
  2. Értékmutáció– az elsődleges paraméterek értékei módosulnak
  3. Döntési mutáció– az ellenőrző nyilatkozatokat módosítani kell

Mutációs pontszám

A mutációs pontszám az elölt mutánsok százalékos aránya a mutánsok teljes számához viszonyítva.

  • Mutációs pontszám = (elölt mutánsok / összes mutáns száma) * 100

Mutációs pontszám

A tesztesetek mutáció megfelelő, ha a pontszám 100%. A kísérleti eredmények azt mutatták, hogy a mutációs tesztelés hatékony módszer a tesztesetek megfelelőségének mérésére. A fő hátrány azonban az, hogy a mutánsok előállításának és az egyes teszteseteknek a mutáns programmal szembeni végrehajtásának magas költsége.

A mutációteszt előnyei

A mutációtesztelés előnyei a következők:

  • Ez egy hatékony megközelítés a forrásprogram magas lefedettségének elérésére.
  • Ez a teszt képes átfogóan tesztelni a mutáns programot.
  • A mutációtesztelés jó szintű hibaészlelést biztosít a szoftverfejlesztő számára.
  • Ez a módszer feltárja a forráskód kétértelműségét, és képes észlelni a program összes hibáját.
  • Az ügyfelek számára ez a tesztelés a legmegbízhatóbb és legstabilabb rendszer hasznára válik.

A mutációteszt hátrányai

Másrészt a mutánstesztelés hátrányai a következők:

  • A mutációk tesztelése rendkívül költséges és időigényes, mivel sok mutáns programot kell létrehozni.
  • Mivel időigényes, mondhatjuk, hogy ez a tesztelés nem végezhető el automatizálási eszköz nélkül.
  • Minden mutációnak ugyanannyi tesztesete lesz, mint az eredeti programé. Ezért előfordulhat, hogy nagyszámú mutáns programot kell tesztelni az eredeti tesztkészlettel szemben.
  • Mivel ez a módszer forráskód módosításokat tartalmaz, egyáltalán nem alkalmazható erre Fekete Box Tesztelés.

Következtetés

Szeretné alkalmazásának kimerítő tesztelését? A válasz Mutációteszt. Ez a legátfogóbb technika a program tesztelésére. Ez az a módszer, amely egy tesztelési program hatékonyságát és pontosságát ellenőrzi a rendszer hibáinak vagy hibáinak észlelésére.