3. Szoftvertesztelés
Tesztelés szintjei
– Komponensteszt (unit teszt)
– Komponens integrációs teszt (modulteszt)
– Rendszerteszt
– Rendszerintegrációs teszt
– UAT (átvételi) teszt
Felhasználói átvételi teszt (UAT)
Üzemeltetői átvételi teszt (OAT)
Alfa teszt
Béta teszt (RC – Release Candidate)
Tesztelés típusai (a tesztelés tárgya szerint)
3
– Funkcionális tesztelés
Jól viselkedik a rendszer? Kielégíti a funkc. követelményeket?
A tesztelés tárgya közvetlenül az üzleti logika
Validáljuk és verifikáljuk a rendszer által nyújtott szolgáltatásokat
Vizsgáljuk, hogy bizonyos bemeneti adatokra, kombinációra
hogyan viselkedik a rendszer
GUI teszt, API teszt
– Nem funkcionális tesztelés
Hogyan viselkedik a rendszer működés közben?
Az üzleti logikához közvetlenül nem kapcsolódó követelmények
(teljesítmény, skálázhatóság, megbízhatóság)
Skálázhatóság, átalakíthatóság növekvő szerepe
Teljesítménytesztelés (később…)
‒ Regressziós teszt
‒ Strukturális teszt (= white-box testing)
‒ Újratesztelés
5. Mit, mikor automatizáljunk?
5
Mit Mikor
Regressziós tesztkészlet Amikor már nem / minimálisan változik egy fő verzió
kódja.
Smoke tesztek Amikor az alapfunkciók már véglegesek.
Integráció felületi tesztelése Amikor az érintett rendszerek egyenként már
funkcionálisan jól működnek és az interfész API
szinten le lett tesztelve.
Teljesítménytesztek Amikor az érintett rendszerek funkcionálisan jól
működnek.
Manuális tesztelés támogatása Bármikor, ha az adott üzleti igény automatizálásával
erőforrásokat takaríthatunk meg.
6. Elvárások a tesztautomatizálási projekttel szemben
– Hatékonyság, eredményesség
Tesztelés átfutási idejének csökkentése, tesztlefedettség növelése
Manuális tesztelői, üzleti szakértői erőforrások hatékonyabb felhasználása
– Átláthatóság, megbízhatóság, pontosság
Ne torzítsa el a valóságot
Az igénynek megfelelően működjön
Keletkezzen részletes futási napló
– Ismételhetőség, újrafelhasználhatóság
KDD, BPT
– Nem funkcionális követelmények validálása
Teljesítménytesztek végrehajtása
6
7. Tesztautomaták életciklusa (1)
– Megvalósíthatósági vizsgálat: Automatizálható-e, ill.
ajánlatos-e automatizálni az alkalmazás(oka)t
Mérföldkövek, követelmények tervezése
Menedzsment szintű döntés
ROI
– Eszközök kiválasztása
Menedzsment szintű döntés
Technológia (szoftverkészlet) és erőforrások kiválasztása,
definiálása
– Követelmény fázis
Mérföldkövek, követelmények definiálása (menedzsment)
Manuális tesztesetek kijelölése automatizálásra (üzleti
szakértők, tesztelők)
Tesztesetek, funkciók pontosítása, tisztázása
(tesztautomatizálási mérnökök, üzleti szakértők)
7
10. Eszközök csoportosítása
UFT
– Funkcionális tesztelést támogató
fejlesztőkörnyezet
GUI
API
– VBScript alapú
– A ma használatos automatizálási
keretrendszerek mindegyikét meg
tudjuk benne valósítani
BPT: HPE által fejlesztett komponens,
módszertan.
– Objektumok azonosítására kiforrott
és közérthető módszerek
– Felületek és protokollok széles körű
támogatása (Web, Java, Mobile, SAP,
Siebel)
– Licence köteles
LoadRunner
– Teljesítménytesztelő
alkalmazásRENDSZER
– VUGen
Fejlesztőkörnyezet
Tesztszkriptek fejlesztése
– Controller
VUGen szkriptek meghajtása
Teszt paramétereinek összeállítása
Futás közbeni monitorozás
– Analysis
Részletes riport, futási napló
– Protokollok széles körű támogatása
(http, web services, JMS, Siebel)
TruClient: HPE által fejlesztett
technológia
ALM
– Tesztmenedzsment eszköz (JIRA)
Követelmény-menedzsment
Incidens menedzsment
Konfiguráció menedzsment
Tesztszkriptek moduláris tárolása
(JIRA ilyet közvetlenül nem tud)
– Tesztautomatizálási „keretrendszer”
Támogatja a moduláris felépítésű és
BPT teszteket
Test Resources
Test Plan
Test Lab
Result Viewer
– Több modulból áll
Desktop Client
Lab Management
…
10
11. HPE UFT
Működési alapelve, építőkövei
– Teszt objektum modell
Teszt objektum
Futásidejű objektum
– Action struktúra
Lokális
Másolt
Hivatkozott
– Object Repository
Lokális
Megosztott
– Függvénykönyvtárak
Szubrutinok
Függvények
Osztályok
Keretrendszerek
– Lineáris
– Moduláris
Jól tagolt Action struktúra
Függvénykönyvtárak
A tesztszkript és az adat még egy egységben
– Adatvezérelt
Szkript és (teszt)adat elkülönülése
– Kulcsszó vezérelt
Egy üzleti folyamat = 1 kulcsszó
– Hibrid
Több keretrendszer alkalmazása ugyanazon automatában
– BPT
Jelen dolgozat nem foglalkozik vele
11
12. Kulcsszó vezérelt keretrendszer (1)
Egy lehetséges megvalósítás…
12
– Input Excel (a következő slide-on)
– Meghajtó szkript
Az input xls-t dolgozza fel
Sorra kinyeri belőle az egyes kulcsszavakat és hívja a
kulcsszavaknak megfelelő komponenst (Action-t)
– Kulcsszavak
1 kulcsszó = 1 újrafelhasználható Action !
Ha egy kulcsszó több Action-ben kerül implementálásra, akkor
legyen egy fő Action, amely szekvenciálisan hivatkozik az
Action-ökre
Így minden kulcsszó szólítása esetén elegendő közvetlenül 1
Action-re hivatkozni
Erőforrások hívása (függvénykönyvtárak, osztott repository-k)
– Közös komponensek
Kulcsszavak implementálásához szükséges nem felület
specifikus algoritmusok
20. Ha nem kielégítő a VBScript… (1)
– Objektum alapú, nem OO !
Osztály, objektum
Konstruktor (!), destruktor, metódusok
Adattagok
Egységbezárás
Nincs öröklődés
Nincsenek interfészek
Nincs polimorfizmus, túlterhelés
– Nem támogatja a .NET-et (COM)
„Elavult” és korlátolt erőforrás kezelések
– Egy lehetséges megoldás
DLL-ek fordítása az automatában
.NET által nyújtott XML kezelés átvezetése
20
21. Ha nem kielégítő a VBScript… (2)
Java program futtatása automatából
21