q-factory-logo

Laatua mobiilitestiautomaatiolla


1. Muistatko aikaa ennen kännyköitä?

Meistä osa toki muistaa ajan ennen mobiililaitteita, mutta emme ehkä osaa kuvitella, että eläisimme samanlaista arkea kuin ennen kännyköiden ja tablettien yleistymistä. Varsinkin kännykästä on tullut niin oleellinen osa nykyihmisen elämää, että pidämme sitä käden ulottuvilla aamusta iltaan. Osalla kännykän käyttö voi lipsahtaa liiallisuuksinkin. Joka tapauksessa mobiililaitteiden merkitys nykymaailmassa on valtava niin henkisesti kuin taloudellisestikin.

Jos ajattelemme mobiililaitteiden roolia tarkemmin, niin huomamme, että laitteet itsessään eivät ole oleellisia. Tärkeämpiä ovat mobiilisovellukset ja mobiiliselaimilla saavutettavat internetsivustot. Tästä johtuen sovellusten ja latautuvien sivustojen laatuun kannattaa kiinnittää huomiota. Yksi parhaista laadunvarmistuksen keinoista on mobiilitestiautomaatio.

2. Laadun tärkeys

Laatu on äärimmäisen tärkeä kilpailuetu mobiilisovelluksissa. Kokemus on osoittanut, että käyttäjät hylkäävät hyvin nopeasti sovelluksen, joka toimii huonosti tai hitaasti.
Varsinkin kuluttajapuolella on helppoa äänestää jaloillaan (tai oikeastaan muutamalla sormen hipaisulla), sillä sekä Androidin GooglePlaystä että iOS:n AppStoresta löytyy lukematon määrä vaihtoehtoisia sovelluksia huonon tilalle.

Mobiiliselaimella avattavien internetsivustojenkin tapauksessa laatu on tärkeää. Vaihtoehtoisen sivuston löytäminen ei ole kuin yhden hakukoneella suoritetun haun päässä.

3. Miksi mobiilitestiautomaatio?

Sovelluksen tai verkossa olevan sivun laatuun vaikuttavat monet tekijät. Testausta voi toki tehdä myös manuaalisesti, mutta mobiilitestausautomaation käyttöä puoltavat seuraavat syyt:

I) Kustannustehokkuus

On selvää, että testitapausten tekemiseen kuluu tietty aika. Hyödyt tulevat kuitenkin ilmi paremmin, kun testitapausten määrä kasvaa ja kun ajetaan useampia regressiokierroksia. Automatisoituja testitapauksia ei tarvitse testata käsin.

II) Kattavuus

Kattavuus on mobiilitestauksen suurimpia haasteita. Android- ja iOS-laitteita ja käyttöjärjestelmäversiota on lukuisia. Tähän soppaan tuovat oman lisänsä laitevalmistajien omat käyttöliittymät.

Testiautomaatiolla haaste voidaan ratkaista ajamalla testejä rinnakkain. Oikeaa rautaakaan ei ole välttämättä pakko käyttää, vaan testit voidaan ajaa Android Emulaattoria ja iOS Simulaattoria vasten. Tämä tapa toimii erityisesti vähemmän tärkeiden käyttöjärjestelmien ja laiteversioiden tapauksissa.

III) Testiautomaatiolla ongelmaan päästään heti kiinni

Mobiilitestiautomaatiojärjestelmä voi aloittaa testaamisen heti kun lähdekoodiin on tullut muutoksia. Tällöin mahdollinen ongelma tulee päivänvaloon välittömästi muutoksen luonnin jälkeen.

Ongelmiin on hyvä tarttua välittömästi, sillä virheiden korjaaminen ja uudelleentestaus tulevat sitä kalliimmiksi, mitä myöhemmin ne paljastuvat. Yhtenä testauksen peruspilareista tämä on hyvä pitää mielessä.

4. Mobiilitestiautomaatioratkaisut

Q-Factory tarjoaa kahta erilaista mallia mobiilitestiautomaatiota varten, ja niillä molemmilla on omat vahvuutensa. Molemmat ratkaisut voidaan liittää osaksi CI/DevOps järjestelmää. Ne voidaan tarpeen mukaan myös virtualisoida, tai testit voidaan suorittaa pilvessä sijaitsevia laitteita vasten.

Vaihtoehto 1 kuvaa Robot Frameworkiä ja Appiumia.

  • Robot Frameworkin avainsanaperusteiset testiskriptit (keyword-driven) ovat helposti luettavia ja täten helppoja luoda ja ylläpitää. Robotin tukena voidaan tarvittaessa käyttää todellista ohjelmointikieltä kuten Javaa tai Pythonia.
  • Ratkaisu on paljon käytetty ja tuettu vaihtoehto.

  • Robot Frameworkin ja Appiumin yhdistelmällä voidaan testata sekä Androidia ja iOS:ää. Tästä johtuen samoja testiskriptejä voidaan normaalisti käyttää pienillä muutoksilla applikaatioiden Android- ja iOS-versioiden testauksessa.

  • Testiraportit ovat hyvin selkeitä.

  • Testien luomisessa ja ajossa ei tarvita pääsyä lähdekoodiin.

Vaihtoehto 2 on niin sanottujen natiivien testiautomaatioratkaisujen käyttö eli Android-puolella Android Espresso ja iOS:ssä XCUITest.

  • Testit luodaan Googlen (Android Studio) ja Applen (Xcode) kehitysympäristöissä kyseisten yhtiöiden virallisesti tukemilla testausjärjestelmillä.

  • Näin ollen testausympäristön pystyttämiseksi ei tarvitse asentaa ylimääräisiä ohjelmia, mikä nopeuttaa käyttöönottoa verrattuna Robot Framework + Appium -ratkaisuun.

  • Testien ohjelmointikielinä käytetään kahta kieltä, joiden on oltava identtiset applikaation toteutuksessa käytettyjen kielten kanssa. Ohjelmointikielet ovat joko Java tai Android Espresson kohdalla myös Kotlin. XCUITestin kielenä käytetään Swiftiä.

  • Espresso- ja XCUITest-testien suorittaminen on nopeampaa verrattuna Robot Frameworkin ja Appiumin yhdistelmään, koska laitteiden rajapintoihin päästään suoraan applikaatioiden kehitysympäristöstä. Mobiili Chrome ja mobiili Chrome Custom Tabien testauksessa Espresso tosin tarvitsee tuekseen esimerkiksi UI Automatoria, joka on hieman Espressoa hitaampi.

- Sami Virtala & Riku Taivalantti, 30.11.2018

Helsinki

Tampere

Turku

Oulu

;