SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
Modell alapú tesztgenerálás
iOS platformra
Szabó Csaba - B.Sc. szakdolgozat
Informatikai 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.

Weitere ähnliche Inhalte

Ähnlich wie BME - Szakdolgozat (2014)

Szerver oldali fejlesztés korszerű módszerekkel C# nyelven
Szerver oldali fejlesztés korszerű módszerekkel C# nyelvenSzerver oldali fejlesztés korszerű módszerekkel C# nyelven
Szerver oldali fejlesztés korszerű módszerekkel C# nyelvenKrisztián Gyula Tóth
 
Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben
Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésbenTranszformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben
Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésbenIstvan Rath
 
Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonság...
Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonság...Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonság...
Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonság...Mobil Weekend
 
Swift -Helyzetjelentés az iOS programozás új nyelvéről
Swift -Helyzetjelentés az iOS programozás új nyelvérőlSwift -Helyzetjelentés az iOS programozás új nyelvéről
Swift -Helyzetjelentés az iOS programozás új nyelvérőlBalaBit
 
BlackBerry10 alapú natív alkalmazásfejlesztés
BlackBerry10 alapú natív alkalmazásfejlesztésBlackBerry10 alapú natív alkalmazásfejlesztés
BlackBerry10 alapú natív alkalmazásfejlesztésOpen Academy
 
A termékfejlesztés rögös útja (avagy barangolás a módszertanok és eszközök er...
A termékfejlesztés rögös útja (avagy barangolás a módszertanok és eszközök er...A termékfejlesztés rögös útja (avagy barangolás a módszertanok és eszközök er...
A termékfejlesztés rögös útja (avagy barangolás a módszertanok és eszközök er...Digital Natives
 
Fejlesztési kihívások a pénzügyi szektorban
Fejlesztési kihívások a pénzügyi szektorbanFejlesztési kihívások a pénzügyi szektorban
Fejlesztési kihívások a pénzügyi szektorbanPal Vojacsek
 
A tesztelés szerepe folyamatos kihelyezést használó projektekben (Microsoft, ...
A tesztelés szerepe folyamatos kihelyezést használó projektekben (Microsoft, ...A tesztelés szerepe folyamatos kihelyezést használó projektekben (Microsoft, ...
A tesztelés szerepe folyamatos kihelyezést használó projektekben (Microsoft, ...Gáspár Nagy
 
Egy .NET fejlesztő élete a Node.js világában
Egy .NET fejlesztő élete a Node.js világábanEgy .NET fejlesztő élete a Node.js világában
Egy .NET fejlesztő élete a Node.js világábanGyörgy Balássy
 
XXI. századi szoftverfejlesztés
XXI. századi szoftverfejlesztésXXI. századi szoftverfejlesztés
XXI. századi szoftverfejlesztésGyörgy Balássy
 
Fejlesztés (BUILD) modul
Fejlesztés (BUILD) modulFejlesztés (BUILD) modul
Fejlesztés (BUILD) modulITStudy Ltd.
 
Life and Death of Apache Maven (HU)
Life and Death of Apache Maven (HU)Life and Death of Apache Maven (HU)
Life and Death of Apache Maven (HU)Tamas Cservenak
 
Enterprise java evolució, avagy java ee (
Enterprise java evolució, avagy java ee (Enterprise java evolució, avagy java ee (
Enterprise java evolució, avagy java ee (Attila Balogh-Biró
 
Enterprise java evolució, avagy java ee (
Enterprise java evolució, avagy java ee (Enterprise java evolució, avagy java ee (
Enterprise java evolució, avagy java ee (Attila Balogh-Biró
 
Android fejlesztés
Android fejlesztésAndroid fejlesztés
Android fejlesztésOpen Academy
 

Ähnlich wie BME - Szakdolgozat (2014) (20)

Szoftver tesztelés
Szoftver tesztelésSzoftver tesztelés
Szoftver tesztelés
 
Alumni Release Process
Alumni Release ProcessAlumni Release Process
Alumni Release Process
 
Szerver oldali fejlesztés korszerű módszerekkel C# nyelven
Szerver oldali fejlesztés korszerű módszerekkel C# nyelvenSzerver oldali fejlesztés korszerű módszerekkel C# nyelven
Szerver oldali fejlesztés korszerű módszerekkel C# nyelven
 
Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben
Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésbenTranszformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben
Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben
 
Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonság...
Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonság...Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonság...
Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonság...
 
Ci
CiCi
Ci
 
Swift -Helyzetjelentés az iOS programozás új nyelvéről
Swift -Helyzetjelentés az iOS programozás új nyelvérőlSwift -Helyzetjelentés az iOS programozás új nyelvéről
Swift -Helyzetjelentés az iOS programozás új nyelvéről
 
BlackBerry10 alapú natív alkalmazásfejlesztés
BlackBerry10 alapú natív alkalmazásfejlesztésBlackBerry10 alapú natív alkalmazásfejlesztés
BlackBerry10 alapú natív alkalmazásfejlesztés
 
A termékfejlesztés rögös útja (avagy barangolás a módszertanok és eszközök er...
A termékfejlesztés rögös útja (avagy barangolás a módszertanok és eszközök er...A termékfejlesztés rögös útja (avagy barangolás a módszertanok és eszközök er...
A termékfejlesztés rögös útja (avagy barangolás a módszertanok és eszközök er...
 
Fejlesztési kihívások a pénzügyi szektorban
Fejlesztési kihívások a pénzügyi szektorbanFejlesztési kihívások a pénzügyi szektorban
Fejlesztési kihívások a pénzügyi szektorban
 
A tesztelés szerepe folyamatos kihelyezést használó projektekben (Microsoft, ...
A tesztelés szerepe folyamatos kihelyezést használó projektekben (Microsoft, ...A tesztelés szerepe folyamatos kihelyezést használó projektekben (Microsoft, ...
A tesztelés szerepe folyamatos kihelyezést használó projektekben (Microsoft, ...
 
Egy .NET fejlesztő élete a Node.js világában
Egy .NET fejlesztő élete a Node.js világábanEgy .NET fejlesztő élete a Node.js világában
Egy .NET fejlesztő élete a Node.js világában
 
Webkonf 2013
Webkonf 2013Webkonf 2013
Webkonf 2013
 
Mobile weekend 2015
Mobile weekend 2015Mobile weekend 2015
Mobile weekend 2015
 
XXI. századi szoftverfejlesztés
XXI. századi szoftverfejlesztésXXI. századi szoftverfejlesztés
XXI. századi szoftverfejlesztés
 
Fejlesztés (BUILD) modul
Fejlesztés (BUILD) modulFejlesztés (BUILD) modul
Fejlesztés (BUILD) modul
 
Life and Death of Apache Maven (HU)
Life and Death of Apache Maven (HU)Life and Death of Apache Maven (HU)
Life and Death of Apache Maven (HU)
 
Enterprise java evolució, avagy java ee (
Enterprise java evolució, avagy java ee (Enterprise java evolució, avagy java ee (
Enterprise java evolució, avagy java ee (
 
Enterprise java evolució, avagy java ee (
Enterprise java evolució, avagy java ee (Enterprise java evolució, avagy java ee (
Enterprise java evolució, avagy java ee (
 
Android fejlesztés
Android fejlesztésAndroid fejlesztés
Android fejlesztés
 

BME - Szakdolgozat (2014)