Yleisiä huomioita testiautomaatiosta
Uuden Testiautomaatio toteutuksen tekeminen voidaan aloittaa ns. "puhtaalta pöydältä", jolloin kaikki tehdään alusta asti, usein alkaen sisäänkirjautumisesta.
Toinen vaihtoehto on käyttää kirjastoa, joka tarjoaa kaikki nuo hyvän testiautomaatioalustan tarvitsemat yleiset toimivat perustoiminnat, jotka on luettelin etusivulla.
Esimerkkinä voitaisiin pitää vaikka yli sadan stepin kompleksisempaa testitapausta.
Jos sen (toimivaan) automatisointiin kuluu aikaa yli kolme päivää, on ehkä tarvetta tarkastella
automaatioalustan rakennetta. Ongelma voi tosin olla myös jo puutteellisissa testisekvenssi määrittelyissä.
Tähän kun vielä lisätään alati kasvava testimassa, ollaan hyvin pian
tilanteessa,
jossa automaatio järjestelmän pyörittämiseen käytetyt resurssit eivät ole oikein missään suhteessa siitä saatuun hyötyyn.
Jos Testiautomaatioalusta tarjoaa hyvän tuen testitapauksen automatisointiin, tuollaisen em. 100 stepin testitapauksen automatisoinnin voi hyvinkin realistisesti tehdä päivässä, parhaassa tapauksessa siihen kuluu alle päivä.
Toiminnon, jonka voi automatisoida, voi yleensä tehdä myös käsin.
Automaatiolla tehtynä se tapahtuu kuitenkin monin verroin nopeammin.
Parhaissa tilanteissa, automaation ajamana, saman testisekvenssin voi suorittaa kymmenesosassa siitä ajasta mitä siihen menisi suorittamalla käsin, toisinaan jopa nopeammin.
Testiautomaatio voi olla siihen perehtymättömälle jotain sellaista, johon panostaminen epäilyttää koska ei välttämättä tiedä saako siinä rahoilleen vastinetta.
ja se on ikävä kyllä hyvinkin aiheellinen huoli.
Itse olen urani aikana nähnyt monenlaista testiautomaatiota.
Pahimmissa tapauksissa automaatio järjestelmä on rakennettu enemmän ja vähemmän kertakäyttöiseksi, jossa kaikki tai suurin osa voi olla koodattuna suoraan testi scenarioon, ilman mitään järkevää alustaa tai kapselointia.
Tällainen automaatio järjestelmä voi onnistua pienissä testattavissa kohteissa, joissa muutostarpeet ovat ajallisesti vähäisiä.
Jos tälläistä em. kertakäyttöistä koodaustapaa sovelletaan johonkin vähänkään suurempaan testattavaan kohteeseen, kasvaa Testiautomaatio järjestelmän ylläpito ja jatkokehitys hyvin nopeasti niin suureksi,
että automaatio järjestelmän pyörittäminen ei ole millään mittareilla järkevää.
Ratkaisevaa on siis, kuinka nopeasti monimutkainenkin testi tapaus voidaan Testiautomaatio alustan päälle tehdä, niin että se voidaan onnistuneesti ajaa, ei vain kerran, vaan satoja kertoja.
Automatisoinnin hyöty voidaan mitata vaikka Testiautomaatiovaiheessa löydettyjen vikojen määränä suhteessa
sen jälkeen suoritetuissa testivaiheissa löydetyihin vikoihin, puhumattaakaan asiakkaan löytämistä vioista.
Mitä myöhemmässä vaiheessa vika löydetään, sitä suurempi kustannus siitä syntyy ja asiakkaalle asti
päässeen vian kustannus voi kasvaa hyvinkin suureksi, mainehaittana ja menetettyinä sopimuksina.
Testiautomaation hyvyys mitataankin juuri siinä, kuinka paljon se pystyy ottamaan kiinni testattavassa softassa olevia vikoja suhteessta muihin testausvaiheisiin, ja kun tämä automaatiossa löydettyjen vikojen trendi on vielä kasvava, ilman merkittävää ylläpitotarpeen lisäystä, ollaan todennäköisesti oikeilla raiteilla.
Testiautomaation toiminnan mittari:
Lisääntyvä määrä vikoja löydetään automaatiotesti vaiheessa suhteessa seuraavissa testausvaiheissa löydettyihin, puhumattakaan asiakkaalle asti päässeihin vikoihin.