Nopeatahtisia ohjelmistojen julkaisusyklejä on lähes mahdotonta hallita ilman testiautomaatiota. Mikäli tarkoituksena on pysyä ketterän ohjelmistokehityksen tahdissa, manuaalinen testaus on yksinkertaisesti liian hidasta. Ohjelmistojen ja niiden välisten integraatioiden validoinnissa manuaalinen testaaminen muodostuu ajan myötä taakaksi.

Automaatiotestaamisen tekeminen on tunnetusti kallista sekä suorittaa että ylläpitää, vaikka käytössä olisi hyvinkin edistyksellisiä työkaluja. Tämän vuoksi olisi suositeltavaa, että automaatiota sovellettaisiin ensin sellaisissa testeissä, joita on toistettu usein mutta muutettu harvoin.

Kun testiautomaatio on toteutettu suunnitellusti ja oikein, voidaan säästää manuaalista työtä. Suurimmat säästöt näkyvät kuitenkin testaamiseen käytetyssä ajassa. Parhaassa tapauksessa automaatio voi nopeuttaa testausta jopa 90 prosentilla pelkästään poistamalla prosessista odotusajat.

Tarkastellaan seuraavaksi yksinkertaista esimerkkiä, jossa ohjelmistotiimi on julkaisemassa torstaina uutta järjestelmäversiota testaukseen.  Ohjelmistotestaajat ovat edelleen kiireisiä vahvistamaan joitakin korjauksia edellisestä testijulkaisusta, mutta he pystyisivät aloittamaan uuden järjestelmäversion testaamisen maanantaina. Näin ollen, kolme työpäivää on jo menetetty, sillä uuden järjestelmäversion testaaminen kestää kolme päivää ja on siis valmis keskiviikkona. Vasta tällöin kehittäjätiimi voi alkaa korjata testeissä havaittuja virheitä. Osa korjauksista on helppo toteuttaa, mutta osa vaatii niin paljon työtä, että niitä testataan seuraavissa testeissä vielä kolmen viikon ajan. Kolmen viikon kulutta sama testisykli käynnistyy uudelleen. Tällä kertaa testaajat testaavat uusia ominaisuuksia sekä korjauksia niihin virheisiin, joita kolme viikkoa sitten löydettiin.

Testaustyö, mikä kesti kauemmin kuin kuusi kalenteripäivää, olisi voitu suorittaa muutamassa tunnissa automaatiotestauksella. Koodiin tehdyt korjaukset olisi voitu tarkistaa ja todentaa välittömästi ajamalla testit uudelleen. Verrattaessa manuaalitestausta automaatiotestaukseen, mahdollisuus säästää aikaa testauksesta saadun palautteen huomioinnissa on valtava.

Mitään ihmeparannusta testiautomaatio ei kuitenkaan tarjoa. Sen avulla voidaan säästää aikaa ja vähentää manuaaliseen testaustyöhön tarvittavien henkilöiden määrää. Testaajia tarvitaan silti yhä manuaaliseen testaukseen sekä suunnittelemaan ja ylläpitämään automaatiotestejä. Myös luovuutta vaativissa tehtävissä, kuten uusien ominaisuuksien testaamisessa ja ongelmien määrittelyssä ihminen on konetta parempi. Kone taas on ylivoimainen, kun tarkoituksena on toistaa samoja rutiinitehtäviä useaan kertaan. Koska elämme nopeatahtisessa lukuisten integraatioiden maailmassa, tällaisten rutiinitehtävien määrä on nykyään suuri.

Testiautomaatiota pidetään yleisesti yksinomaan testitapausten suorittamisen automatisointina. Tämä on hyvin kapea näkökulma sillä testiautomaatio tarkoittaa kaikkea seuraavista:

  1. Automatisoitua testien suorittamista
  2. Automatisoitua testidatan valmistelua
  3. Automatisoitua testitapausten luomista
  4. Automatisoitua testityökalujen ja -ympäristöjen asennusta ja konfigurointia
  5. Automatisoitua testiohjelmiston konfigurointia ja asennusta
  6. Automatisoitiua testitulosten raportointia
  7. Automatisoitua testitulosten analysointia
  8. Automatisoitua testitilostojen raportointia laatumittaristolla

Mikäli testiautomaatio on toteutettu oikein, sen avulla on mahdollista saavuttaa suuria hyötyjä. Kaikki alkaa kuitenkin laatuun vaikuttavien riskien tunnistamisesta, riippuvuuksien hahmottamisesta ja ohjelmistoprosessien ymmärtämisestä, sillä valmiiksi heikon prosessin automatisointi ei mahdollista tavoiteltujen hyötyjen saavuttamista.


Lue loput blogisarjasta:

  1. Keskity riskeihin ja riippuvuuksiin
  2. Ota DevOps käyttöön oikein
  3. Näe IT-sijoitukset tuotteina projektien sijaan
  4. Testaaminen vasemmalle ja oikealle
  5. Automatisoi
  6. Mittaa

Aiheet:

Testiautomaatio, Ohjelmistotestaus


Esko Hannula

Esko Hannula

esko.hannula@qentinel.com

Näytä kaikki kirjoitukset