|
1 | 1 | \chapter{A teszt keretrendszer futtatása} |
2 | 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. |
| 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