ݺߣ

ݺߣShare a Scribd company logo
Mobilus testavimas? Automatizuokim!* 
*Gyvenimas per trumpas rankiniam testavimui 
© UAB Baltic Amadeus Harmoningi IT sprendimai
 Ričardas Šliapikas 
 UAB “Baltic Amadeus” 
 įkurta 1988 m., 
 ~100 darbuotojų. 
 Pagrindinės veiklos kryptys: 
 programavimo ir testavimo paslaugos, 
 bankiniai, web, mobilūs ir kiti specializuoti IT sprendimai. 
 Įmonė veikia pagal Agile principus 
http://www.ba.lt http://www.enjoyit.lt/ 
©© UUAABB BBaallttiicc AAmmaaddeeuuss 
2 
KAS? IŠ KUR?
©© UUAABB BBaallttiicc AAmmaaddeeuuss 
KODĖL AUTOMATIZUOTI? 
 Tikslu 
3 
 Įdomu 
 Motyvuoja 
 Lankstu
©© UUAABB BBaallttiicc AAmmaaddeeuuss 
APIE KĄ? 
 Apie projektą 
 Mobilaus automatizavimo įrankiai: Appium 
 Kaip neautomatizuoti testų? 
 Kaip automatizuoti testus? 
 „Tips and tricks“ bei rezultatai 
4
©© UUAABB BBaallttiicc AAmmaaddeeuuss 
PROJEKTAS „MOBILI PINIGINĖ“ 
Iššūkiai 
 Aktyvus vystymas 
 Daug regresinio testavimo 
 Žemas vartotojų 
pasitenkinimas 
 Negalima naudoti emuliatorių 
Sprendimas? 
 Regresinio testavimo 
automatizavimas 
5
MOBILUS AUTOMATIZAVIMAS 
UIAUTOMATOR INSTRUMENTS 
UIAUTOMATION 
©© UUAABB BBaallttiicc AAmmaaddeeuuss 6
©© UUAABB BBaallttiicc AAmmaaddeeuuss 
WEBDRIVER 
WebDriver standartas aprašo: 
 Sesijos sukūrimą 
 HTML elementų paiešką 
 Naršyklės langų valdymą 
 Galimas klaidas 
 Ir t.t. 
WebDriver klientai 
egzistuoja: 
 Java, C#, Python, 
Ruby, PHP, Perl, 
JavaScript 
 Selenese 
7
©© UUAABB BBaallttiicc AAmmaaddeeuuss 
WEBDRIVER 
„WebDriver API, a platform 
and language-neutral 
interface and associated wire 
protocol that allows 
programs or scripts to 
introspect into, and control 
the behaviour of, a web 
browser.“ 
 Plačiai naudojamas 
naršyklių 
automatizavimui 
 Turėtų tapti W3C 
standartu 
*Šaltinis: https://dvcs.w3.org/hg/webdriver/raw-file/ 
default/webdriver-spec.html 
8
©© UUAABB BBaallttiicc AAmmaaddeeuuss 
APPIUM – KAS TAI? 
9 
WebDriver UIAutomator Instruments
©© UUAABB BBaallttiicc AAmmaaddeeuuss 
APPIUM ARCHITEKTŪRA 
WebDriver 
script 
WebDriver 
controller: 
Instruments / 
UIAutomator 
Command 
client: 
Instruments / 
UIAutomator 
HTTP: 
JSON Wire 
10
©© UUAABB BBaallttiicc AAmmaaddeeuuss 
UŽ IR PRIEŠ 
Appium privalumai 
 Nereikia agentų 
 Vienodi* testai Android ir 
iOS 
 Standartizuotas WebDriver 
interfeisas 
 Atviro kodo ir nemokama 
Appium trūkumai 
 Atviro kodo ir nemokama 
 Nepalaiko WP 
 Prastas Xpath palaikymas 
11
©© UUAABB BBaallttiicc AAmmaaddeeuuss 
KAIP NEAUTOMATIZUOTI? 
Testas = skriptas? 
Ne! 
Problemos 
 Daug kodo 
dublikavimo 
 Reikalauja daug 
laiko 
palaikyti/atnaujinti 
12
Testuojamo 
objekto 
valdymas 
©© UUAABB BBaallttiicc AAmmaaddeeuuss 
OBJEKTINIS POŽIŪRIS Į TESTĄ 
Testo logika 
13
©© UUAABB BBaallttiicc AAmmaaddeeuuss 
GOOGLE PAGE PATTERN 
Page objektas 
 Užtikrina, kad reikiamas 
puslapis pilnai 
užkrautas 
 Aprašo galimą sąveiką 
su testuojamu objektu 
14
©© UUAABB BBaallttiicc AAmmaaddeeuuss 
GOOGLE PAGE PATTERN 
Test objektas 
 Paruošia sąlygas testo 
vykdymui 
 Aprašo testo logiką 
(žingsnius) 
 Išvalo duomenis po 
