Skip to content

Commit 05aaa09

Browse files
committed
Add final chapters
1 parent 223e3e6 commit 05aaa09

3 files changed

Lines changed: 73 additions & 0 deletions

File tree

src/chapters/achievements.tex

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
\chapter{Eredmények és továbbfejlesztési lehetőségek}
2+
3+
\section{Elért eredmények összefoglalása}
4+
5+
A \textit{SuperSet} projekt sikeresen megvalósította a kitűzött célokat, a megvalósított teszt keretrendszer egy
6+
rugalmas, bővítményekkel kiegészíthető, könnyen konfigurálható rendszer lett. A megvalósítás során modern
7+
technológiákat alkalmaztam, például a \textit{Python} nyelv típusellenőrzése, vagy az aszinkron esemény hurok
8+
használata \textit{I/O} limitált hívások kiküszöbölésére.
9+
10+
A projekt során az alábbi eredményeket értem el:
11+
12+
\begin{itemize}
13+
\item Sikeresen kialakítottam egy komplex, azonban könnyen használható és bővíthető konfigurációs rendszert a
14+
teszt keretrendszer, és a tesztcsomagok paraméterezésére.
15+
\item Megvalósítottam a teszt keretrendszer lokális és elosztott működési lehetőségét is, ezzel növelve a
16+
potenciális elérhető hardverek kihasználtságát.
17+
\item A rendszer implementálása során különös figyelemmel voltam a teljesítményre, hogy az implementációt adó
18+
\textit{Python} nyelv ne korlátozza azt.
19+
\item Létrehoztam egy testre szabható bővítmény rendszert, amely dinamikusan tölti be a tesztcsomagok
20+
futtatásához szükséges parancsokat.
21+
\item Megoldottam, hogy a keretrendszernek több különböző kimeneti formátuma is legyen, mind humán olvasható,
22+
mind standard struktúrált \textit{JUnit XML} alapú.
23+
\item Implementáltam egy flexibilis teszteset generáló alkalmazást, amely a keretrendszer számára kérésre elő
24+
tud állítani \textit{fuzz} teszteket a \textit{Csmith} segítségével.
25+
\item A megvalósított rendszer képes a teszteseteket, kiválasztani, kihagyni és futási eredményeik alapján
26+
kategorizálni.
27+
\end{itemize}
28+
\pagebreak
29+
30+
\section{Továbbfejlesztési lehetőségek}
31+
32+
Bár a jelenlegi implementáció teljes mértékben funkcionális és számos előnnyel rendelkezik a bemutatott egyéb
33+
megoldásokkal szemben, bőven adódik lehetőség továbbfejlesztésre.
34+
35+
\begin{itemize}
36+
\item \textbf{Makró építő:} A hasonló alkalmazásokkal való összevetésből kiderül, hogy a \\ \textit{SuperSet}
37+
nem támogat teszt forrásfájl szintű makrózást natívan. Ugyan az implementációs lehetőseg meg van rá a
38+
bővítmény rendszeren keresztül, mégis jobb volna egy beépített módszer amely opcionáéisan igénybe vehető.
39+
\item \textbf{Web nézet:} A jelenleg támogatott kimenetek rendkívül hasznosak, azonban betöltésük igen
40+
sok időt vesz igényben ha a futtatott tesztek száma nagy. Mivel a keretrendszer kimenete \textit{SQLite}
41+
adatbázis, így érdemes lenne egy minimális webalkalmazást fejleszteni amely interaktív keresővel,
42+
oldalakra bontva prezentálja az eredményeket.
43+
\item \textbf{Hálózati logolás:} Az elosztott működés során a kliensek a \textit{log} üzeneteiket nem küldik el
44+
a szerver számára így a szerver oldalán nem látható, hogy a kliensek hol tartanak a futtatásban. Ezeket
45+
az üzeneteket érdemes lenne továbbítani a szerver számára.
46+
\item \textbf{Hálózati fájl küldés:} A jelenlegi implementáció nem támogatja a teszteset fájlok küldését
47+
hálózaton keresztül. Így a generáló alkalmazás kimenetét előbb egy másik úton kell eljuttatni a kliensek
48+
felé ha futtatni szeretnénk elosztottan.
49+
\item \textbf{Daemon üzemmód:} A szerver alkalmazás egyszeri konfiguráció betöltést hajt végre majd, ha
50+
a kliensek végeztek a kiosztott tesztekkel akkor aggergálja az eredményeket és leáll. Egy jobb
51+
implementáció volna, ha szervernek kéréseket lehetne küldeni konfigurációs fájlokkal, hogy mit futasson
52+
és soha nem terminálna.
53+
\item \textbf{Bővítmények dinamikus betöltése:} Jelenleg a bővítmény betöltés csak egyszer történik meg az
54+
alkalmazás indulása után. A \textit{Daemon üzemmód} megvalósításához azonban elengedhetetlen extra
55+
bővítmények futás idejű betöltése, hogy új konfigurációk új fordítóprogramokra adjanak támogatást.
56+
\item \textbf{Csatlakozás külső adatbázishoz:} A kimeneti információ jelenleg egy \textit{SQLite} adatbázis
57+
fájlban tárolódik el a futás végeztével. Egy jó lehetőség volna, ha az alkalmazás nem csak
58+
\textit{SQLite} hanem bármilyen standard \textit{SQL} alapú adatbázishoz tudna csatlakozni és erdeményeit
59+
publikálni. Ez jelentősen megkönnyítené a lehetséges web nézet implementációját is.
60+
\item \textbf{További tesztgenerálók integrálása:} A \textit{Gekko} komponens jelenleg csak a \textit{Csmith} teszt
61+
generáló alkalmazást kezeli, azonban léteznek egyéb alkalmazások is amelyek integrálására a kód készen
62+
áll, viszont idő hiányában még nem valósult meg.
63+
\end{itemize}

src/chapters/usage-walkthrough.tex

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
\chapter{A teszt keretrendszer futtatása}
2+
3+
Ebben a fejezetben egy példán keresztül bemutatom, hogyan lehet használni az alkalmazást mind elosztott, mind lokális
4+
futtatás során.

src/thesis.tex

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,12 @@
139139
\newpage
140140
\input{chapters/chapter-7.tex}
141141

142+
\newpage
143+
\input{chapters/usage-walkthrough.tex}
144+
145+
\newpage
146+
\input{chapters/achievements.tex}
147+
142148
\newpage
143149
\input{appendices/bibliography.tex}
144150

0 commit comments

Comments
 (0)