Blogi: Testaajan joulu on joka päivä!

06. kesä 2017 Blogi

Projektitalona teemme valtavan määrän ainutlaatuisia asiakkaidemme liiketoimintaa hyödyttäviä järjestelmiä. Joka päivä JIRA-pöydälleni tupsahtaa jos jonkinlaista testattavaa, niin loppukäyttäjän näkökulmasta katsottuna kuin tekniikankin osalta. Tuntuu siltä, että meillä testaajilla on joulu joka päivä. Aina tulee uusi lahja ja siinä sivussa usein myös yllätys — eli ei oikein mitään tietoa, mikä homma tällä kertaa on kyseessä. Tämä pitää vauhdissa mukana ja mielen virkeänä. Kerronpa erään tosielämän esimerkin testaajan arjesta.

Seleniumiin perustuvaan selainpohjaiseen testiautomaatioon tuli karttaa käyttävillä sovelluksilla uusia haasteita, kun pöydälleni saapui ensimmäinen OpenLayers 3 –kirjastoa hyödyntävä karttasovellus. OpenLayers 3 –versiosta alkaen vanha uskollinen Selenium ei enää pystynytkään lukemaan HTML-koodista kartalle piirrettyjä aineistoja. Kaikki olikin raukkamaisesti piilotettu yhden canvas-elementin taakse, jotta testaaja saisi etsiä uusia tapoja lukea karttasovelluksessa piirrettäviä aineistoja. Ei muuta kuin tuumasta toimeen ja selvittelyt käyntiin, tällaisethan eivät meitä pysäytä!

Kuvatunnistuksesta apua testaukseen?

Pienen etsinnän jälkeen ainoana vaihtoehtona tuntui olevan kuvatunnistuksen avulla tapahtuva testaus. Tämä siis kartan osalta, sillä kaikki muut karttatyökalut löytyvät vieläkin HTML-koodista, jolloin Selenium hoitaa näppärästi asian, kuten vanhaan hyvään aikaan. Kuvatunnistukseen oli Robot Framework –testiautomaatio-ohjelmassa olemassa useitakin kirjastoja.

Ensimmäisenä vaihtoehtona kokeilin ImageHorizonLibrarya, joka käyttää kuvavertailuun pythonin omia kirjastoja. Päädyin kuitenkin käyttämään robotframework-sikuliLibrarya, joka käyttää sikulix-javakirjastoa kuvatunnistukseen. Suurimpana syynä oli kirjastosta valmiiksi löytyvät keywordit, jotka kattoivat omaan testaukseeni kaiken tarvittavan.

Kyllä kaikkeen keinot löytyy. Laatu on meille sydämen asia ja toteutuksemme joutuvat melkoiseen testipenkkiin ennen pääsemistä asiakkaan käyttöön.“ 

Kuvavertailun käyttäminen testissä on hyvinkin suoraviivaista. Ensin otetaan referenssikuva, jota sikuli sitten hakee ruudulta ja suorittaa sille halutut toimenpiteet, kuten klikkauksen tai varmistaa sen löytymisen sovelluksesta. Kuvatunnistusta käyttävissä testeissä suurimpana haasteena on se, että haettavan kuvan täytyy tietysti näkyä ruudulla, jotta kuvantunnistus voi sen löytää.

Omalta koneelta testin pystyy vielä helposti ajamaan, mutta ongelma saattaa olla astetta haastavampi, jos käytössä on jatkuvan integroinnin ympäristö. Mutta kyllä kaikkeen keinot löytyy. Laatu on meille sydämen asia ja toteutuksemme joutuvat melkoiseen testipenkkiin ennen pääsemistä asiakkaan käyttöön.

Antti Salo

Kirjoittaja työskentelee ohjelmistotestaajana Dimenteqillä Salossa. Vapaa-ajalla innostuu musiikista, äänentoistosta ja sählystä. 

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedIn