bme - szakdolgozat (2014)

Post on 18-Jul-2015

864 Views

Category:

Technology

6 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Modell alapú tesztgenerálás iOS platformra

Szabó Csaba - B.Sc. szakdolgozatInformatikai technológiák szakirány

Rendszermodellezés ágazat

Konzulensek: Dr. Ráth István (BME MIT) Ujhelyi Zoltán (BME MIT)

Motiváció• Komplex mobil alkalmazások

• Igény a tesztelésre

• Sok multiplatform keretrendszer

• Kevés modell alapú

• Tesztek hiánya

Szcenárió alapú teszt• Szcenárió teszt ≠ egység teszt (unit test)

• Automatizálható, használati eset alapú

• Nagyrészt felhasználói felület teszt

• Eszközök:

• iOS platform

• KIF (Keep it functional) keretrendszer

• Habits példa alkalmazás

KIF (Keep It Functional) működése

• Objective-C tesztek

• Xcode fejlesztőkörnyezetbe integrálató

• A felhasználói felületet az elemek AccessibilityLabel-ein keretszül éri el

• Elvárt eredmény ellenőrzés

KIF problémák

• Nincs AccessibilityLabel validálás

• Egy teszt metódus = csak egy futtatható teszt

• Egy szcenáriót könnyebb leírni grafikusan

Megoldás

• Grafikus szerkesztő

• Kódgenerálás

• Modell validáció

• Egy modell - több teszt

Xcode&alkalmazás&projekt&

KIF&tesztek&

Eclipse&plug9in&

EMF&modell&

BPMN2&modell&

KiegészíteB&BPMN2&modell&

Grafikus&szerkesztő&

KiegészíteB&grafikus&

szerkesztő&

Xtend&kódgenerátor&

KIF&keretrendszer&

ocunit/xcunit&teszt&keretrendszer&&

Xcode&teszt&keretrendszer&

Eclipse plug-in• Kiegészíthető

• Modellezés - EMF

• Grafikus szerkesztő - BPMN2

• Kódgenerátor - Xtend

• Eclipse ITG projekt(ITG = iOS Test Generator)

BPMN2 alapú teszt szerkesztő

• SOA modellezésre tervezték

• Új elemek hozzáadása

• EMF modell kiegészítése

• EMF modell feldolgozás

• Elágazás

• Több teszt generálása

Kódgenerálás• Xtend sablon alapú kódgenerálás

• Modell mentés után automatikusan

• Elágazások számával megegyező teszt generálódik le

• Modell validálási hiba esetés jelzem a felhasználónak a hibát

Kódgenerálás• Xtend sablon alapú kódgenerálás

• Modell mentés után automatikusan

• Elágazások számával megegyező teszt generálódik le

• Modell validálási hiba esetés jelzem a felhasználónak a hibát

teszt lépés

elvárt eredmény ellenőrzés

Validaciós módszerek

• A keretrendszer több validációt is tartalmaz:

• BPMN2 grafikus modell validálása

• KIF lépés validálás

• AccessibilityLabel validálás

Teszt validálás

Folyamat

Teszt&elkészítése& Mentés& Modell&

feldolgozás&

Tesztek&generálása&Kódgenerálás&Teszt&fájlok&

másolása&

BPMN2 EMF

XtendEclipse-ből az Xcode projektbe

Továbbfejlesztési lehetőségek

• Önálló alkalmazás

• AccessibilityLabel-ek automatikus beolvasása az Xcode projektből

• Grafikus szerkesztő továbbfejlesztése

• Xcode projekthez való egyszerű csatlakozás

Összefoglalás• Módosított grafikus szerkesztő

• Több teszt generálása

• Kódgenerátor Objective-C nyelvre

• Modell validáció

• Ezeket integráló Eclipse fejlesztőkörnyezet

• Példaalkalmazás

Bírálói kérdések• Mennyire volt jó választás a BPMN2 nyelv a teszt

történetek leírására? Milyen alternatívákat vizsgálna meg még?

• EMF modell alapok, kiegészíthetőség és bő kezdeti eszközkészlete miatt jó választásnak bizonyolt.Kipróbálnám még a JPA diagram szerkesztőt is, illetve saját grafikus szerkesztő készítése is hasznos lehetne GEF (Graphical Editing Framework) vagy Graphiti használatával.

Bírálói kérdések• A grafikus diagramok szerkesztésénél nagy problémát jelent,

ha sok repetitív feladatot kell elvégezni, amelyeket a kódban makrókkal vagy find-replace művelekkel lényegesen kevesebb lépésből meg lehetne tenni. Mennyire lenne vajon bonyolult a generált kód változásait visszavetíteni a BPMN diagramokra?

• Az általam generált kódsorok módosítása egyszerű, új tesztlépések hozzáadása az egy modell-több teszt miatt bonyolultabb, viszont ha ezen kívül bármilyen más kódot kellene feldolgozni, akkor az még nehezebb, hiszen a következő generáláskor azt elveszítenénk, vagy ha bennehagyjuk a kódban, akkor lehet hogy szintaktikai hibát fog okozni.

Bírálói kérdések• Véleménye szerint a KIF rendszer szélesebb körű

használata a fogyatékkal élők telefonhasználati lehetőségeit mennyiben befolyásolná?

• Mivel az felhasználói felület elemeket az AccessibilityLabel értéken keresztül éri el, ami a látáskárosultak számára felhasznált, felolvasható tartalmat jelenti, így szélsesebb körű eljerjedése azt jelentené, hogy sokkal több alkalmazás lenne használható látáskárosultak számra is.

top related