Testausautomaatio tehostaa laadunvarmistusta

Teknologiat Artikkelin lukuaika 4 min

Manuaalinen ohjelmistotestaus on tyypillisesti ohjelmiston käyttöskenaarioiden läpikäyntiä eri syötearvoyhdistelmillä sen varmistamiseksi, ettei eri tilanteissa tapahdu mitään odottamatonta. Automatisoidussa testauksessa sama työ jätetään ohjelmistorobotin tehtäväksi. Se tekee testit väsymättä päivästä toiseen – ja huomattavasti ihmistä nopeammin.

Testattavan toiminnallisuuden määrän kasvaessa automaatiotestaus tuottaa merkittäviä työaikasäästöjä manuaaliseen testaukseen verrattuna. Lisäksi toiminnallisuuden rikkovat koodimuutokset voidaan tunnistaa ja korjata jo syntysijoillaan.

Milloin testausautomaatio kannattaa?

Hyvin pienissä tai kertaluontoisissa ohjelmistokehitysprojekteissa ei testiautomaation rakentamiseen välttämättä kannata käyttää aikaa. Testausautomaatio kannattaa kuitenkin heti, jos projekti on vähänkään isompi, jatkuva tai jos siihen odotetaan tulevan lisäkehitystyötä. Etukäteen ei projektin tulevaisuutta aina voi tietää, joten testausautomaation mahdollisuus kannattaa joka tapauksessa ottaa jo kehitystyössä huomioon. Automaatiotestauksen rakentaminen on mahdollista missä vaiheessa projektia tahansa, mutta kertaluontoinen työtaakka on luonnollisesti pienempi projektin alkupuolella tehtynä. Joka tapauksessa: parempi myöhään kuin ei milloinkaan.

Regressiotestaus varmistaa eheyden

Tyypillisin kohde automaatiotestaukselle on regressiotestaus. Kun järjestelmään kehitetään uutta toiminnallisuutta, pitää testata, etteivät uudet osat ole aiheuttaneet häiriötä aiemmin tehtyjen osien toimivuudelle. Kehitystyön edetessä testattavien vanhojen osien määrä kasvaa jatkuvasti. Automaation ansiosta vanhat osat voi testata minuuteissa, vaikka testattavaa sisältöä olisi paljonkin. Manuaalista testaamista automaatio ei poista, mutta edellisellä kerralla manuaalisesti tehdyn testauksen voi seuraavilla kierroksilla jättää automaatiotestien huoleksi.

Laadunvarmistusta 24/7

Data- eli massatestauksessa testataan, kuinka tietokannan koon kasvattaminen vaikuttaa ohjelmistoon. Sen automatisointi on kannattavaa ja helppoa. Suorituskykytestauksella puolestaan testataan samanaikaisten käyttäjien aiheuttamaa kuormitusta. Sille on omat työkalunsa, mutta senkin voi laskea kuuluvan automaatiotestauksen piiriin. Palkkakustannuksiin verrattuna automaatiotestien pystyttämisen ja palvelimen käytön kustannukset ovat olemattomat, ja automaatiotestit varmistavat ohjelmiston laatua tarvittaessa vaikka vuorokauden ympäri.

Virtuaalikoneet työpöytäsovellustestauksen apuna

Jos ohjelmistokehityksen kohteena on työpöytäympäristöön asennettava sovellus, eri käyttöjärjestelmä- ja työasemakombinaatioita voi olla todella paljon. Ajatus kaikkien yhdistelmien manuaalisesta testauksesta ei ole edes realistinen. Onneksi testausta voidaan automatisoida pystyttämällä virtuaalikoneita, jotka matkivat erilaisia toimintaympäristöjä.

DevOps edellyttää jatkuvaa testaamista

DevOps on ketterä ohjelmistokehityksen toimintamalli, jossa ohjelmointi, suunnittelu, testaus, dokumentointi ja julkaisu ei tapahdu jaksoissa, vaan on syklistä ja jatkuvaa. Toimiakseen näin useimpien toimintojen pitää olla automatisoitavissa. Automaatiotestaus onkin osa DevOps-putkea, jonka toisesta päästä virtaa valmista tuotetta. Muutkin ohjelmistokehityksen ketterät toimintatavat vaativat ketteriä komponentteja – testauksen kohdalla se tarkoittaa automatisointia. Toimintamallista riippumatta kehityksen yhteydessä tehty automaatiotestaus estää yllätykset ja tekee projektin edistymisestä vakaata ja seurattavaa.

Testaus kannattaa huomioida kehitystyössä

Mitä aiemmin testaus on huomioitu koodia tehdessä, sitä sujuvammin automaattinen testaus käy. Testauksen huomiointi ei syö kohtuuttomasti kehittäjän aikaa, mutta nopeuttaa automaatiotestin tekemistä huomattavasti. Esimerkki testauksen huomioimisesta selainpohjaisten lomakkeiden täyttämisessä: kun kentän yksilöivät ID-tunnukset on asetettu, löytyy testattava kenttä helposti, oli se missä kohtaa koodia hyvänsä. Jos kenttää ei ole yksiselitteisesti nimetty, on sen löytäminen ja yksilöinti koodista paljon hitaampaa ja vikaherkempää.

Automaatiotestaus on korvaamaton apu ohjelmiston ylläpitovaiheessa

Ohjelmiston käyttöönoton jälkeen siihen tulee lähes poikkeuksetta muutoksia. Tietorakenteisiin tehdyt muutokset mahdollistavat uuden toiminnallisuuden, mutta voivat samalla heijastua sovelluksen kaikkiin muihinkin osiin.

Kun ylläpitovaiheessa olevaan ohjelmistoon halutaan tehdä lisäyksiä, kohoaa automaatiotestauksen arvo uusiin sfääreihin. Edelliset muutokset ohjelmistoon on voitu tehdä kuukausia tai jopa vuosia sitten, eivätkä niiden tekijät välttämättä ole enää paikalla. Jos ohjelmistolle on tehty dokumentoitua automaatiotestausta, voi uutta toiminnallisuutta kehittävä taho tukeutua siihen ja varmistaa automaatiotestein, että ohjelma toimii lisäystenkin jälkeen kuten pitää. Muussa tapauksessa voi vain kahlata määrittelydokumentteja läpi ja toivoa, ettei uuden osan käyttöönotto riko jotain vanhaa.

Automatisoimalla ohjelmistotestausta päästään huomattavaan tehokkuuteen ohjelmiston laadunvarmistuksessa. ATR Softin kokeneet testaajat ovat oman kehitystyömme laadun takaajia. Voimme tarjota heidän palveluitaan myös sinun käyttöösi – ota yhteyttä ja kysy lisää!