”Voidaanko kaikki testit automatisoida?” ja muita testiautomaatioon liittyviä peruskysymyksiä

Milloin testiautomaatio kannattaa?

Testiautomaatioon liittyy vielä tänäkin päivänä tiettyjä olettamuksia, vahvaa epätietoisuutta ja jopa suoranaisia illuusioita
Joissain tapauksissa se koetaan kaiken pelastavaksi testausmenetelmäksi, kun taas sen käyttöönottoon ja hyödyntämiseen liittyviä eri tyyppisiä lainalaisuuksia ei osata hahmottaa.

Olemme koostaneet tähän kuusi tyypillisintä testiautomaatioon liittyvää peruskysymystä, joihin pyrimme vastaamaan mahdollisimman selventävästi.

”Voidaanko kaikki testit automatisoida?”

Ei missään tapauksessa, eikä se ole järkevää, eikä luultavasti edes mahdollista.
Vaikka testiautomaatio tuo mukanaan monia hyötyjä, kuten nopeutta, toistettavuutta ja luotettavuutta, sillä on rajoituksensa.

Seuraavia asioita kannattaa arvioida kriittisesti, vastaako automatisoinnilla tavoiteltava hyöty siihen käytettävien eri resurssien määrää:

  • Käytettävyyteen ja käyttäjäkokemukseen liittyvät testit
  • Ad-hoc-testaus
  • Liiketoiminnan logiikat ja epätavalliset käyttäjätapaukset
  • Monimutkaiset integraatiot ja riippuvuudet, kuten ulkopuoliset järjestelmät, laitteistoriippuvuudet ja erikoistuneet palvelut
  • Jotkut kriittiset järjestelmät, kuten terveydenhuollon tai ilmailualan sovellukset, jotka edellyttävät ihmisen suorittamaa verifiointia.

Kaikkien testien automatisoinnin tavoittelu olisi ylläpitokustannuksiltaan varsin kallista. Testiautomaatio ei myöskään koskaan poissulje perinteisen ohjelmistotestauksen tarvetta, vaan vapauttaa ohjelmistotestaajien kädet niiden osa-alueiden pariin, joiden testauksessa testiautomaation käytöllä ei saavuteta lisäarvoa.

”Miksi palkata testiautomaatiokehittäjä? Eikö softakehittäjä voisi kirjoittaa ne testit muun koodauksen ohessa?”

Softakehittäjän tuleekin kirjoittaa testejä, mutta tyypillisesti ne ovat yksikkö- tai komponenttitason testejä, joilla kehittäjä tarkistaa koodinsa toimivuuden.
Vaikka softakehittäjä osaisi muun ohjelmointityönsä ohessa kirjoittaa myös muuta testiautomaatiota, luultavasti ennen pitkää hänen aikansa ei riittäisi siihen alkuunkaan.

Tässä muutamia syitä, miksi testiautomaatiokehittäjä voi olla korvaamaton lisä tiimiin: 

  • Testiautomaatiokehittäjällä on syvällinen ymmärrys testausstrategioista, oikeiden työkalujen valinnasta ja parhaista käytännöistä.
  • Kokeneella testiautomaatioasiantuntijalla on kyky suunnitella järjestelmä siten, että sen ylläpito on mahdollisimman vaivatonta ja käyttö kustannustehokasta. 
  • Testiautomaatiokehittäjä pystyy arvioimaan, mitä on järkevää automatisoida ja mitkä osa-alueet on parasta jättää muun ohjelmistotestauksen vastuulle. 
  • Softakehittäjät voivat keskittyä ydintehtäviinsä eli liiketoiminnan kannalta tärkeiden ominaisuuksien kehittämiseen, kun testauksen automatisointi on asiantuntijan vastuulla. 

”Sitten kun testiautomaatio on rakennettu, miksi siihen tarvitsee enää koskea?”

Ei tarvitse – siis jos sitä ei käytä. Niin käy valitettavan usein, mikäli testiautomaatiokehitystä ei priorisoida osaksi tekemistä, sen tuloksia ei seurata, eikä sille ole nimetty vastuuhenkilöä.
Testiautomaatio ei ole kertaluonteinen projekti, vaan se edellyttää jatkuvaa ylläpitoa, kehittämistä ja päivitystä.

Tässä syitä, miksi testiautomaatiota on ylläpidettävä:

  • Ohjelmiston muutokset ja kehittyminen 
  • Käyttöliittymän, rajapintojen ja muiden komponenttien muutokset 
  • Testiskenaarioiden päivittäminen ja kattavuuden laajentaminen 
  • Testien suorituskyvyn optimointi  
  • Testidatan ylläpito ja kehitys 
  • Järjestelmä- ja ympäristömuutokset 

Ilman säännöllistä huomiota testiautomaation tuottamat testaustulokset menettävät ennen pitkää merkityksensä ja luotettavuutensa kuvaamaan softan todellista tilaa. 
Siksi on tärkeää nähdä testiautomaatio elävänä ja kehittyvänä prosessina muun softakehityksen rinnalla.

