Skip to content

Commit

Permalink
Merge pull request #7 from BME-MIT-IET/nem-funkcionalis-jellemzok
Browse files Browse the repository at this point in the history
Nem-funkcionális jellemzők vizsgálata
  • Loading branch information
leventebajak authored May 21, 2024
2 parents ca3b0a3 + 99dabbd commit 69b8067
Show file tree
Hide file tree
Showing 7 changed files with 110 additions and 0 deletions.
Binary file added doc/f1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/f2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/f3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/f4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/f5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/f6.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
110 changes: 110 additions & 0 deletions doc/nem funkcionalis jellemzok.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@

# Nem-funkcionális jellemzők vizsgálata



## Teljesítmény:

Az IntelliJ IDEA-ban beépített Profiler segítségével megvizsgáltuk a memória és a CPU kihasználtságát. Legfőbbképpen a CPU, a Heap Memory, a Threads és a Non-Heap Memory komponenseket elemeztük úgy, hogy a játékot 30 percen át futattuk, pontosabban egy új játék indítottunk és a játékot tétlenül magára hagytuk. Az egyes komponensek időbeli kihasználtságát egy-egy vonaldiagramban vannak ábrázolva:

![](f1.png)


**CPU**:

A tétlen állapotban hagyott játék szinte nem igényelt sok CPU-t. A játék megnyitására szükség volt kb. 40%-nyi CPU , de az idő többi részében mindvégig 0% körül mozgott. A játék jól működik tétlen állapototban, hiszen emberi interakciók nélkül nem követel rengetteg CPU erőforrást.

**Heap Memory**:

A idle állapotú játék a kezdetben 121 MB-nyi memóriát fogalt, majd 20 perc elteltével 187 MB-ot foglalt azaz további 66 MB-ra volt szükség. 187 MB után a GC felszabadított 146 MB-ot, így 41 MB-nyi memórát foglalt összesen a program, amely után egy kis idő elteltével elkezdett újra nőni. A programban feltehetően nincs memóriaszivárgás és a GC a nem használt memóriákat felszabadítja.

**Threads**:

A program futása során 18 szálat használ alapesetben az idők folyamán és maximálisan átlagosan 20 darab szál van engedélyezve.


**Non-Heap Memory**:

JVM és a the Java runtime environment által használt objektumokat és struktúrákat a Non-Heap Memory tárolja. Jelen esetben 29 MB-ra volt szükség mindvégig.


## Stressz teszt:

A játék megnyitása után különböző felhasználói interakciókat próbáltunk ki, azaz egy automatikus egér kattintást megvalósító programmal (Automatic Mouse Clicker with Random & Fixed Location and Delay Interval) teszteltük, hogy felmérjük mennyire terheli a rendszert.

Alapvetően 3 esetet definiáltunk:

- Pass gomb (a játékos kör vége gomb) megnyomása 3 másodpercenként folyamatosan

- Pass gomb (a játékos kör vége gomb) megnyomása másodpercenként legalább 10-szer folyamatosan

- Folyamatosan kiválasztunk egy random interakciót random kattingatásokkal


### Stressz teszt eredmények

**Pass gomb (a játékos körének vége gomb) megnyomása 3 másodpercenként folyamatosan**:

![](f2.png)

**CPU**: A pass gombok megnyomása során észrevettük, hogy amikor minden egyes játékkör véget ért akkor CPU-nak az erőforrásigénye jelentősen megugrik kb. 25%-ra. A csapatunk szerint az UI újratöltése és a ActionHandler osztályban lévő Wordturn függvény okozhatja ezt jelentős számítási megterhelést, mivel egymásba beágyazott ciklust használ és számítási igénye rendkívül magas. Illetve az játékosnak körének a befejezése után is megugrik a CPU kihasználtság, úgy 3%-ra

**Heap Memory**: Nem volt jelentős eltérés a tétlen játék állapotól. A memóriát mindig 200 Mb alatt tartotta.

**Threads**: Nem volt jelentős eltérés a tétlen játék állapotól

