funkcionális tesztelés támogatása uft tesztautomatizálással

23
Funkcionális tesztelés támogatása UFT tesztautomatizálással Hencz Gergő May 29, 2016

Upload: gergo-hencz

Post on 12-Apr-2017

32 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Funkcionális tesztelés támogatása UFT tesztautomatizálással

Funkcionális tesztelés támogatása UFT tesztautomatizálássalHencz Gergő

May 29, 2016

Page 2: Funkcionális tesztelés támogatása UFT tesztautomatizálással

2

Kevés elmélet…

Page 3: Funkcionális tesztelés támogatása UFT tesztautomatizálással

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

Page 4: Funkcionális tesztelés támogatása UFT tesztautomatizálással

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…)

Page 5: Funkcionális tesztelés támogatása UFT tesztautomatizálással

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.

Page 6: Funkcionális tesztelés támogatása UFT tesztautomatizálással

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

Page 7: Funkcionális tesztelés támogatása UFT tesztautomatizálással

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)

Page 8: Funkcionális tesztelés támogatása UFT tesztautomatizálással

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)

Page 9: Funkcionális tesztelés támogatása UFT tesztautomatizálással

9

HPE eszközökUFT, keretrendszerek, ALM

Page 10: Funkcionális tesztelés támogatása UFT tesztautomatizálással

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 …

Page 11: Funkcionális tesztelés támogatása UFT tesztautomatizálással

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

Page 12: Funkcionális tesztelés támogatása UFT tesztautomatizálással

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

Page 13: Funkcionális tesztelés támogatása UFT tesztautomatizálással

13

Kulcsszó vezérelt keretrendszer (2)

Folyamat Input Excel

Page 14: Funkcionális tesztelés támogatása UFT tesztautomatizálással

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)

Page 15: Funkcionális tesztelés támogatása UFT tesztautomatizálással

15

Komplex üzleti igények kielégítéseFájlkezelés, adatbázis kezelés, XML technológia

Page 16: Funkcionális tesztelés támogatása UFT tesztautomatizálással

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

Page 17: Funkcionális tesztelés támogatása UFT tesztautomatizálással

17

Riportok készítése (2)Fájlkezelés UFT-ben

Page 18: Funkcionális tesztelés támogatása UFT tesztautomatizálással

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

Page 19: Funkcionális tesztelés támogatása UFT tesztautomatizálással

19

Page 20: Funkcionális tesztelés támogatása UFT tesztautomatizálással

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

Page 21: Funkcionális tesztelés támogatása UFT tesztautomatizálással

21

Ha nem kielégítő a VBScript… (2)Java program futtatása automatából

Page 22: Funkcionális tesztelés támogatása UFT tesztautomatizálással

22

Kérdések?

Page 23: Funkcionális tesztelés támogatása UFT tesztautomatizálással

23

Thank youHencz Gergő+36306676515