testo 
15
KAIP VEIKIA TESTAS? 
Page 
Main 
Test 
Page 
Darbuotojo 
Atlyginimas 
©© UUAABB BBaallttiicc AAmmaaddeeuuss 16
©© UUAABB BBaallttiicc AAmmaaddeeuuss 
LOGIKOS/INTERFEISO 
ATSKYRIMO PRIVALUMAI 
 Mažesni palaikymo kaštai 
 Paprasčiau rašyti testus 
 Komponentų pernaudojimas 
17
©© UUAABB BBaallttiicc AAmmaaddeeuuss 
AUTOMATINIŲ TESTŲ 
ARCHITEKTŪRA 
 Test klasės 
18 
Page klasės Utils 
Assert 
Mobile 
Test 
Table 
etc.
©© UUAABB BBaallttiicc AAmmaaddeeuuss 
TIPS AND TRICKS 
 Teksto įvedimas 
 Paspausti, Įvesti, Paslėpti 
19
©© UUAABB BBaallttiicc AAmmaaddeeuuss 
TIPS AND TRICKS 
 Testų sąrašas 
 Custom doclet 
20
©© UUAABB BBaallttiicc AAmmaaddeeuuss 
TIPS AND TRICKS 
 Kreipimasis į WebService 
21 
Per komandinę eilutę įvykdant 
skriptą
©© UUAABB BBaallttiicc AAmmaaddeeuuss 
TESTNG 
 Testų ataskaitos 
 Galima paleisti prieš 
tai nepavykusius 
testus 
 Testų priklausomybės 
 Testų rinkiniai xml 
failuose 
 http://testng.org/ 
22
©© UUAABB BBaallttiicc AAmmaaddeeuuss 
TESTNG ATASKAITA 
23
©© UUAABB BBaallttiicc AAmmaaddeeuuss 
REZULTATAS 
Kas atlikta? 
 Automatizuoti testai Android 
 Testų rinkiniai.xml failuose 
 HTML ataskaita su ekrano vaizdais 
 Automatiškai generuojamas testų sąrašas 
 Testai gali nesudėtingai kreiptis į WS 
 Testams paleisti nereikia infrastruktūros 
24
©© UUAABB BBaallttiicc AAmmaaddeeuuss 
REZULTATAS 
25 
Kas iš to? 
 Greičiau 
 Lanksčiau 
 Labiau užtikrintai
©© UUAABB BBaallttiicc AAmmaaddeeuuss 
TOLIAU? 
Kas laukia? 
 Testų stabilizavimas 
 Testų pritaikymas iOS 
 Tobulinimas 
26
©© UUAABB BBaallttiicc AAmmaaddeeuuss 
KĄ DAR REIKIA ŽINOTI? 
 Automatizavimas nebūtinai visada 
pasiteisina 
 Automatizavimas užtrunka 
 Automatinius testus dažnai reikia 
stabilizuoti, o po to palaikyti 
27
©© UUAABB BBaallttiicc AAmmaaddeeuuss 
KLAUSIMAI? 
28

More Related Content