”Miksi testiautomaatiokehitykseen menee niin paljon aikaa? Senhän piti säästää sitä?”

Vastaa ensin kysymykseen: Mitä ongelmaa ratkomaan olet sitten valinnut testiautomaation?   

Testiautomaatio on suunniteltu säästämään aikaa pitkällä aikavälillä, mutta sen alkukehitykseen ja ylläpitoon voi kulua paljon aikaa. Tämä saattaa tuntua ristiriitaiselta, mutta siihen on hyviä syitä.

Seuraavassa kuvattuna työvaiheita, joissa testiautomaatiokehityksessä kuluu aikaa:

  • Oikean testiautomaatioratkaisun valinta ja sen pilotointi 
  • Ohjelmiston testattavuuden arviointi ja mahdollinen kehitys 
  • Testausstrategian jalkauttaminen osaksi tuotekehitystä 
  • Automatisoitavien testien kehitystyö ja niiden toiminnan validointi
  • Työkalu- ja automaatio-osaamisen jalkauttaminen edelleen tiimille

Testiautomaatio on merkittävä investointi sekä ajallisesti että rahallisesti, mutta se maksaa itsensä takaisin pitkällä aikavälillä. Nimenomaan automaation tuottamat pitkän aikavälin edut, kuten toistettavuus, nopeus ja luotettavuus, tekevät siitä erittäin arvokkaan työkalun ohjelmistokehityksessä.  

Kokeneen testiautomaatioasiantuntijan avulla voidaan säästää aikaa sekä kehitys- että ylläpitovaiheessa, sillä hyvin suunniteltu automaatioratkaisu on myös helpompi ylläpitää. 

”Miten ihmeessä testiautomaatio maksaa itsensä takaisin?”

Vastaus: Jatkuvalla ylläpidolla ja priorisoinnilla.   
Vaikka testiautomaatiokehityksen alkutaival ennen konkreettisia tuloksia vaatii oman budjettinsa, se maksaa itsensä takaisin erityisesti pitkäkestoisissa ja jatkuvasti kehittyvissä ohjelmistoprojekteissa.  

Alla joitakin syitä, millä tavoin testiautomaatio voi maksaa itsensä takaisin pitkällä aikavälillä: 

  • Nopeuttaa julkaisuprosessia tarjoten ensisijaisesti nopean palautteen kehittäjille  
  • Vapauttaa ohjelmistotestaajien kädet olennaisempien asioiden, kuten tutkivan testauksen äärelle ja ei-automatisoitaviin tapauksiin.
  • Täydentää tuotekehityksen koko laadunvarmistusta ja mahdollistaa nopeammin suoritettavan testikattavuuden. 
  • Mahdollistaa jatkuvan ja toistuvan testauksen eri ympäristöissä ja erilaisilla testidataprofiileilla

Järkevästi toteutettu testiautomaatio tehostaa kehitystyötä, parantaa ohjelmiston laatua ja pienentää tuotekehityksen kokonaiskustannuksia ohjelmiston elinkaaren aikana. 

”Mikä on maailman paras testiautomaatiotyökalu?”

Se on se, joka sopii tuotekehityksesi tarpeisiin parhaiten.

Lyö luuri korvaan sille, joka tarjoaa sinulle heti vaihtoehtoa ennen tarkempaa tutustumista tilanteeseesi. Mikäli projektissa ei ole vielä käytössä testiautomaatiotyökalua, sen valinnan lähtökohdat lähtevät aina faktapohjaisista asioista, kuten tuotekehitysprosessista ja tiimin tavoista toimia.
Eri testiautomaatiotyökalut soveltuvat eri käyttötarkoituksiin, ja työkalun sopivuus riippuu esimerkiksi:

  • Halutaanko testata web-sovelluksia, mobiilisovelluksia, rajapintoja vai työpöytäsovelluksia?
  • Tai onko kyseessä tietyn valmistajan/alustan/tuoteperheen tietojärjestelmä tai monimutkainen sulautetun järjestelmän ratkaisu?
  • Millä kielellä testiautomaatiokehitystä koetaan vaivattomimmaksi suorittaa tiimissäsi?
  • Asettaako käytettävä testidata vaatimuksia työkalun kyvykkyyksille?
  • Edellyttääkö testiautomaatio jatkuvaa ulkoisen asiantuntija-avun käyttöä, vai onko sen käyttö hallittavissa oman tiimin osaamisella?

Parhaan lopputuloksen saavutat asiantuntijan kanssa; et varmaankaan halua olla tilanteessa, jossa pitkällisen testiautomaatiohapuilun ja hukkaan heitetyn ajan jälkeen kuulet lauseen: ”Mahdoitteko tietää että menetelmällä X olisitte toteuttaneet saman halvemmalla, nopeammin ja luotettavammin?”.
Siksi asiantuntija-avun hyödyntäminen kannattaa!

Lue lisää testiautomaatiokehityksen palveluistamme >>

Tutustu myös testiautomaatioon liittyviin asiakasprojektikuvauksiimme: