Funkcionális tesztelés támogatása UFT tesztautomatizálássalHencz Gergő
May 29, 2016
2
Kevés elmélet…
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)– 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
4
Tesztautomatizálás
– Szűkebb: manuális tesztesetek automatizált végrehajtása Technikai feltételek: fejlesztőkörnyezet vagy API (HPE UFT,
Selenium WebDriver API, HPE LoadRunner, JMeter) Regressziós tesztkészlet automatizálása Smoke (sanity) tesztek automatizálása Integrált környezet alapszintű működésének ellenőrzése Teljesítménytesztek végrehajtása
• Terheléses teszt• Stresszteszt• Kapacitás teszt
– Bővebb: a manuális tesztelést támogató tevékenységek összessége Tesztadatok előkészítése, generálása Riportok készítése
– HPE UFT (később bővebben…)
5
Mit, mikor automatizáljunk?
Mit MikorRegresszió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
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)
8
Tesztautomaták életciklusa (2)– Tervezési fázis
Tesztadatok körének meghatározása, azok biztosítása (üzleti szakértők, tesztelők)
Keretrendszer kiválasztása, tesztautomata modulok meghatározása (tesztautomatizálási mérnökök)
– Implementációs fázis Szkriptek fejlesztése (tesztszkriptek) Kódolási szabványok Tesztautomata fejlesztők
– Automaták tesztelése Nem tartalmaz hibákat (szintaktikai, futásidejű, logikai) Felülvizsgálat (review) Tesztautomata fejlesztők
– Átadás / átvételi fázis Üzleti oldal validálja az automaták helyességét
– Futtatási fázis Futtatás (ügyfél) Támogatás (tesztautomata fejlesztők)
9
HPE eszközökUFT, keretrendszerek, ALM
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 …
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
12
Kulcsszó vezérelt keretrendszer (1)Egy lehetséges megvalósítás…
– 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
13
Kulcsszó vezérelt keretrendszer (2)
Folyamat Input Excel
14
Keretrendszerek összehasonlítása
újrafelhasználha-tóság
támogathatóság
egyszerűségerőforrás spórolás
tesztlefedettség
0
5
Összes említett keretrendszerLineáris ModulárisAdatvezérelt Kulcsszó vezérelt (hibrid)BPT
újrafelhasználha-tóság
támogathatóság
egyszerűségerőforrás spórolás
tesztlefedettség
0
5
Lineáris vs. kulcsszó vezéreltLineáris Kulcsszó vezérelt (hibrid)
15
Komplex üzleti igények kielégítéseFájlkezelés, adatbázis kezelés, XML technológia
16
Néhány komplex üzleti igény
Riport készítés– Tesztkörnyezet állapotáról
információk kinyerése Verzió Migrációs állomány RKD Fájlkezelés (.csv)
– Feltételeknek megfelelő adatok kinyerése a környezetből Bizonyos szerződések
szétválogatása Migráció ellenőrzése (DB szinten triviálisabb lenne) Fájlkezelés (.xls)
Tömeges rögzítés és integráció tesztelés– Integráció alapszintű működésének
ellenőrzése UAT szinten 1 rendszer = 1 automata Paraméter átadás (DB séma)
– Komplex folyamatok tömeges végrehajtása 1 részfolyamat = 1 automata Paraméter átadás (DB séma)
Adatok manipulációja– Adatok lekérdezése
– Leválogatott adatokra automata futtatása
– Erőforrás módosítása
– DB kezelés, XML kezelés
17
Riportok készítése (2)Fájlkezelés UFT-ben
18
Automaták közötti paraméter átadásHitelügy rögzítés folyamata
Ügyfél létrehozás
•Ügyfél azonosító•[Kedvezményezett azonosító]
Betétszerződés rögzítés
•Ügyfél azonosító•[Kedvezményezett azonosító]
•Szerződésszám
Számlára befizetés
•Ügyfél azonosító•[Kedvezményezett azonosító]
•Szerződésszám
Hitelügy rögzítés
•Ügyfél azonosító•[Kedvezményezett azonosító]
•Szerződésszám•Hitelügyszám
OUTPUT
19
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
21
Ha nem kielégítő a VBScript… (2)Java program futtatása automatából
22
Kérdések?
23
Thank youHencz Gergő+36306676515