**Non-Heap Memory**: Nem volt jelentős eltérés a tétlen játék állapotól


**Pass gomb (a játékos körének vége gomb) megnyomása másodpercenként legalább 10-szer folyamatosan**:

![](f3.png)

**CPU**: A gyakori pass gombok megnyomása során gyakran végetér a játékosnak a köre és a CPU-nak az erőforrásigénye mindig kb. 20%-on volt. Mint korábban írtuk a

**Heap Memory**: Nem volt jelentős eltérés a tétlen játék állapotól. A memóriát mindig 200 Mb alatt tartotta.

**Threads**: Nem volt jelentős eltérés a tétlen játék állapotól

**Non-Heap Memory**: Nem volt jelentős eltérés a tétlen játék állapotól

**Folyamatosan kiválasztunk egy random interakciót random kattingatásokkal**:

![](f4.png)

**CPU**: A gyakori random interakció gombok megnyomása során a játék egy hibára futott (bug-ra), ami után a játékos nem tudott további interakciót végrehajtani, és emiatt nem lehetett tovább játszani a játékot. A legnagyobb CPU igény az 30% körül mozgott és úgy 1 perc után a játéknak úgy 1-2%-nyi számításigénye volt szükség, ami az inaktív gombok megnyomása miatt kellett. Mivel a gombok megnyomása nem csináltak semmit, ezért nem kellett szinte semmit se kiszámolni a CPU-nak.

**Heap Memory**: Nem volt jelentős eltérés a tétlen játék állapotól. A memóriát mindig 200 Mb alatt tartotta.

**Threads**: Nem volt jelentős eltérés a tétlen játék állapotól

**Non-Heap Memory**: Nem volt jelentős eltérés a tétlen játék állapotól


### Biztonság

A játék biztonságos, nem tartalmaz számítógépre káros kódrészletet. A játék szoftver nem kér és nem táról érzékeny felhasználói adatokat. A játékot csak a gombok megnyomásával lehet játszani és input adatot csak a játék beállításánál lehet beadni, ahol jól vannak lekezelve a bekért adatok.


### Használhatóság

A játékban minden funkció megtalálható a jobboldalt és a lehetséges interakciókat és az információkat felhasználóbarát módon vannak feltűntve.

Azonban voltak problémák amelyek hiányosnak éreztük és kicsit zavarók is voltak:

- **Restart game funkció hiányossága**: Egy új játék indításához be kell zárni a játékot és újra el kell indítani a programot

- **Help ablak átláthatatlan**: A help dialógus ablak nem voltak annyira tagolva a szövegek, így nehéz volt átlátni őket és az információk feltűntetése se volt túl felhasználóbarát:


![](f6.png)

- **Hibák a játékban**: A játékban volt pár hiba, ami miatt leállt a játék és már semilyen akciót nem tudott végrehajtani a játékos (azaz jobboldalt nincs zöld határvonallal kiemelt gomb az UI-on és semelyik gomb se reagált):

![](f5.png)


### Összegzés

A játék nem-funkcionális jellemzőket megvizsgálva arra a következtetésre juttotunk, hogy a játékban nincs memóriaszívárgás és a CPU-t csak akkor használja, ha ténylegesen használjuk a szoftvert. Megnéztük, hogy mennyire bírja a terhelést és mely funckió igényel jelentős erőforrást. Ellenőriztük azt is, hogy legfejebb mennyi memóriára lehet szükség a futtatáshoz. A biztonsági aspektustba is belenéztünk, ahol nem kér a felhasználótól szenzitív adatot, illetve a bekért adatok nem törik meg a kódott. A játék használhatóság szempontjából voltak némi tovább fejlesztendő dolgok, amely a játékélményt feljavíthatná és minőségibb szoftvertté tenné. Voltak hibák is a játékban, amit a játék fejlesztése során még nem derült ki, ezért a tesztelés valóban segít a problémák feltárásában és időben ki tudjuk javítani a hibákat még mielőtt a felhasználóhoz kerül a játék.

0 comments on commit 69b8067

Please sign in to comment.