28
© UAB Baltic Amadeus © UAB Baltic Amadeus Harmoningi IT sprendimai Mobilus testavimas? Automatizuokim!* *Gyvenimas per trumpas rankiniam testavimui

Ričardas Šliapikas Mobile testing

Embed Size (px)

DESCRIPTION

Test automation is one of general principles of Agile and mobile app automation was relatively poorly covered topic. However, now there is an open source Appium tool that can cover mobile automation using the good old Selenium framework. I will explore the possibilities of mobile application automation using Appium and will cover a specific use case where it has been applied.

Citation preview

Page 1: Ričardas Šliapikas Mobile testing

© UAB Baltic Amadeus© UAB Baltic Amadeus Harmoningi IT sprendimai

Mobilus testavimas? Automatizuokim!*

*Gyvenimas per trumpas rankiniam testavimui

Page 2: Ričardas Šliapikas Mobile testing

© UAB Baltic Amadeus© UAB Baltic Amadeus 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/

KAS? IŠ KUR?

Page 3: Ričardas Šliapikas Mobile testing

© UAB Baltic Amadeus© UAB Baltic Amadeus 3

KODĖL AUTOMATIZUOTI?

Tikslu

Įdomu Motyvuoja

Lankstu

Page 4: Ričardas Šliapikas Mobile testing

© UAB Baltic Amadeus© UAB Baltic Amadeus 4

APIE KĄ?

Apie projektą Mobilaus automatizavimo įrankiai: Appium Kaip neautomatizuoti testų? Kaip automatizuoti testus? „Tips and tricks“ bei rezultatai

Page 5: Ričardas Šliapikas Mobile testing

© UAB Baltic Amadeus© UAB Baltic Amadeus 5

PROJEKTAS „MOBILI PINIGINĖ“

Iššūkiai Aktyvus vystymas Daug regresinio testavimo Žemas vartotojų

pasitenkinimas Negalima naudoti emuliatorių

Sprendimas? Regresinio testavimo

automatizavimas

Page 6: Ričardas Šliapikas Mobile testing

© UAB Baltic Amadeus© UAB Baltic Amadeus 6

MOBILUS AUTOMATIZAVIMAS

UIAUTOMATOR INSTRUMENTS

UIAUTOMATION

Page 7: Ričardas Šliapikas Mobile testing

© UAB Baltic Amadeus© UAB Baltic Amadeus 7

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

Page 8: Ričardas Šliapikas Mobile testing

© UAB Baltic Amadeus© UAB Baltic Amadeus 8

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

Page 9: Ričardas Šliapikas Mobile testing

© UAB Baltic Amadeus© UAB Baltic Amadeus 9

APPIUM – KAS TAI?

UIAutomator InstrumentsWebDriver

Page 10: Ričardas Šliapikas Mobile testing

© UAB Baltic Amadeus© UAB Baltic Amadeus 10

APPIUM ARCHITEKTŪRA

WebDriver script

WebDriver controller:

Instruments / UIAutomator

Command client:

Instruments / UIAutomator

HTTP:JSON Wire

Page 11: Ričardas Šliapikas Mobile testing

© UAB Baltic Amadeus© UAB Baltic Amadeus 11

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

Page 12: Ričardas Šliapikas Mobile testing

© UAB Baltic Amadeus© UAB Baltic Amadeus 12

KAIP NEAUTOMATIZUOTI?

Testas = skriptas? Ne!

Problemos Daug kodo

dublikavimo

Reikalauja daug laiko palaikyti/atnaujinti

Page 13: Ričardas Šliapikas Mobile testing

© UAB Baltic Amadeus© UAB Baltic Amadeus 13

OBJEKTINIS POŽIŪRIS Į TESTĄ

Testo logika

Testuojamo objekto

valdymas

Page 14: Ričardas Šliapikas Mobile testing

© UAB Baltic Amadeus© UAB Baltic Amadeus 14

GOOGLE PAGE PATTERN

Page objektas Užtikrina, kad reikiamas

puslapis pilnai užkrautas

Aprašo galimą sąveiką su testuojamu objektu

Page 15: Ričardas Šliapikas Mobile testing

© UAB Baltic Amadeus© UAB Baltic Amadeus 15

GOOGLE PAGE PATTERN

Test objektas Paruošia sąlygas testo

vykdymui

Aprašo testo logiką (žingsnius)

Išvalo duomenis po testo

Page 16: Ričardas Šliapikas Mobile testing

© UAB Baltic Amadeus© UAB Baltic Amadeus 16

KAIP VEIKIA TESTAS?

PageMain

TestPage

DarbuotojoAtlyginimas

Page 17: Ričardas Šliapikas Mobile testing

© UAB Baltic Amadeus© UAB Baltic Amadeus 17

LOGIKOS/INTERFEISO ATSKYRIMO PRIVALUMAI

Mažesni palaikymo kaštai

Paprasčiau rašyti testus

Komponentų pernaudojimas

Page 18: Ričardas Šliapikas Mobile testing

© UAB Baltic Amadeus© UAB Baltic Amadeus 18

AUTOMATINIŲ TESTŲ ARCHITEKTŪRA

Test klasėsPage klasės Utils Assert Mobile Test Table etc.

Page 19: Ričardas Šliapikas Mobile testing

© UAB Baltic Amadeus© UAB Baltic Amadeus 19

TIPS AND TRICKS

Teksto įvedimas Paspausti, Įvesti, Paslėpti

Page 20: Ričardas Šliapikas Mobile testing

© UAB Baltic Amadeus© UAB Baltic Amadeus 20

TIPS AND TRICKS

Testų sąrašas Custom doclet

Page 21: Ričardas Šliapikas Mobile testing

© UAB Baltic Amadeus© UAB Baltic Amadeus 21

TIPS AND TRICKS

Kreipimasis į WebService

Per komandinę eilutę įvykdant

skriptą

Page 22: Ričardas Šliapikas Mobile testing

© UAB Baltic Amadeus© UAB Baltic Amadeus 22

TESTNG

Testų ataskaitos

Galima paleisti prieš tai nepavykusius testus

Testų priklausomybės

Testų rinkiniai xml failuose

http://testng.org/

Page 23: Ričardas Šliapikas Mobile testing

© UAB Baltic Amadeus© UAB Baltic Amadeus 23

TESTNG ATASKAITA

Page 24: Ričardas Šliapikas Mobile testing

© UAB Baltic Amadeus© UAB Baltic Amadeus 24

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

Page 25: Ričardas Šliapikas Mobile testing

© UAB Baltic Amadeus© UAB Baltic Amadeus 25

REZULTATAS

Kas iš to?

Greičiau

Lanksčiau

Labiau užtikrintai

Page 26: Ričardas Šliapikas Mobile testing

© UAB Baltic Amadeus© UAB Baltic Amadeus 26

TOLIAU?

Kas laukia? Testų stabilizavimas Testų pritaikymas iOS Tobulinimas

Page 27: Ričardas Šliapikas Mobile testing

© UAB Baltic Amadeus© UAB Baltic Amadeus 27

KĄ DAR REIKIA ŽINOTI?

Automatizavimas nebūtinai visada pasiteisina

Automatizavimas užtrunka

Automatinius testus dažnai reikia stabilizuoti, o po to palaikyti

Page 28: Ričardas Šliapikas Mobile testing

© UAB Baltic Amadeus© UAB Baltic Amadeus 28

KLAUSIMAI?