Ugrás a tartalomhoz

Osztályozásifa-módszer

A Wikipédiából, a szabad enciklopédiából

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]

  1. 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
  2. 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]
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:

  1. Egy normál felhasználó a natív eszközzel új adatokat hozzá az adatbázishoz.
  2. Az adminisztrátor felhasználó egy meglévő adathalmazt szerkeszt a Firefox böngésző segítségével.
  3. 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]
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

[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:

  1. Az atomi tesztesetek mellett olyan tesztsorozatokat is meg lehet határozni, amelyek több tesztlépést tartalmaznak.
  2. Minden tesztlépéshez konkrét időzítést (pl. másodpercekben, percekben …) lehet megadni.
  3. Jelátmeneteket (pl. lineáris, spline, szinusz …) lehet megadni különböző tesztlépések kiválasztott osztályai között.
  4. 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.

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ő.

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.

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]
  1. 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 
  2. a b c d Hass, Anne Mette Jonassen. Guide to advanced software testing. Boston: Artech House, 179–186. o. (2008). ISBN 978-1596932869 
  3. a b Grochtmann (1993). „Classification Trees for Partition Testing”. Software Testing, Verification & Reliability 3 (2), 63–82. o. DOI:10.1002/stvr.4370030203. 
  4. a b c d Kuhn, D. Richard. Introduction to combinatorial testing. Crc Pr Inc, 76–81. o. (2013). ISBN 978-1466552296 
  5. 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 
  6. 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.) 
  7. 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. 
  8. 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. 
  9. 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.) 
  10. a b c d Kruse (2010. december 1.). „Automated Test Case Generation Using Classification Trees”. Software Quality Professional 13 (1), 4–12. o. 
  11. Franke M, Gerke D, Hans C. und andere. Method-Driven Test Case Generation for Functional System Verification. Proceedings ATOS. Delft. 2012. P.36-44.
  12. 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 
  13. 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 
  14. 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 
  15. 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 
  16. 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. 
  17. http://www.testona.net/en/webshop/testona-light-free-of-charge/index.html
  18. [edited by] Zander, Justyna. Model-based testing for embedded systems. Boca Raton: CRC Press, 10. o. (2011. szeptember 15.). ISBN 978-1439818459 
  19. [edited by] Rech, Jörg. Model-driven software development integrating quality assurance. Hershey: Information Science Reference, 101. o. (2009). ISBN 978-1605660073 
  20. 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.] 
  21. Berner&Mattner: Press Release: Test Case Implementation with TESTONA 4.3
  22. 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.