@@ -24,4 +24,61 @@ \chapter{Bevezetés}
2424folyamatot és nagyobb konfidenciát adott a kód helyességére nézve. Az implementáció során törekedtem a
2525kódolvashatóságra, a \textit {DRY }\footnote {\textit {\foreignlanguage {american}{Don't repeat yourself} }, a kód
2626tömörségére érdemes törökedni.} és a \textit {SOLID }\footnote {\textit {SOLID }, az objektum orientált programozásban öt
27- tervezési szabály.} programozási elvek betartására.%
27+ tervezési szabály.} programozási elvek betartására.
28+
29+ A megvalósított teszt keretrendszer a diplomamunkám kereteiben belül \textit {C/C++ } fordítóprogramok tesztelésére
30+ készült el. Ugyanakkor a program architektúrája moduláris és fel van készítve más fordítóprogramok tesztelésére,
31+ további bővítmények implementálása által.
32+
33+ \section {Kitekintés egyéb fordítóprogram teszt keretrendszerekre }
34+
35+ Ha \textit {C/C++ } fordítóprogramokról beszélünk, akkor sokak számára a \textit {GNU GCC }, \textit {LLVM Clang } juthat
36+ eszébe, \textit {Windows } felhasználoknak pedig az \textit {MSVC }.
37+
38+ Az előbbi két fordítóprogram nyílt forráskódú teszt keretrendszereket alkalmaz, így azokat veszem összehasonlítási
39+ alapnak. Mielőtt összehasonlítanám velük a dolgozat tárgyát képző teszt keretrendszert, egy rövid áttekintést
40+ nyújtok funkcióik felett.
41+
42+ A \textit {GNU GCC } a \textit {DejaGnu } teszt keretrendszert alkalmazza. Ez a teszt keretrendszer a nem túl ismert
43+ \textit {Expect } keretrendszert használja amely \textit {Tcl } nyelvben készült. Nem csak parancssori, hanem
44+ interaktív programokat is képes tesztelni. A teszt forrásokat egy meghatározott mappa struktúrába kell rendezni,
45+ ahol a különböző \textit {site.exp } fájlokkal lehet mappa szintű konfigurációt megadni. A teszteset források
46+ tartalmazzák a teszt futtatásához szükséges makrókat. A makrók maguk pedig \textit {Tcl } szkript darabok.
47+
48+ Az \textit {LLVM Clang } a \textit {Lit (LLVM Integrated Tester) } teszt keretrendszert alkalmazza. Ez a teszt
49+ keretrendszer \textit {Pythonban } készült. Parancssori alkalmazások tesztelését teszi lehetővé. A teszt forrásokat
50+ ennél a keretrendszernél is egy meghatározott mappa struktúrában kell tárolni. Hierarchikus konfigurációra itt is
51+ van lehetőség a \textit {lit.cfg.py, lit.site.cfg.py, lit.local.cfg.py } fájlok formájában. A tesztesetek itt is a
52+ teszt forrásokba ágyazott makrókkal futtathatók. Ezek a makrók egy \textit {shell } parancssorhoz hasonló
53+ szintaktikát alkalmaznak.
54+
55+ Az említett megoldások, rendkívül hasonlóak. Hierarchikus mappa szerkezetet, és \\ teszt forrás makrókat
56+ alkalmaznak a cél elérése érdekében. Mivel nyújt többet ehhez képest a \textit {SuperSet }?
57+
58+ Ezzel szemben, a \textit {SuperSet } nem követel meg semmilyen teszt forrás hierarchiát, se mappa struktúrát, se
59+ makrókat. Helyettük egy bővítmény rendszert kínál a teszcsomag szerzőnek, hogy a teszteknek legmegfelelőbb
60+ kontextust alakíthassa ki. A szerzőnek csupán egyetlen fájlt kell kötelezően megadnia, ez a \textit {SET } fájl
61+ amelyben soronként a tesztesetek elérési útja található, ez gyakorlatilag a tesztcsomag definíció. Ezután a
62+ bővítmény rendszerben két ponton módosítható a futás kontextusa. Az első, hogy lehetőség van egy hierarchikus
63+ konfigurációs fájl beolvasásra, amelynek értékei \emph {domain-specifikusak }, tehát a szerző olyan mezőket vesz fel,
64+ a beépítetteken kívül amilyenekre szüksége van. Itt érdemes megjegyezni, hogy a hierarchia a konfigurációs fájlon
65+ belül van kifejezve és nem a mappa struktúra által. A második pont pedig a teszt futtatása, ahol pár egyszerű
66+ \textit {Python } függvény megvalósításával, a szerző dinamikusan dönthet a teszteset futtatásáról. Ebből triviálisan
67+ adódik, hogy ha a szerző mégis szeretne egy makró rendszert a teszt forrásfájlokhoz, akkor lehetősége van azt
68+ implementálni. Ezen felül a \textit {SuperSet } lehetőséget add egyszerre több tesztcsomag futtatására is, valamint
69+ elosztott több számítógépes működésre is. A \textbf {\ref {fig:comparison }. ábra } összehasonlítja az említett
70+ keretrendszereket a \textit {SuperSettel }.
71+
72+ \begin {figure }[ht]
73+ \centering
74+ \begin {tabular }{lccc}
75+ \toprule
76+ & Konfiguráció & Elosztott működés & Bővítmény rendszer \\
77+ \midrule
78+ \textit {DejaGnu } & Kötött & Nehezen elérhető \textit {ssh, telnet } & Nem támogatott \\
79+ \textit {Lit } & Kötött & Nem támogatott & Nem támogatott \\
80+ \textit {\textbf {SuperSet } } & Domain-specifikus & Konfiguráció nélkül elérhető & Támogatott \\
81+ \bottomrule
82+ \end {tabular }
83+ \caption {\label {fig:comparison } A teszt kertrendszerek összehasonlítása}
84+ \end {figure }
0 commit comments