Az osztályozásifa-módszer (angolul: Classification Tree Method) egy teszttervezési módszer, mivel a szoftverfejlesztés különböző területein használják. Grimm és Grochtmann fejlesztette ki 1993-ban. Az osztályozási fákat az osztályozásifa-módszer szempontjából nem szabad összetéveszteni a döntési fákkal.
Az osztályozásifa-módszer két fő lépésből áll: a teszt szempontjából releváns szempontok (ún. osztályozások) és a hozzájuk tartozó értékek (ún. osztályok) azonosítása, valamint Különböző osztályok kombinációja az minden osztályozásból tesztesetekbe. A teszt szempontjából releváns aspektusok azonosítása általában a tesztelendő rendszer (funkcionális) specifikációját (például követelmények, használati esetek stb.) követi. Ezek az aspektusok alkotják a tesztobjektum bemeneti és kimeneti adatterét.
A teszttervezés második lépése ezután a kombinatorikus teszttervezés alapelveit követi.
Bár a módszer tollal és papírral is alkalmazható, a szokásos módszer az osztályozásifa-módszerét megvalósító szoftver, az osztályozásifa-szerkesztő (Classification Tree Editor) használata.
Alkalmazás Az osztályozásifa-módszer (CTM) alkalmazásának előfeltétele a tesztelendő rendszer kiválasztása (vagy meghatározása). A CTM egy feketedobozos tesztelési módszer, és bármilyen típusú tesztelendő rendszert támogat. Ez magában foglalja (de nem kizárólagosan) a hardverrendszereket, az integrált hardver-szoftver rendszereket, az egyszerű szoftverrendszereket, beleértve a beágyazott szoftvereket, a felhasználói felületeket, az operációs rendszereket, az elemzőket és egyebeket (vagy az említett rendszerek alrendszereit ).
A kiválasztott tesztelendő rendszer esetén az osztályozásifa-módszerének első lépése a vizsgálat szempontjából releváns szempontok azonosítása. Bármely tesztelendő rendszert egy osztályozásokkal lehet leírni, amely tartalmazza mind a bemeneti, mind a kimeneti paramétereket. (A bemeneti paraméterek magukban foglalhatják a környezeti állapotokat, előfeltételeket és más, inkább ritka paramétereket is). Minden osztályozásnak bármennyi, egymástól független osztálya lehet, amelyek a paraméter előfordulását írják le. Az osztályok kiválasztása általában az absztrakt tesztesetek esetében az ekvivalencia-partíciózás, konkrét tesztesetek esetében pedig a határérték-elemzés elveit követi. Az összes osztályozás együtt alkotja az osztályozási fát. Szemantikai célból az osztályozásokat kompozíciókba lehet csoportosítani.
A tesztesetek maximális száma a fa összes osztályozásának összes osztályának Descartes-szorzata , ami gyorsan nagy számokat eredményez a valósághű tesztfeladatokhoz. A tesztesetek minimális száma a legtöbb osztályt tartalmazó osztályozásban lévő osztályok száma.
A második lépésben teszteseteket állítunk össze úgy, hogy az osztályozási fa minden osztályozásából pontosan egy osztályt választunk ki. A tesztesetek kiválasztása eredetileg manuális feladat volt, amelyet a tesztmérnök végezhetett el.
Példa bélyegkép|Osztályozási fa egy adatbázisrendszerhez Egy adatbázisrendszer esetében a teszttervezést el kell végezni. Az osztályozásifa-módszer alkalmazásával a teszt szempontjából releváns aspektusok azonosítása a következő osztályozásokat adja: Felhasználói jogosultság, Működés és Hozzáférési mód . A Felhasználói jogosultság esetében két osztály azonosítható: Normál felhasználó és Adminisztrátor felhasználó. Három művelet létezik: Hozzáadás, Szerkesztés és Törlés . A hozzáférési módszer esetében ismét három osztályt azonosítottunk: Native Eszköz, Webböngésző, Alkalmazásprogramozási felület (API). A Webböngésző osztály tovább finomítható a Márka tesztaspektussal, amely három lehetséges osztályt tartalmaz: Internet Explorer, Mozilla Firefox és Apple Safari.
Az osztályozásifa-módszerének első lépése ezzel befejeződött. Természetesen további lehetséges tesztaspektusok is felvehetők, például a kapcsolat hozzáférési sebessége, a adatbázisban jelenlévő rekordok száma stb. A kiválasztott aspektusok és azok megfelelő értékei áttekinthetőek a fa szerkezetű grafikus ábrázolás segítségével.
A statisztikákhoz összesen 30 lehetséges teszteset van (2 jogosultság * 3 művelet * 5 hozzáférési mód). A minimális lefedettséghez 5 teszteset is elegendő, mivel 5 hozzáférési mód létezik (és a hozzáférési módszer a legtöbb diszjunkt osztályt tartalmazó besorolás).
A második lépésben három tesztesetet választottunk ki manuálisan:
Egy normál felhasználó a natív eszközzel új adatokat hozzá az adatbázishoz. Az adminisztrátor felhasználó egy meglévő adathalmazt szerkeszt a Firefox böngésző segítségével. A normál felhasználó az API segítségével töröl egy adathalmazt az adatbázisból.
Javítások Háttér Az osztályozásifa-módszer (CTM) az alábbi előnyöket vezette be az Ostrand és Balcer által kidolgozott Kategória Partíció Módszerhez (Category Partition Method: CPM) képest:
Jelölés: A CPM csak szöveges jelöléssel rendelkezett, míg a CTM grafikus, fa alakú ábrázolást használ. Finomítások: Egy reprezentatív kiválasztása hatással lehet a többi reprezentatív megjelenésére. A CPM csak korlátozásokat kínál ennek a forgatókönyvnek a kezelésére. A CTM lehetővé teszi a hierarchikus finomítások modellezését az osztályozási fában, amelyeket implicit függőségeknek is neveznek. Eszköztámogatás: Az Ostrand és a Balcer által bemutatott eszköz csak teszteset generálást támogat, magát a particionálást azonban nem. Grochtmann és Wegener bemutatta eszközét, az osztályozásifa-szerkesztő (CTE), amely támogatja a particionálást és a tesztesetek generálását is.
bélyegkép|Beágyazott rendszer példájához tartozó osztályozási fa, amely konkrét értékeket, időzítéseket, (különböző) átmeneteket tartalmaz, és megkülönbözteti az Állapotokat és a Műveleteket
Osztályozásifa-módszer a beágyazott rendszerekhez A osztályozásifa-módszer eredetileg az absztrakt tesztesetek tervezésére és specifikációjára volt szánt. Az osztályozásifa-módszer beágyazott rendszerekhez is alkalmazható, a teszt végrehajtása is elvégezhető vele. Számos további funkció van integrálva a módszerrel:
Az atomi tesztesetek mellett olyan tesztsorozatokat is meg lehet határozni, amelyek több tesztlépést tartalmaznak. Minden tesztlépéshez konkrét időzítést (pl. másodpercekben, percekben ...) lehet megadni. Jelátmeneteket (pl. lineáris, spline, szinusz ...) lehet megadni különböző tesztlépések kiválasztott osztályai között. Az esemény és az állapot közötti különbségtétel modellezhető, amelyet különböző vizuális jelekkel ábrázolhatunk egy tesztben.
A Tessy modul- és egységtesztelő eszköz ezen kiterjesztésen alapul.
Függőségi szabályok és automatikus teszteset-generálás A megszorítások modellezésének egyik módja az osztályozásifa-módszer finomítási mechanizmusának használata. Ez azonban nem teszi lehetővé a megszorítások modellezését a különböző osztályozású osztályok között. Lehmann és Wegener bevezette a függőségi szabályokat a logikai kifejezések alapján az ő osztályozásifa-szerkesztőjükben. További funkciók közé tartozik a tesztcsomagok automatizált generálása kombinatorikus teszttervezés segítségével (pl. Minden páros tesztelés).
Prioritás szerinti teszteset generálás A osztályozásifa-módszer legújabb fejlesztései között szerepel a priorizált teszteset generálás: Lehetséges súlyokat rendelni a osztályozási fa elemeihez az előfordulás és hiba valószínűségének vagy kockázatának szempontjából. Ezeket a súlyokat aztán teszteset-generálás közben használják fel a tesztesetek prioritizálására.Franke M, Gerke D, Hans C. und andere. Method-Driven Test Case Generation for Functional System Verification. Proceedings ATOS. Delft. 2012. P.36-44. Statisztikai tesztelés is elérhető (pl. kopás- és kifáradástesztekhez), az elemi súlyokat diszkrét valószínűségi eloszlásként értelmezve.
Tesztsorozat generálása Azzal, hogy érvényes átmeneteket adunk hozzá az egyes osztályok között a osztályozásban, a osztályozásokat állapotgépként lehet értelmezni, így a teljes osztályozási fa állapotdiagramként is értelmezhető. Ez meghatározza az osztályhasználatok megengedett sorrendjét a tesztlépésekben, és lehetővé teszi a tesztsorozatok automatikus létrehozását. Különböző lefedettségi szintek állnak érhetők el, mint például állapotlefedettség, átmenetlefedettség és állapotpárok és átmeneti párok lefedettsége.
Numerikus megszorítások Az osztályozási fa osztályaira utaló logikai függőségi szabályokon kívül a numerikus megszorítások lehetővé teszik képletek megadását osztályokkal változóként, amelyek kiértékelődnek a tesztesetben kiválasztott osztályra.
Osztályozási fa szerkesztő (Classification Tree Editor) Az osztályozásifa-szerkesztő (CTE) egy olyan szoftveres eszköz a teszttervezéshez, amely megvalósítja a osztályozásifa-módszert.
Az idők során több kiadását láthattuk a CTE eszköznek, különböző (akkoriban népszerű) programozási nyelveken írva, és több vállalat fejlesztette azt.
CTE 1 Az eredeti verziója a CTE-nek a Daimler-Benz Ipari Kutatóintézetekben fejlesztették ki Berlinben. 1993-ban jelent meg és Pascal nyelven íródott. Csak Unix rendszereken volt elérhető.
CTE 2 1997-ben jelentős újraimplementálás történt, ami a CTE 2 verziójához vezetett. A fejlesztés ismét a Daimler-Benz Ipari Kutatóintézeteknél történt. A program C nyelven íródott, és elérhető volt a win32 rendszerekhez.
A CTE 2-t 1997-ben licencelték a Razorcat-nek, és része lett a TESSY egységteszt eszköznek. Az ágyazott rendszerekhez készült osztályozásifa-szerkesztő is ezen kiadáson alapul.
Razorcat 2001 óta fejleszti a CTE-t, és 2003-ban regisztráltatta a CTE márkanevet.
Az utolsó verzió, a CTE 3.2 a TESSY 4.0 eszközzel együtt jelent meg 2016-ban. Jegyezd meg az alábbi Verziók táblázatot.
CTE 4 A CTE 4-et a TESSY 4.1.7-ben Eclipse-beépülőként vezették be 2018-ban. A legfrissebb CTE 4 verzió továbbra is fejlesztés alatt áll a TESSY 4.3 részeként 2021-ben.
CTE XL 2000-ben Lehmann és Wegener bevezette a Függőségi Szabályokat a CTE XL (eXtended Logics) megtestesülésével. További funkciók közé tartozik a tesztkészletek automatizált generálása kombinatorikus teszttervezés segítségével (pl. páronkénti tesztelés).
A fejlesztést a DaimlerChrysler végezte. A CTE XL Java nyelven íródott és win32 rendszereken támogatott. A CTE XL letölthetővé vált ingyenesen.
2008-ban a Berner&Mattner megszerezte az összes jogot a CTE XL-re, és folytatta a fejlesztést egészen a CTE XL 1.9.4-ig. CTE XL Professional 2010-től kezdve a Berner&Mattner fejlesztette a CTE XL Professionalt. Egy teljes újraimplementáció történt, újra Java nyelven, de ezúttal Eclipse alapú. A CTE XL Professional elérhető volt win32 és win64 rendszereken.
Az új fejlesztések között szerepelt: Teszteset-generálás prioritások alapján: Lehetőség van súlyozásra az osztályozási fa elemeihez az előfordulás és a hiba valószínűsége vagy kockázata szempontjából. Ezeket a súlyokat ezután a tesztesetek generálása során használják a tesztesetek rangsorolására. Kockázatalapú és statisztikai tesztelés is elérhető. Tesztsorozat-generálás többszereplős rendszerek használatával Numerikus megszorítások TESTONA 2014-ben a Berner&Mattner TESTONA márkanéven kezdte kiadni osztályozásifa-szerkesztőjét.
A TESTONA ingyenes kiadásahttp://www.testona.net/en/webshop/testona-light-free-of-charge/index.html továbbra is ingyenesen letölthető, de csökkentett funkcionalitással.
Verziók