2018.12.04.
1. Bevezetés
Minden
szoftvernél elengedhetetlen a tesztelési folyamat, aminek során megpróbáljuk a
legtöbb hibát orvosolni. A hibák kiszűrése és a tesztelés a szoftverminőség biztosítása
miatt különösen fontos, hiszen a felhasználók nem lennének elégedettek egy
olyan alkalmazással, mely nem az elvárt igények szerint működik. Elsősorban a
szimuláció ismételt, azonos végeredményű lefutását tartjuk a legfontosabbnak,
majd a kisebb hang, képi hibákat javítjuk ki, végül a különböző hardware-ekre optimalizálunk. Mindezeket persze a program garantált
lefutásának biztosítása után.
2. Általános
szoftvertesztelési szempontok
- Funkcionális
követelmények tesztelése
A tervezés elején elkészített és a megrendelővel egyeztetett szoftver
követelmény specifikáció szerint kell elkészülnie a programnak. A kívánt
funkciókat tehát a tervezés során hozott döntéseknek megfelelően kell
megvalósítani. Fontos a több lépcsős tervezés és tesztelés is, hogy a
különböző felhasználói és megrendelői rétegekből is visszajelzéseket
kapjanak a fejlesztők, és a szükséges változtatásokat elvégezzék.
Garantálni kell, hogy a program elinduljon, és a különböző menük
működjenek, elinduljon a szimuláció, és bármilyen hardware-ről futtatva ugyanaz a folyamat menjen végbe.
Biztosítani kell, hogy a felhasználó könnyen és gyorsan elsajátítsa a
program használatát, és az arra megfelelő célra zökkenőmentesen tudja
használni. Hibák esetén tájékoztatni kell, hogy mi okozta, és lehetőséget
adni, hogy ezt jelentse a fejlesztők felé, a gyors hibajavítás céljából.
- Nem-funkcionális
követelmények tesztelése
A megfelelő teljesítmény nyújtásáról a megfelelően erős hardverelemek
megválasztása mellett a kódok megírása során is gondoskodni kell. A
várakozási idők minimalizálása alapvető követelmény, és minden
sebességbeállítás mellett akadásmentesen kell futnia a programnak.
A különböző ipari előírásoknak meg kell felelnie az elkészült
produktumnak.
A beállítható nyelvek helyességét is ellenőrizni kell, hogy minden
teljesen érthető legyen a felhasználó számára. Minél pontosabb definíciók
és nyelvi sajátosságok mellett biztosítani kell az információ
egyértelműségét.
Az letöltött és importált fájlok (modellek, textúrák, térképek stb.) kompatibilitásáról
is meg kell győződni, ezek egyszerű használatát biztosítani a
felhasználónak és az erre szolgáló weboldal teljesítményét is minél
tökéletesebbre csiszolni.
Nagyon fontos a program feltörésének megakadályozása, hogy a prémium
verzió tényleg csak a fizetett felhasználók számára legyen elérhető,
különben ez rengetek financiális veszteséget okozhat a megrendelőnek.
Biztosítani kell, hogy a program váratlan leállása esetén (crash, áramkimaradás, stb.)
után a szimuláció visszatérjen arra a pontra, ahol a program terminált,
vagy legalább minél közelebbi pontra. Az erre szolgáló
automatikus mentés, és a mentett fájl integritását, megbízhatóságát
tesztelni.
- Karbantartás
Regressziós tesztelés: ha egy korábban működő szoftverfunkció hibásan vagy
egyáltalán nem működik, akkor a korábbi változtatások kimenetelét
mélyebben átvizsgálni, és visszatéríteni a kívánt funkciót. A későbbi
frissítések kiadása során lehetőség áll ilyen hibára, amit ideiglenesen
verzióvisszaállítással lehet megszüntetni.
A gyorsan fejlődő világban újabb hardware-ek kerülnek kiadásra, újabb
operációs rendszer és szoftverfrissítések jönnek ki, amikre a kompabilitás biztosítása állandó problémát jelent,
ezért erre hosszú időn át figyelmet kell fektetni, a szimulációs program
élettartamának és profitálásának megnövelése céljából.
3. Tesztelés
menete
ˇ
Komponensteszt
A komponens
tesztekkel a programunk legkisebb önállóan működő egységeit kívánjuk tesztelni.
A komponensek
automatizált tesztelésére egy szabad forráskódú modultesztelő rendszert, a JUnit-ot fogunk
használni. A JUnit rendszer használatával
hibakeresési időt takaríthatunk meg.
ˇ
Integrációs teszt
Az integrációs
tesztel a programegységeket, modulokat, azok egymással és a környezettel
történő együttműködését kívánjuk tesztelni. Osztályok, szolgáltatások és
függőségeik valós működését teszteljük, ideértve az esetleges adatelérést is.
ˇ
Rendszerteszt
Lehetőség szerint
nem alkalmazunk emuláló technikákat, a rendszert olyan vagy ahhoz hasonló
környezetben teszteljük, ahogy majd éles környezetben is működni fog. Oly módon
teszteljük a rendszert, mint ahogyan azt a felhasználó használni fogja.
ˇ
Átvételi teszt
Az átvételi teszt
is a teljes rendszer tesztelésére szolgál, de ezt már a felhasználók végzik.
o
Alfa tesztelés
Alfa tesztelés során egy a fejlesztőink által célközönségnek tartott belső
személyekből álló csapat számára adjuk oda a szimulációs programot tesztelésre.
E csapat tagjai lehetőleg olyan egyének lesznek, akik az alkalmazás fejlesztési
menetével nincsenek tisztában, a hagyományos felhasználókat kívánják
reprezentálni. Itt tudjuk biztosítani a korszerűséget, és az emberi viselkedés
hihető megvalósítását, és a nem kutató szakmabeli felhasználók érdeklődését is
felmérjük.
o
Béta tesztelés
Az implementáció utolsó fázisában béta verziót teszünk közzé az oldalunkon
független tesztelők számára. Ennek során lehetőség nyílik arra, hogy a
szoftvert tervező és elkészítő csapaton kívül állók is kipróbálják az
alkalmazást (a béta tesztben prémium licensz vásárlása szükséges a fizetős
tartalmak használatához). Ezen felül jóval több felhasználó bevonására nyílik
lehetőség ezen a ponton, ami jelentős mértékben csökkenti annak valószínűségét,
hogy felfedezetlen hiba marad a rendszerben. A tesztekre pedig valószínűleg
olyan felhasználók jelentkeznek, akik a jövőben is használni szeretnék a
programot, így közvetlenül a célközönségtől kaphatunk visszajelzéseket a
működésről. Ez a fázis lehetőséget ad a weboldal tesztelésére is, hogy a le- és
feltöltés megfelelő sebességű legyen, továbbá a felhasználónyilvántartó
adatbázis, fizetésellenőrzés és az értékelési rendszer is az elvártak szerint működjön.
4. A
tesztelés költségei
- Időigény
A tesztelés különböző fokozatainak, lépéseinek kivitelezése természetesen
időt vesz igénybe. Ezen tevékenységek elvégzéséhez szükséges időt
mindenképpen bele kell számítani a kész program elkészítéséhez szükséges
időtartamba. A csapatunk által megtervezett és implementálásra kerülő
szoftver esetén az alfa és a béta verziók tesztelését összesen egy hónap
alatt kívánjuk elvégezni, a béta verzióra való regisztrációt lehetőleg az
alfa teszt alatt nyitjuk meg, ha minden a tervek szerint halad, de
súlyosabb változtatások esetén fenntartjuk a halasztás lehetőségét. Az ezt
megelőző belső tesztek a kódolás előrehaladtával folyamatosan kerülnek
kivitelezésre, és nincs konkrétan előre megszabva az időtartamuk.
- Munkaerőigény
Az alfa teszteléshez igyekszünk olyan számú és összetételű emberi
erőforrást alkalmazni, mely megközelítőleg reprezentatív mintát alkot a
leendő felhasználók köréből. Várhatóan 100 főnél többre nem lesz
szükségünk. A béta teszt, és az azt követő további tesztek már nem
igényelnek a fejlesztői csapat által bevont munkaerőt, hiszen a béta
tesztelés során már a valódi felhasználói körhöz jelentősen közel álló
személyek végzik a tesztelést. Ők ezt már önkéntesen, az általunk
üzemeltett oldalon tesztelésre jelentkezve teszik.