Skip to content

Commit be00a2e

Browse files
committed
Finish usage chapter
1 parent 7570cd5 commit be00a2e

1 file changed

Lines changed: 50 additions & 2 deletions

File tree

src/chapters/usage-walkthrough.tex

Lines changed: 50 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,52 @@
11
\chapter{A teszt keretrendszer futtatása}
22

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.
3+
Ebben a fejezetben bemutatom, hogyan lehet használni az alkalmazást mind elosztott, mind lokális futtatás során. A
4+
diplomamunkához csatolt tömörített állomány \textit{examples} mappájában található pár program kimenet, valamit az
5+
alkalmazás teljese implementációja.
6+
7+
A futtatáshoz mind lokális mind elosztott esetben, az alábbi elemekre van szükség:
8+
9+
\begin{itemize}
10+
\item Megfelelő \textit{Python} környezetre a \textit{pyproject.toml} fájlban megadott függőségekkel együtt.
11+
Célszerű a \textit{Python} által nyújtott vrituális környezeteket alkalmazni. A környezetbe a
12+
\textit{SuperSet} alkalmazást is telepíteni kell.
13+
\item Egy bemeneti tesztcsomagra és a hozzá tartozó \textit{SET} fájlra. Definiálható mindkettő manuálisan is,
14+
viszont alkalmazható a \textit{Gekko} program, amely generál egy \textit{fuzz} tesztesetekből álló csomagot.
15+
\item Egy konfiguráció, amely megadja a keretrendszer számára, hogy a generált tesztcsomagot használja. Itt kell
16+
megadnia a kapcsolókat is amikkel a fordítóprogramot tesztelni szeretnénk, valamint a \emph{mátrixot} és a
17+
\emph{kivételeket} is.
18+
\item Egy \textit{Sut} implementációra amely összeállítja a futtatáshoz szükséges parancsokat a konfigurációból.
19+
\item Egy fordítóprogramra amely kompatibilis a \textit{Sut} által összeállított parancsokkal.
20+
\item Végezetül egy szimulátorra ha a fordítóprogram által generált futtatható nem a \textit{host} gépre készült.
21+
\end{itemize}
22+
23+
A \textit{SuperSet} teszt keretrendszer egy parancssori program így futtatni is onnan kell. A futás közben több
24+
\textit{log} üzenetet is küld a belső állapotáról. A futtatás során létrejön több \textit{.log} fájl is a kiadott
25+
üzenetekkel, valamint létrejön az \textit{SQLite} adatbázis az eredményekkel. Az eredmény adatbázisból könnyen
26+
generálható \textit{HTML} jelentés, esetleg \textit{JUnit XML}.
27+
28+
\pagebreak
29+
\section{Extra lépések elosztott futtatáshoz}
30+
31+
Az elosztott futtatás során szükséges pár extra lépést megtenni a zökkenő mentes működés érdekében.
32+
33+
Fontos, hogy a szerver és a kliensek ugyan azokat a tesztcsomagokat lássák, mivel a szerver nem küldi el a
34+
teszteset fájlokat csak a kérést, hogy melyik legyen futtatva. Hasonlóan, a kliensek között meg kell egyeznie a
35+
\textit{Sut} bővítményeknek, különben véletlenszerű hibák fognak bekövetkezni. A konfigurációt a szerver megosztja
36+
a klienssel így az nem igényel különösebb figyelmet.
37+
38+
A kliens alkalmazások indítás után várnak a szerver alkalmazásra, és többször is megkísérlik a csatlakozást. Ha
39+
csatlakoztak, akkor a teszt futtatás végével a szerver fogja explicit lecsatlakoztatni a klienseket, tehát
40+
perzisztens kommunikáció épül fel. Ez a működés hasonló a \textit{\foreignlanguage{american}{HTTP Keep-Alive
41+
header}} működéséhez.
42+
43+
A szervel alkalmazás is vár a klienskere indítás után. Terminálni akkor fog amikor az utolsó kliens is
44+
lecsatlakozott. Ha a teljes futás végbe ment akkor a lecsatlakozást a szerver kezdeményezi, ha viszont minden
45+
kliens a futtatás vége előtt nem várt módon szakítja meg a kapcsolatot akkor a szerver hibával fog leállni.
46+
47+
A kliensek és a szerver is tárol \textit{log} üzeneteket amelyeket szintén futás közben is a kiírnak valamint
48+
fájlokban is megtalálhatóak. A kliensek nem küldik vissza a \textit{log} üzeneteket a szerver felé így azokat egy
49+
manuálisan érdemes összegyűjteni.
50+
51+
A teszt eredmények természetesen a szerver alkalamzás oldalán lesznek összegyűjtve a lokális futtatással megegyező
52+
sémájú \textit{SQLite} adatbázisban.

0 commit comments

Comments
 (0)