1 Add az APK-t! Add az APK-t! Automatizált apptesztelés 2013/10/13
2 Add az APK-t! End-to-end regressziós UI tesztek a Ustream app-hoz különféle platformokon Szimulálni a felhasználót Felszabadítani a manuális tesztelőket Támogatni a fejlesztőket a release folyamatban A cél
3 Add az APK-t! Platform független :) Visszamenőleg kompatibilis (régi sdk-val) Integrálhatóság meglévő java-s keretrendszerrel Több eszközt használó teszt esetek támogatása Rootolás nélkül Elvárások I.
4 Add az APK-t! Párhuzamos (cloud) futtatás sokféle eszközön (verzió / felbontás / típus, stb.) Natív app-ok kezelése / WebView Alacsony szintű események kezelése: (forgatás, hálózati, akku, sms, stb.) CI integráció Elvárások II.
5 Add az APK-t! Gray box : resource class-ok használata lokátorokhoz Tesztek könnyű csoportosítása Könnyen olvasható teszt kód Screenshot és device log Többnyelvű alkalmazás tesztelése Elvárások III.
6 Add az APK-t! monkeyrunner: szkriptelhető, de elsősorban random input- okkal operál + user szimuláció - kb minden más Android teszt típusok
7 Add az APK-t! ui automator: független az app kódjától, kifejezetten ui teszteléshez + user interakciók - lokátor stratégia Android teszt típusok
8 Add az APK-t! instrumentation tesztek: funkcionális teszteléshez is használható, objektum szinten elérhető minden Activity + a kezdeti sdk-tól elérhető - csak az app-hoz van jogosultsága, más app-ok elérhetetlenek Android teszt típusok
9 Add az APK-t! Fizetős: Testdroid / Seetest / Ranorex / (SauceLabs) Fizetős support: Monkey talk Open source: Appium / Frank / Robotium (+RC) / Espresso Teszt keretrendszerek
10 Add az APK-t! Robotium RC + TestNG + ReportNG Window driven pattern Report: logcat + screenshot + tesztek Párhuzamos futtatás 2.33-as android verziótól Robin github.com/ustream/robin
11 Add az APK-t! Robin teszt = "Tests login.", groups = { "LoginSmokeTests" }) public void testLogin() { HomeActivity home = getHomeActivity(); DefaultLoginUser defUser = userFactory.getDefUser(); home.login(defUser); home.openMenu().clickSettings().clickAccount().checkUserName(defUser.getName()).backToSettings().backToHome().logout(); }
12 Add az APK-t! Nincs ultimate eszköz -> priorizálni kell az elvárásokat Unit- és integrációs tesztek fontosak A UI tesztek lassúak lesznek Az app fejlesztése alapvatően meghatároza mit érdemes használni Konklúzió I.
13 Add az APK-t! Valódi eszközökön valódi eredmények születhetnek Report és log kezelés a könnyeb hiba felderítéshez Széllel szemben szembe fúj a szél! Konklúzió II.
14 Add az APK-t! ? Kérdések
15 Add az APK-t! Kellemes tesztelést! Köszönet