Testiautomaation kehittäjä innovoi helpompia menetelmiä

Olin mukana regressiotestausprojektissa testiautomaation kehittäjän roolissa, missä iso julkishallinnon asiakas halusi automatisoida omien yritysasiakkaidensa tietojärjestelmien kanssa käytettävää sähköistä asiointia.

Osana sähköistä asiointia, yritysasiakkaiden tietojärjestelmät lähettävät viranomaistoiminnan vaatimia ilmoituksia XML-muotoisina sanomina asiakkaalle. Ennen kuin yritysasiakas kuitenkaan saa oikeuksia sähköiseen asiointiin, heidän pitää tehdä onnistunut viestitesti asiakastestausympäristössä.

Ennen Qentinelin mukaantuloa asiakkaana olevan julkishallinnon organisaation vapaana olevan virkailijan piti ilmoittaa sähköisen anomuksen lähettäneelle yritysasiakkaalle, milloin hän olisi käytettävissä viestitestausta varten ja tarkistaa lähetetyn sanoman oikeellisuus.

Qentinelin toimittamassa itsenäisessä asiakastestausympäristössä virkailijan rutiinityöt on automatisoitu niin, että yritysasiakas voi tehdä ne itse.

Käyttäjälle helppo testiautomaatio syntyy kokeilemalla

Automatisoinnin haasteena oli, miten tulkita yritysasiakkaiden lähettämiä ilmoitussanomia, jotka näkyvät vain asiakkaamme omassa käyttöliittymässä verkkolomakemuodossa – melkein kuin näytönkaappauksena.

Ensimmäinen kokeilu, lomakkeen painikkeiden ja tekstintunnistus bitmappien avulla, ei toiminut, koska menetelmä ei skaalaudu riittävästi. Seuraavaksi kehitimme tekstintunnistukseen perustuvan menetelmän, jossa tunnistetaan tietyn painikkeen teksti (esim. OK-painike) ja käsketään järjestelmää klikkaamaan sitä. Tekstintunnistuksen etuna oli testien nopeampi kehitys ja pienempi ylläpito. Koko testi oli yhdessä tiedostossa ja viranomaisen virkailija näki heti mitä testissä tapahtuu.

Tuunaa teknologiasi – eri tarkoitukseen suunniteltujen teknologioiden kokeilua

Oleelliset tiedot yritysasiakkaasta näkyivät valmiiksi lomakkeen tietyissä tietokentissä, eikä meillä olisi ollut mahdollista rakentaa omaa järjestelmää lukemaan näitä tietoja suoraan XML-sanomista.

Kokeilimme ensin voisimmeko käyttää hyväksi kuvantunnistusta lukeaksemme ja tarkistaaksemme, mitä tietoja yritysasiakkaat olivat lähettäneet XML-sanomissaan. Tämä oli vaikeaa, koska ohjelma oli vanhanaikaisen näköinen Java Swing -sovellus ja kuvantunnistusmenetelmällä klikattavista elementeistä olisi pitänyt ottaa omat bitmap-kuvat. Tällöin bitmap-kuvien määrä olisi kasvanut liian isoksi ja järjestelmän ylläpidosta olisi tullut liian hankalaa.

Lopulta kehitimme tekstintunnistukseen perustuvan menetelmän. Siinä automaatio tunnistaa tarvittavat painikkeet, jonka jälkeen järjestelmä osaa klikata oikeaa painiketta.

Tekstintunnistusmenetelmä kehitettiin tutkimalla yleisiä tekstintunnistuskirjastoja, jotka eivät kuitenkaan olleet tarpeeksi tarkkoja. Java Swing käyttää aliasoitua tekstiä (tekstiä, jossa kirjainten vinoreunaiset sivut ovat rosoreunaisia), jonka tunnistaminen onnistui erittäin hyvin.

Kuvankäsittelykirjastona käytimme OpenCV:tä, joka käyttää numeerisen laskennan kirjastoa Numpyä. Tämän lisäksi käytimme tietysti Robot Frameworkiä, jolla testien luomisesta yritettiin tehdä mahdollisimman helppoa. Testien kirjoittamiseen ja ylläpitämiseen käytimme itsekehitettyä QVision-konenäkökirjastoa.

Miksi projekti onnistui?

Onnistuimme, koska uskalsimme kokeilla ideaa, joka voisi toimia. Idea ja ratkaisu tuli meidän ammattitaitoisilta testiautomaatio-osaajilta. Osasimme valita oikeat avainsanat ja oikean tekniikan, jotta järjestelmä oli riittävän nopea ja antoi asiakkaallemme tarvittavan hyödyn.

Pekka Kiviniemi, testiautomaation kehittäjä

 

 

Katso avoimet työpaikkamme!