Osztályozásifa-módszer
Az osztályozásifa-módszer (angolul: Classification Tree Method) egy teszttervezési módszer,[1] mivel a szoftverfejlesztés különböző területein használják.[2] Grimm és Grochtmann fejlesztette ki 1993-ban.[3] 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:[4][5]
- 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.[4]
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.[6]
Alkalmazás
[szerkeszté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.[4] 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).[2] 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.[5] 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[3] manuális feladat volt, amelyet a tesztmérnök végezhetett el.
Példa
[szerkesztés]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
[szerkesztés]Háttér
[szerkesztés]Az osztályozásifa-módszer (CTM) az alábbi előnyöket[2] vezette be az Ostrand és Balcer által kidolgozott Kategória Partíció Módszerhez[7] (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.[6]
Osztályozásifa-módszer a beágyazott rendszerekhez
[szerkesztés]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ó,[8] 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
[szerkeszté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.[9] 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
[szerkeszté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.[10][11] 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
[szerkesztés]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.[12] 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
[szerkesztés]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.[13]
Osztályozási fa szerkesztő (Classification Tree Editor)
[szerkesztés]Az osztályozásifa-szerkesztő (CTE) egy olyan szoftveres eszköz a teszttervezéshez, amely megvalósítja a osztályozásifa-módszert.[14][15]
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
[szerkesztés]Az eredeti verziója a CTE-nek a Daimler-Benz Ipari Kutatóintézetekben[6] fejlesztették ki Berlinben. 1993-ban jelent meg és Pascal nyelven íródott. Csak Unix rendszereken volt elérhető.
CTE 2
[szerkesztés]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ő[8] 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
[szerkesztés]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
[szerkesztés]2000-ben Lehmann és Wegener bevezette a Függőségi Szabályokat a CTE XL (eXtended Logics) megtestesülésével.[9] 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).[16]
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
[szerkesztés]2010-től kezdve a Berner&Mattner fejlesztette a CTE XL Professionalt.[10] 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.[10] Kockázatalapú és statisztikai tesztelés is elérhető.
- Tesztsorozat-generálás[12] többszereplős rendszerek használatával
- Numerikus megszorítások[13]
TESTONA
[szerkesztés]2014-ben a Berner&Mattner TESTONA márkanéven kezdte kiadni osztályozásifa-szerkesztőjét.
A TESTONA ingyenes kiadása[17] továbbra is ingyenesen letölthető, de csökkentett funkcionalitással.
Verziók
[szerkesztés]Verzió | Dátum | Megjegyzés | Nyelv | OS |
---|---|---|---|---|
CTE 1.0 | 1993 | Eredeti változat,[6][18] maximum 1000 tesztesettel | Pascal | Unix |
CTE 2.0 | 1998 | Windows-változat,[15] korlátlan számú teszteset | C++ | win32 |
CTE 2.1 | 2003 | A TESSY Razorcats részének változata beágyazott rendszerhez. | C++ | win32 |
CTE XL 1.0 | 2000 | Függőségszabályok, teszteset-generálás[9][14][19] | Java | win32 |
CTE XL 1.6 | 2006 | A Daimler-Benz által kiadott utolsó verzió[20] | Java | win32 |
CTE XL 1.8 | 2008 | A Berner&Mattner fejlesztése | Java | win32 |
CTE XL 1.9 | 2009 | Utolsó, csak Javát használó verzió | Java | win32 |
CTE XL Professional 2.1 | 2011-02-21 | Első Eclipse-alapú változat, teszteset-generálási prioritás,[10] determinisztikus teszteset-generálás, követelmény-nyomonkövetés DOORS-zal | Java 6, Eclipse 3.5 | win32 |
CTE XL Professional 2.3 | 2011-08-02 | QualityCenter-integráció, teljesítményinformáció-elemzés, nyomon követhetőségi mátrix, API | Java 6, Eclipse 3.6 | win32 |
CTE XL Professional 2.5 | 2011-11-11 | teszteredmény-jelölés, gondolattérkép-importálás | Java 6, Eclipse 3.6 | win32, win64 |
CTE XL Professional 2.7 | 2012-01-30 | hibajavítás | Java 6, Eclipse 3.6 | win32, win64 |
CTE XL Professional 2.9 | 2012-06-08 | Implicit Mark-mód, alapértelmezett osztályok, parancssoros felhasználói felület | Java 6, Eclipse 3.7 | win32, win64 |
CTE XL Professional 3.1 | 2012-10-19 | teszt-utóértékelés (például alapokelemzéshez), tesztsorozat-generálás,[12] numerikus korlátok[13] | Java 6, Eclipse 3.7 | win32, win64 |
CTE XL Professional 3.3 | 2013-05-28 | tesztinformáció-elemzés, variánskezelés (például a termékcsalád-mérnökséghez), ekvivalenciaosztály-tesztelés | Java 6, Eclipse 3.7 | win32, win64 |
CTE XL Professional 3.5 | 2013-12-18 | határérték-elemző varázsló, AUTOSAR és MATLAB modellek importálása | Java 7, Eclipse 3.8 | win32, win64 |
TESTONA 4.1 | 2014-09-22 | hibajavítás | Java 7, Eclipse 3.8 | win32, win64 |
TESTONA 4.3 | 2015-07-08 | futtatható tesztszkriptek generálása (kódgenerálás), teszteredmények importálása[21] | Java 7, Eclipse 3.8 | win32, win64 |
TESTONA 4.5 | 2016-01-21 | exportálási lehetőségek könnyítése GUI-javítás | Java 7, Eclipse 3.8 | win32, win64 |
TESTONA 5.1 | 2016-07-19 | hibajavítás, Java 8-ra és Eclipse 4.5-re váltás | Java 8, Eclipse 4.5 | win32, win64 |
CTE 4.0 | 2018-08-01 | új Razorcat-implementáció az Eclipse-alapú TESSY 4.1 beépülőjéhez, modellalapú tesztesetek létrehozása | Java | win32
win64 |
Előnyök
[szerkesztés]- Teszt szempontjából releváns aspektusok grafikus ábrázolása[2]
- Módszer a releváns tesztaspektusok azonosítására és azok tesztesetekbe történő kombinálására egyaránt[4]
Korlátozások
[szerkesztés]- Ha az osztályozásifa-módszerrel végzett teszttervezést megfelelő tesztbontás nélkül hajtják végre, az osztályozási fák nagyokká és nehézkessé válhatnak.
- Az új felhasználók általában túl sok (főleg irreleváns) teszt szempontot alkalmaznak, ami túl sok tesztesetet eredményez.
- Nincs algoritmus vagy szigorú útmutatás a teszt szempontjából releváns szempontok kiválasztásához.[22]
Hivatkozások
[szerkesztés]- ↑ Bath, Graham. The software test engineer's handbook : a study guide for the ISTQB test analyst and technical test analyst advanced level certificates, 1st, Santa Barbara, CA: Rocky Nook (2008). ISBN 9781933952246
- ↑ a b c d Hass, Anne Mette Jonassen. Guide to advanced software testing. Boston: Artech House, 179–186. o. (2008). ISBN 978-1596932869
- ↑ a b Grochtmann (1993). „Classification Trees for Partition Testing”. Software Testing, Verification & Reliability 3 (2), 63–82. o. DOI:10.1002/stvr.4370030203.
- ↑ a b c d Kuhn, D. Richard. Introduction to combinatorial testing. Crc Pr Inc, 76–81. o. (2013). ISBN 978-1466552296
- ↑ a b Henry, Pierre. The testing network an integral approach to test activities in large software projects. Berlin: Springer, 87. o. (2008). ISBN 978-3-540-78504-0
- ↑ a b c d Grochtmann (1995). „Test Case Design Using Classification Trees and the Classification-Tree Editor CTE”. Proceedings of the 8th International Software Quality Week(QW '95), San Francisco, USA. [2015. szeptember 24-i dátummal az eredetiből archiválva]. (Hozzáférés: 2013. augusztus 12.)
- ↑ Ostrand (1988). „The category-partition method for specifying and generating functional tests”. Communications of the ACM 31 (6), 676–686. o. DOI:10.1145/62959.62964.
- ↑ a b Conrad (2006. október 1.). „An Extension of the Classification-Tree Method for Embedded Systems for the Description of Events”. Electronic Notes in Theoretical Computer Science 164 (4), 3–11. o. DOI:10.1016/j.entcs.2006.09.002.
- ↑ a b c Lehmann (2000). „Test Case Design by Means of the CTE XL”. Proceedings of the 8th European International Conference on Software Testing, Analysis & Review (EuroSTAR 2000). [2016. március 4-i dátummal az eredetiből archiválva]. (Hozzáférés: 2013. augusztus 12.)
- ↑ a b c d Kruse (2010. december 1.). „Automated Test Case Generation Using Classification Trees”. Software Quality Professional 13 (1), 4–12. o.
- ↑ Franke M, Gerke D, Hans C. und andere. Method-Driven Test Case Generation for Functional System Verification. Proceedings ATOS. Delft. 2012. P.36-44.
- ↑ a b c Kruse, Peter M.. Test Sequence Generation from Classification Trees, 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation, 539–548. o.. DOI: 10.1109/ICST.2012.139 (2012. április 1.). ISBN 978-0-7695-4670-4
- ↑ a b c Kruse, Peter M.. Numerical Constraints for Combinatorial Interaction Testing, 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation, 758–763. o.. DOI: 10.1109/ICST.2012.170 (2012. április 1.). ISBN 978-0-7695-4670-4
- ↑ a b International, SAE. Vehicle electronics to digital mobility : the next generation of convergence; proceedings of the 2004 International Congress on Transportation Electronics, Convergence 2004, [Cobo Center, Detroit, Michigan, USA, October 18 - 20, 2004]. Warrendale, Pa.: Society of Automotive Engineers, 305–306. o. (2004). ISBN 978-0768015430
- ↑ a b [edited by] Gomes, Luís. Behavioral modeling for embedded systems and technologies applications for design and implementation. Hershey, PA: Information Science Reference, 386. o. (2010). ISBN 978-1605667515
- ↑ Cain, Andrew. An Automatic Test Data Generation System Based on the Integrated Classification-Tree Methodology, Software Engineering Research and Applications, Lecture Notes in Computer Science, 225–238. o.. DOI: 10.1007/978-3-540-24675-6_18 (2004). ISBN 978-3-540-21975-0. Hozzáférés ideje: 2013. október 10.
- ↑ http://www.testona.net/en/webshop/testona-light-free-of-charge/index.html
- ↑ [edited by] Zander, Justyna. Model-based testing for embedded systems. Boca Raton: CRC Press, 10. o. (2011. szeptember 15.). ISBN 978-1439818459
- ↑ [edited by] Rech, Jörg. Model-driven software development integrating quality assurance. Hershey: Information Science Reference, 101. o. (2009). ISBN 978-1605660073
- ↑ Olejniczak, Robert. Systematisierung des funktionalen Tests eingebetteter Software [archivált változat]. Doctoral dissertation: Technical University Munich, 61–63. o. (2008). Hozzáférés ideje: 2013. október 10. [archiválás ideje: 2016. március 6.]
- ↑ Berner&Mattner: Press Release: Test Case Implementation with TESTONA 4.3
- ↑ Chen, T.Y.. Classification-Hierarchy Table: A methodology for constructing the classification tree, Proceedings of 1996 Australian Software Engineering Conference, 93–104. o.. DOI: 10.1109/ASWEC.1996.534127 (1996). ISBN 978-0-8186-7635-2
Fordítás
[szerkesztés]Ez a szócikk részben vagy egészben a Classification Tree Method című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.