bme - szakdolgozat (2014)
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.