Testiautomaatiota voidaan pitää välttämättömänä osana modernia, laadukasta ohjelmistokehitystä, jossa tavoitellaan eri vaiheiden saumatonta yhteistyötä, ohjelmiston jatkuvaa integrointia ja lyhyitä julkaisuvälejä.
Testien automatisoinnin suunnittelu kannattaakin aloittaa mahdollisimman varhain. Muuten on riskinä, että sprinttien päätteeksi tehtävä regressiotestaus osoittautuu lähes samankaltaisena toistuvaksi ja jatkuvasti enemmän ja enemmän aikaa vieväksi toimenpiteeksi.
Miten varmistat, että testejä voidaan ajaa oman organisaatiosi ulkopuolella?
Joskus testiautomaatio on osa asiakastoimitusta. Käytännössä tämä merkitsee sitä, että testejä voivat hyödyntää myöhemmin asiakasorganisaation testaajat tai jopa liiketoiminnan edustajat.
Testit kannattaakin rakentaa perustuen siihen ajatukseen, että myöhemmin jonkun toisen henkilön toisesta organisaatiosta olisi kyettävä ajamaan testejä omassa ympäristössään. Tätä mielenkiintoista ajatusta kohti kannattaakin pyrkiä seuraavien keinojen avulla:,
Käytä versionhallintaa
Testattava ohjelmisto ja testit muuttuvat ajan saatossa, joten on syytä varmistua, että myös testiautomaation testit ovat osa versionhallintaa. Tähän tarkoitukseen voit hyödyntää esim. Bitbucket -työkalua.
Varmista yhteensopivuus
Suunnittele testit siten, että ne ovat mahdollisimman helposti ajettavissa toisissa ympäristöissä ja ne voidaan konfiguroida suorittamisen aikana. Ympäristösidonnaiset muuttujat on syytä ylläpitää erillisessä tiedostossa sen sijaan, että ne ovat mukana testeissä. Tällaisia tietoja ovat esimerkiksi ympäristön osoitteet, käyttäjänimet, testidata ja selain.
Jos testidata on keskeisessä osassa toimituksen testiautomaatiota, pyri rakentamaan sen generointi ajonaikaiseksi. Kannattaa katsoa esimerkiksi, mitä Pythonin Faker -kirjasto tarjoaa tähän ratkaisuksi.
Minimoi testien väliset riippuvuudet
Vältä testien välisiä riippuvuuksia, sillä testejä pitää voida ajaa haluttu määrä ja halutussa järjestyksessä. Toisin sanoen älä määritä tiukasti testien suoritusjärjestystä ja ajettavien testien määrää, koska et voi tietää, mitä osa-aluetta testien tuleva käyttäjä haluaa testien avulla varmistaa. Käytä riippuvuuksien sijaan esiehtoja, jotka määrittävät testien suorittamisen ehdot.
Merkitse ja lokita testit
Tämä keino on yksinkertainen mutta toimiva. Merkitse eli ”tägää” ne testit, jotka kannattaa ajaa seuraavilla testitasoilla ja ympäristöissä, jotta testien seuraava suorittaja pääsee etenemään nopeammin.
Lokittamisen (”logging”) avulla saat nopeamman analyysin ajon aikana epäonnistuneista testeistä, pystyt parantamaan testejä ja samalla opit todennäköisesti lisää testattavasta ohjelmistosta.
Käytä liiketoiminnan kieltä
Robot Frameworkin testit voi suunnitella siten, että testit ovat selkokielisessä ja liiketoimintaystävällisessä muodossa (vrt. käyttäjätarinoiden muoto ”asiakkaana haluan, että…”). Samalla olet ikään kuin huomaamatta valjastanut testiautomaatiotestien dokumentoinnin tehokkaaksi apuvälineeksi.
Kimmo Hakala
Senior QA Consultant