Add az APK-t!

Download Report

Transcript Add az APK-t!

1
Add az APK-t!
Automatizált apptesztelés
[email protected]
2013/10/13
Add az APK-t!
[email protected]
A cél
2
• 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
Add az APK-t!
[email protected]
Elvárások I.
3
• 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
Add az APK-t!
[email protected]
Elvárások II.
4
• 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ó
Add az APK-t!
[email protected]
Elvárások III.
5
• 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
Add az APK-t!
[email protected]
Android teszt típusok
6
• monkeyrunner:
szkriptelhető, de elsősorban random inputokkal operál
+ user szimuláció
- kb minden más
Add az APK-t!
[email protected]
Android teszt típusok
7
• ui automator:
független az app kódjától, kifejezetten ui
teszteléshez
+ user interakciók
- lokátor stratégia
Add az APK-t!
[email protected]
Android teszt típusok
8
• 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
Add az APK-t!
[email protected]
Teszt keretrendszerek
9
• Fizetős:
Testdroid / Seetest / Ranorex / (SauceLabs)
• Fizetős support:
Monkey talk
• Open source:
Appium / Frank / Robotium (+RC) / Espresso
Add az APK-t!
[email protected]
Robin github.com/ustream/robin
10
• Robotium RC + TestNG + ReportNG
• Window driven pattern
• Report: logcat + screenshot + időtartamok
• @Multidevice és @Sequential tesztek
• Párhuzamos futtatás
• 2.33-as android verziótól
Add az APK-t!
[email protected]
Robin teszt kód
11
@Test(description = "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();
}
Add az APK-t!
[email protected]
Konklúzió I.
12
• 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
Add az APK-t!
[email protected]
Konklúzió II.
13
• 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!
Add az APK-t!
[email protected]
Kérdések
14
?
Add az APK-t!
[email protected]
Köszönet
15
Kellemes tesztelést!
Add az APK-t!
[email protected]