Mi az a modell alapú tesztelés?
⚡ Okos összefoglaló
A modellalapú tesztelés a szoftver futásidejű viselkedését ellenőrzi egy abszolút teszt által készített előrejelzésekkel szemben.traca rendszer t modelljét, teszteseteket automatikusan generálva véges állapotgépekből, állapotdiagramokból vagy UML-jelölésekből, a kézi vezérlés helyett.
Mi az a modell alapú tesztelés?
Modell alapú tesztelés egy szoftvertesztelési technika, ahol a tesztelt szoftver futásidejű viselkedését egy modell által készített előrejelzésekkel vetik össze. A modell egy rendszer viselkedésének leírása, amely bemeneti sorozatokkal, műveletekkel, feltételekkel, kimenettel és a bemenetről kimenetre áramló adatokkal fejezhető ki. Egy használható modellnek gyakorlatilag érthetőnek, újrafelhasználhatónak és megoszthatónak kell lennie, és pontosan le kell írnia a tesztelt rendszert.
Számos modell érhető el, és mindegyik a rendszer viselkedésének egy másik aspektusát írja le. Gyakori példák:
- Adatáramlás
- Az áramlás szabályozása
- Függőségi grafikonok
- Döntési táblázatok
- Állapotváltó gépek
A modellalapú tesztelés leírja, hogyan viselkedik egy rendszer a modell által meghatározott cselekvésre válaszul. Adjuk meg a cselekvést, majd ellenőrizzük, hogy a rendszer a modell előrejelzései szerint reagál-e. A kettő közötti bármilyen eltérés vagy a szoftver hibája, vagy a modell hibája, és mindkettőt érdemes megvizsgálni.
Ez egy könnyűsúlyú formális módszer egy rendszer validálására, és ugyanolyan könnyen alkalmazható hardver- és szoftvertesztelésre. Mivel a tesztek a viselkedés specifikációjából, nem pedig a kódból származnak, a technika a ... fekete doboz tesztelés család szoftvertesztelési technikák.
Modell alapú tesztelési példa
Egy viselkedési modell elolvasásának legegyszerűbb módja, ha végigkövetjük az egyiket. Az alábbi ábra egy rövid szövegszerkesztési feladatot modellez, ahol minden mező az alkalmazás egy lehetséges állapotát, minden nyíl pedig egy felhasználó által végrehajtható műveletet jelöl.
A modell egy leegyszerűsített megközelítést mutat be a versíráshoz a Jegyzettömbben, és bemutatja az egyes lépésekhez kapcsolódó lehetséges műveleteket. Minden művelethez, például az alkalmazás elindításához, egy vers beírásához vagy a fájl mentéséhez egy próbaper generálható, és a kimenet ellenőrizhető. Ugyanazon a diagramon egy másik útvonalon haladva, például mentés nélküli indítás és lezárás, egy másik tesztesetet hozunk létre extra tervezési költség nélkül, ami a teljes technika gazdasági érve.
Az MBT típusai
Kétféle modellalapú tesztelési keretrendszer létezik, és a különbség közöttük egyszerűen a tesztlépések előállításában rejlik:
- Offline / előzetesen: Tesztkészletek generálása a végrehajtás előtt. A tesztkészlet tesztesetek gyűjteménye, és ebben a módban a tesztkészletet tárolják, felülvizsgálják és újrafuttatják, mint bármely más tesztkészletet. automatizálási tesztelés eszköz.
- Online / menet közben: Tesztkészletek generálása a teszt végrehajtása során, ahol a következő lépést az alapján választják ki, hogy a rendszer hogyan reagált az előzőre.
Az offline generálás szabályozott környezetekhez illik, amelyek áttekinthető, megismételhető készletet igényelnek. Az online generálás hosszú távú feltáró munkamenetekhez illik állapotalapú rendszerekkel szemben, mivel a generátor a valós válaszra tud reagálni, nem pedig az előrejelzettre.
Hogyan működik a modellalapú tesztelés?
Bármelyik keretrendszert is használjuk, a technika ugyanazt az öt szakaszt követi. Minden szakasz létrehoz egy műterméket, amelyet a következő szakasz felhasznál, ezért a modell, és nem a tesztszkript lesz az, amit a csapat karbantart.
- 1. lépés: A modell megépítése. Követelmények vagy specifikációk lefordítása egy ABS-betraca várható viselkedés modellje, amely meghatározza az állapotokat, a közöttük lévő átmeneteket és az egyes átmeneteket kiváltó bemeneteket.
- 2. lépés: Válassza ki a tesztkiválasztási kritériumokat. A kritériumok megmondják a generátornak, hogy mikor kell leállnia. Gyakoriak az összes állapotot lefedő lefedettség, amely minden állapotot legalább egyszer meglátogat; az összes átmenetet lefedő lefedettség, amely minden nyilat legalább egyszer végrehajt; és az útvonal- vagy adatfolyam-lefedettség a mélyebb feltáráshoz.
- 3. lépés: Hasizmok generálásatract tesztesetek. Az eszköz végigsétál a modellen, és hasizomgyakorlatok sorozatát bocsát ki.tract lépések, amelyek megfelelnek a kiválasztott kritériumoknak, az egyes lépések várható eredményével együtt.
- 4. lépés: A hasizmok betonozásatract-tesztek. Egy adapter réteg leképezi az egyes hasizmokattracne lépjen rá egy valós, a rendszerrel szembeni műveletre, például egy felhasználói felülettel való interakcióra, egy API hívás vagy protokollüzenet. Ez a térképping egyszer íródik, és minden létrehozott teszt újra felhasználja.
- 5. lépés: Végrehajtás és ítéletek kiosztása. A konkrét teszteket a tesztelt rendszerrel futtatják le, minden megfigyelt választ összehasonlítanak a modell előrejelzésével, és rögzítik a sikeres vagy sikertelen eredményt. tracvisszatért a modell eleméhez, amely létrehozta azt.
Az tracAz 5. lépésben létrehozott teljesítőképesség a gyakorlati megtérülés. Amikor egy követelmény megváltozik, a modell is megváltozik, és az érintett tesztek újragenerálódnak ahelyett, hogy újraírnák őket, ezért a csapatok gyakran végeznek ilyen jellegű teszteket. regressziós teszt egy stabil specifikációval szemben a legtöbb előny.
Különböző modellek a tesztelésben
Az MBT megértéséhez szükséges megérteni az alábbiakban ismertetett néhányat. Mindegyik modell a kifejezőerőt az erőfeszítéssel cseréli cserélgetni, így a választás attól függ, hogy mennyire bonyolult valójában a tesztelt viselkedés.
Véges állapotú gépek
Ez a modell segít a tesztelőknek a kiválasztott bemenettől függően felmérni az eredményt. A bemenetek különböző kombinációi a rendszer egy adott állapotát eredményezhetik.
A rendszernek lesz egy adott állapota és egy aktuális állapota, amelyet a tesztelők által megadott bemenetek halmaza szabályoz.
Vegyük figyelembe az alábbi példát. Egy rendszer lehetővé teszi az alkalmazottak számára, hogy bejelentkezzenek egy alkalmazásba. Az alkalmazott aktuális állapota „Ki”, és „Be” lesz, amint bejelentkezik a rendszerbe. A „Be” állapotban az alkalmazott megtekintheti, kinyomtathatja és beolvashatja a rendszerben található dokumentumokat.
Az adott példához tartozó állapotgép itt látható, ahol minden nyíl az átmenetet okozó bemenettel van jelölve.
Állami diagramok
Az állapotdiagram a véges állapotgép kiterjesztése, és összetett, valamint valós idejű rendszerekhez használható. Az állapotdiagramok a rendszer különböző viselkedéseit írják le, meghatározott számú állapottal rendelkeznek, és a rendszer viselkedését elemzik és minden állapothoz tartozó események formájában ábrázolják. A gyakorlatban fontos kiterjesztés a hierarchia: az állapotdiagram lehetővé teszi a beágyazott és párhuzamos állapotokat, így egy olyan gép, amelynek több tucat lapos állapotra lenne szüksége, kompakt módon rajzolható meg.
Például a hibák a hibakezelő eszközben „Új” állapottal jelennek meg. Miután a fejlesztők kijavították a hibát, az állapotot „Javítva”-ra kell változtatni. Ha a hiba nincs kijavítva, az állapot „Újra megnyitva”-ra változik. Az állapotdiagramokat úgy kell megtervezni, hogy minden állapothoz esemény kerüljön meghívásra.
A hiba életciklusa az alábbiakban látható, ahol minden állapot állapotként, minden munkafolyamat-művelet pedig az az eseményként jelenik meg, amely a hibát a kettő között mozgatja.
Egységes modellezési nyelv (UML)
Egységes modellezési nyelv (UML) egy szabványosított, általános célú modellezőnyelv. Az UML grafikus jelölési technikák egy sorát tartalmazza, amelyek vizuális modellek létrehozására szolgálnak, és amelyek nagyon bonyolult rendszerviselkedést írhatnak le.
Az UML olyan jelölésekkel rendelkezik, mint például:
- Tevékenységek
- Actors
- Üzleti folyamat
- alkatrészek
- Programozási nyelv
Az aktivitás- és állapotgép-diagramokat a tesztgenerátorok a leggyakrabban olvassák, ahogy az alábbi UML-modell is mutatja.
Modellalapú tesztelőeszközök
Egy papíron lévő modell önmagában semmit sem generál. Szükség van egy generátorra, amely bejárja a modellt és tesztutakat generál, az eszközpiac pedig nyílt forráskódú generátorokra és kereskedelmi teszttervező platformokra oszlik.
- GraphWalker — egy nyílt forráskódú eszköz, amely irányított gráfokként formált modelleket olvas be, és tesztútvonalakat generál belőlük, választható generátorokkal és leállítási feltételekkel.
- fMBT — egy nyílt forráskódú, modellalapú tesztelőeszköz-készlet az Inteltől, amely támogatja a tesztek generálását és végrehajtását állapotmodellek ellen.
- Conformiq — egy kereskedelmi forgalomban kapható automatizált teszttervező termék, amely grafikus viselkedési modellekből származtat teszteseteket és szkripteket.
- MaTeLo és MBTsuite — statisztikai használati modellekre és meglévő automatizálási keretrendszerekbe való tesztek generálására szolgáló kereskedelmi platformok.
- Specifikációböngésző - Microsofta Visual Studio modellalapú tesztelési kiterjesztése, amelyet széles körben idéznek a protokolltesztelési szakirodalomban.
A kiválasztás kevésbé függ a funkciólistáktól, mint inkább két kérdéstől: melyik jelölést tudja a csapat ténylegesen megrajzolni, és hogy az eszköz képes-e teszteket kibocsátani a már használatban lévő automatizálási keretrendszerbe. Egy olyan generátor, amely olyan csomagokat hoz létre, amelyeket senki sem tud végrehajtani, egy lépést hozzáad a folyamathoz, ahelyett, hogy eltávolítana egyet.
Modellalapú tesztelés vs. hagyományos teszttervezés
Érdemes rámutatni a kézzel írott teszttervezéssel való különbségre, mivel a két megközelítés nem feltétlenül jobb, hanem máshol vall kudarcot.
| Aspect | Modell alapú tesztelés | Hagyományos tesztterv |
|---|---|---|
| A tesztesetek forrása | Automatikusan generálva egy viselkedési modellből | Egy tesztelő által egyedileg írt a követelmények alapján |
| A követelményváltozás hatása | Frissítse a modellt, és generálja újra az érintett teszteket. | Minden érintett teszteset manuális megkeresése és szerkesztése |
| Lefedettség | Modellkritériumokhoz, például minden állapothoz vagy minden átmenethez viszonyítva mérve | A követelményekhez mérve, és a tesztelő megítélésétől függően |
| Előzetes költség | Magas: modellezési készség, szerszámbeállítás és adapterréteg | Alacsony: a tesztelő azonnal elkezdhet írni |
| Legjobban illeszkedő | Állapotalapú, hosszú élettartamú rendszerek stabil specifikációval | Rövid projektek, egyszeri feladatok és felfedező munka |
| Fő hibamód | Egy rossz vagy elavult modell csendben hibás teszteket generál | Hézagok és duplikátumok halmozódnak fel egy nagy csomagban |
Az alábbi evolúció kontextusba helyezi a technikát: a manuális tesztfuttatás utat engedett az automatizált végrehajtásnak, a modellalapú megközelítések pedig egy szinttel korábbra, magába a teszttervezésbe helyezik az automatizálást.
A modell alapú tesztelés kihívásai
Az MBT bevezetése egy szervezetben jelentős anyagi és anyagi befektetést igényel. Az alábbiakban az MBT hátrányait ismertetjük: szoftverfejlesztés:
- A tesztelőknek olyan modellezési készségekre van szükségük, amelyeket a hagyományos teszttervezés nem igényel.
- A tanulási görbe hosszú, és az első projekt általában többe kerül, mint amennyit megtakarítanak vele.
- Magát a modellt nehéz lehet megérteni és áttekinteni, különösen miután kinőtte.
- Egy olyan modell, amely eltér a specifikációtól, magabiztos, de hibás teszteket eredményez.
- Az adapter réteg, ami hasat forgattracA valós cselekvésbe vezető lépéseket külön kell megírni és karbantartani.
- A modell mérete gyorsan növekszik, így egy korlátozás nélküli állapotmodell több útvonalat képes létrehozni, mint amennyit bármelyik csapat végre tud hajtani.
Ezek egyike sem ok a technika elkerülésére, de együttesen megmagyarázzák, miért vezetik be az MBT-t általában egy stabil alrendszeren először, ahelyett, hogy egy egészre kiterjedően vezetnék be. szoftvertesztelés életciklusa egyszerre.
A modellalapú tesztelés előnyei
Ezekkel a költségekkel szemben az MBT előnyei a következők:
- Könnyű teszteset és tesztkészlet karbantartás, mivel a modell szerkesztése történik az egyes tesztek helyett.
- Költségcsökkentés egy hosszú távú projekt élettartama alatt.
- Továbbfejlesztett teszt lefedettség, mivel a generátor olyan útvonalakat is felfedez, amelyeket egy személy kihagyna.
- A különböző generált csomagok párhuzamosan több gépen is futtathatók.
- Korai hibaészlelés, mivel a kétértelműségek már a modell építése során felszínre kerülnek, mielőtt bármilyen kód végrehajtásra kerülne.
- Az ugyanazon tesztelési erőfeszítés során talált hibák számának növekedése.
- Időmegtakarítás a teszttervezésben, miután a modell és az adapter létezik.
- A tesztelők munkájának megnövekedett elégedettsége, mivel a munka az ismétlődő szkriptelésről a modellezésre és elemzésre helyeződik át.
A tesztelők munka közben amúgy is mentális modelleket építenek, az MBT pedig egyszerűen papírra viszi ezeket a mentális modelleket, ahol áttekinthetők, verziózhatók és újra felhasználhatók. A technika többi elérhető megközelítéssel való illeszkedését a következő részben ismertetjük. a szoftvertesztelés típusai.