Ričardas Šliapikas Mobile testing

  • 1. Mobilus testavimas? Automatizuokim!* *Gyvenimas per trumpas rankiniam testavimui © UAB Baltic Amadeus Harmoningi IT sprendimai
  • 2.  Ričardas Šliapikas  UAB “Baltic Amadeus”  įkurta 1988 m.,  ~100 darbuotojų.  Pagrindinės veiklos kryptys:  programavimo ir testavimo paslaugos,  bankiniai, web, mobilūs ir kiti specializuoti IT sprendimai.  Įmonė veikia pagal Agile principus http://www.ba.lt http://www.enjoyit.lt/ ©© UUAABB BBaallttiicc AAmmaaddeeuuss 2 KAS? IŠ KUR?
  • 3. ©© UUAABB BBaallttiicc AAmmaaddeeuuss KODĖL AUTOMATIZUOTI?  Tikslu 3  Įdomu  Motyvuoja  Lankstu
  • 4. ©© UUAABB BBaallttiicc AAmmaaddeeuuss APIE KĄ?  Apie projektą  Mobilaus automatizavimo įrankiai: Appium  Kaip neautomatizuoti testų?  Kaip automatizuoti testus?  „Tips and tricks“ bei rezultatai 4
  • 5. ©© UUAABB BBaallttiicc AAmmaaddeeuuss PROJEKTAS „MOBILI PINIGINĖ“ Iššūkiai  Aktyvus vystymas  Daug regresinio testavimo  Žemas vartotojų pasitenkinimas  Negalima naudoti emuliatorių Sprendimas?  Regresinio testavimo automatizavimas 5
  • 6. MOBILUS AUTOMATIZAVIMAS UIAUTOMATOR INSTRUMENTS UIAUTOMATION ©© UUAABB BBaallttiicc AAmmaaddeeuuss 6
  • 7. ©© UUAABB BBaallttiicc AAmmaaddeeuuss WEBDRIVER WebDriver standartas aprašo:  Sesijos sukūrimą  HTML elementų paiešką  Naršyklės langų valdymą  Galimas klaidas  Ir t.t. WebDriver klientai egzistuoja:  Java, C#, Python, Ruby, PHP, Perl, JavaScript  Selenese 7
  • 8. ©© UUAABB BBaallttiicc AAmmaaddeeuuss WEBDRIVER „WebDriver API, a platform and language-neutral interface and associated wire protocol that allows programs or scripts to introspect into, and control the behaviour of, a web browser.“  Plačiai naudojamas naršyklių automatizavimui  Turėtų tapti W3C standartu *Šaltinis: https://dvcs.w3.org/hg/webdriver/raw-file/ default/webdriver-spec.html 8
  • 9. ©© UUAABB BBaallttiicc AAmmaaddeeuuss APPIUM – KAS TAI? 9 WebDriver UIAutomator Instruments
  • 10. ©© UUAABB BBaallttiicc AAmmaaddeeuuss APPIUM ARCHITEKTŪRA WebDriver script WebDriver controller: Instruments / UIAutomator Command client: Instruments / UIAutomator HTTP: JSON Wire 10
  • 11. ©© UUAABB BBaallttiicc AAmmaaddeeuuss UŽ IR PRIEŠ Appium privalumai  Nereikia agentų  Vienodi* testai Android ir iOS  Standartizuotas WebDriver interfeisas  Atviro kodo ir nemokama Appium trūkumai  Atviro kodo ir nemokama  Nepalaiko WP  Prastas Xpath palaikymas 11
  • 12. ©© UUAABB BBaallttiicc AAmmaaddeeuuss KAIP NEAUTOMATIZUOTI? Testas = skriptas? Ne! Problemos  Daug kodo dublikavimo  Reikalauja daug laiko palaikyti/atnaujinti 12
  • 13. Testuojamo objekto valdymas ©© UUAABB BBaallttiicc AAmmaaddeeuuss OBJEKTINIS POŽIŪRIS Į TESTĄ Testo logika 13
  • 14. ©© UUAABB BBaallttiicc AAmmaaddeeuuss GOOGLE PAGE PATTERN Page objektas  Užtikrina, kad reikiamas puslapis pilnai užkrautas  Aprašo galimą sąveiką su testuojamu objektu 14
  • 15. ©© UUAABB BBaallttiicc AAmmaaddeeuuss GOOGLE PAGE PATTERN Test objektas  Paruošia sąlygas testo vykdymui  Aprašo testo logiką (žingsnius)  Išvalo duomenis po testo 15
  • 16. KAIP VEIKIA TESTAS? Page Main Test Page Darbuotojo Atlyginimas ©© UUAABB BBaallttiicc AAmmaaddeeuuss 16
  • 17. ©© UUAABB BBaallttiicc AAmmaaddeeuuss LOGIKOS/INTERFEISO ATSKYRIMO PRIVALUMAI  Mažesni palaikymo kaštai  Paprasčiau rašyti testus  Komponentų pernaudojimas 17
  • 18. ©© UUAABB BBaallttiicc AAmmaaddeeuuss AUTOMATINIŲ TESTŲ ARCHITEKTŪRA  Test klasės 18 Page klasės Utils Assert Mobile Test Table etc.
  • 19. ©© UUAABB BBaallttiicc AAmmaaddeeuuss TIPS AND TRICKS  Teksto įvedimas  Paspausti, Įvesti, Paslėpti 19
  • 20. ©© UUAABB BBaallttiicc AAmmaaddeeuuss TIPS AND TRICKS  Testų sąrašas  Custom doclet 20
  • 21. ©© UUAABB BBaallttiicc AAmmaaddeeuuss TIPS AND TRICKS  Kreipimasis į WebService 21 Per komandinę eilutę įvykdant skriptą
  • 22. ©© UUAABB BBaallttiicc AAmmaaddeeuuss TESTNG  Testų ataskaitos  Galima paleisti prieš tai nepavykusius testus  Testų priklausomybės  Testų rinkiniai xml failuose  http://testng.org/ 22
  • 23. ©© UUAABB BBaallttiicc AAmmaaddeeuuss TESTNG ATASKAITA 23
  • 24. ©© UUAABB BBaallttiicc AAmmaaddeeuuss REZULTATAS Kas atlikta?  Automatizuoti testai Android  Testų rinkiniai.xml failuose  HTML ataskaita su ekrano vaizdais  Automatiškai generuojamas testų sąrašas  Testai gali nesudėtingai kreiptis į WS  Testams paleisti nereikia infrastruktūros 24
  • 25. ©© UUAABB BBaallttiicc AAmmaaddeeuuss REZULTATAS 25 Kas iš to?  Greičiau  Lanksčiau  Labiau užtikrintai
  • 26. ©© UUAABB BBaallttiicc AAmmaaddeeuuss TOLIAU? Kas laukia?  Testų stabilizavimas  Testų pritaikymas iOS  Tobulinimas 26
  • 27. ©© UUAABB BBaallttiicc AAmmaaddeeuuss KĄ DAR REIKIA ŽINOTI?  Automatizavimas nebūtinai visada pasiteisina  Automatizavimas užtrunka  Automatinius testus dažnai reikia stabilizuoti, o po to palaikyti 27
  • 28. ©© UUAABB BBaallttiicc AAmmaaddeeuuss KLAUSIMAI? 28

Editor's Notes

  • #6: Live demo nebus