Blogi 30.5.2023

Mitä on testaus? Ohjelmistotestaus laadunvarmistajana

Osaaminen

Testauksen tarkoituksena on kokeilla toimiiko jokin asia niin kuin se on alun perin määritelty. Jos painan valonkatkasijaa monta kertaa edestakaisin, syttyykö valo joka kerta?

Ohjelmistotestauksella luodaan tietoa testattavan ohjelmiston laadusta ja varmennetaan, voidaanko ohjelmisto ottaa käyttöön. Testauksella myös varmistetaan, toimiiko ohjelmistopäivityksen tai uuden toiminnallisuuden lisäyksen jälkeen ohjelmisto kuten ennenkin. Kyse ei ole vain yksittäisen bugin etsimisestä vaan ohjelmiston luotettavuuden kasvattamista ja täten varmistamalla liiketoiminnan jatkuvuus.

Testauksen voi suorittaa kuka tahansa ohjelmiston luojasta liiketoiminnan ammattilaiseen, mutta usein suotavaa on, että ohjelmiston eri luontivaiheessa on prosessin mukaisesti suunniteltu kuka testaa ja mitä osa-aluetta.  Yksinkertaisen yksittäisen ohjelmisto-osan testaaminen on usein helppoa, mutta ammattimainen laadunvarmistus tulee kysymykseen, kun ohjelmistot ovat suuria, sisältävät erilaisia integraatioita ja pitkiä toimintaketjuja sekä kun halutaan tietää toimiihan koko prosessi alusta loppuun eli testauksen termein suorittaa end-to-end testaus.

Testauksen prosessi

Ohjelmistotestaus aloitetaan yleensä testaussuunnitelman luonnilla. Tähän kirjataan mitä, miten, missä ja milloin ollaan testaamassa kohteena olevaa ohjelmistoa sekä tunnistetut riskit. Esimerkiksi kohteena on valonkatkaisija, jota testaaja painaa moneen kertaan päälle ja pois joka arkipäivä viikon ajan toimistolla ja raportoi tulokset. Suuremmissa projekteissa ja yrityksissä voidaan käyttää testausstrategiaa testaussuunnitelman lähteenä, johon on kirjattu yrityksen testauksen pääperiaatteet, jotta tiedetään millaisella työskentelytavoilla ohjelmistoa luodaan.  

Testaussuunnitelman valmistuessa testaajat pääsevät yleensä tutustumaan ohjelmistoon, jotta he osaavat testitapauksien mukaan suorittaa testit tai luoda automaatiot näiden perusteella. Testitapaukset tulevat määrittelyistä, joita ohjelmistolle on annettu etukäteen ja mahdollisesti myös luonnin aikana. Testaus on saatu valmiiksi, kun testaussuunnitelman mukaan testaus on suoritettu hyväksyttävästi. Kaikkia bugeja on mahdotonta löytää, mutta tavoitteena yleensä on, että ohjelmistolle on saatu riittävä luotettavuus ja käyttöönoton riskejä on minimoitu.

Testauksessa helposti tulee haasteeksi aikataulu. On hyvin yleistä, että ohjelmiston luonnille tai päivittämiselle varattu aika ei riitä, jonka vuoksi se usein vie testaukselle varattua aikaa. Tämän vuoksi onkin yleensä suositeltavaa, että testausta aletaan tekemään jo ohjelmistokehityksen varhaisessa vaiheessa, jotta virheet saadaan mahdollisimman nopeasti tunnistettua. Tämä säästää myös yritykseltä yleensä rahaa, kun virheet on saatu tunnistettua tarpeeksi ajoissa eikä virheiden takia jouduta aloittamaan alusta.

Manuaalitestaus ja testiautomaatio

Testauksen voi suorittaa manuaalisesti ja automaatiolla. Manuaalinen testaus tarkoittaa nimensä mukaisesti sitä, että testaaja käy itse suorittamassa testin ja esimerkiksi painaa valonkatkaisijaa monta kertaa peräkkäin. Ohjelmistotestauksessa yleensä manuaalitestaaja tekee testisteppien mukaiset toimenpiteet ja vertaa onko lopputulos se mitä testitapaukseen on kirjattu oletetuksi lopputulokseksi. Manuaalitestaaja voi myös katselmoida koodia ja tarkistaa onko siellä logiikkavirheitä sekä kommentoida ohjelmiston käyttökokemuksesta.

Manuaalitestaus kohdistuu usein ohjelmiston kehityksen alkuun, mutta manuaalitestausta nähdään koko ohjelmisto kehityksen aikana. Tämän vuoksi usein kysytäänkin milloin testi kannattaa automatisoida.

Testiautomaatio tulee usein valinnaksi, kun ohjelmisto alkaa olemaan valmis ja halutaan testata samoja skenaarioita moneen otteeseen esimerkiksi regressiotestauksessa. Esimerkiksi testaajan sijaan, nyt valonkatkaisijaa painaa robotti sekunnin välein. Testit rakennetaan automaatiolle ennalta määrättyjen testiskriptien mukaisesti ja testejä voidaan ajaa lukemattomia määriä, joka tuo yleensä tehokkuutta ja kustannussäästöjä. Testiautomaatio on erityisen suositeltavaa, kun testattavaa on paljon ja testitapaukset ovat pitkiä. Automaatio voidaan myös ajastaa menemään läpi yöllä, jotta häiriötekijöitä automaatiolle ei ole ja tulokset ajoista ovat aamulla valmiina.

Testiautomaatiota varten on luotu monia eri ohjelmistoja, frameworkeja ja koodikirjastoja, joiden valinta riippuu täysin testattavasta kohteesta ja testaajasta. Suomessa paljon käytetty Robot Framework vaatii käyttäjältään koodauksen perusteita esimerkiksi pythonilla, kun taas moduulipohjaiset testausohjelmistot ovat usein suunniteltu liiketoiminta mielessä -pohjalta, jolloin periaatteessa kuka tahansa pystyisi luomaan automaatiolla ajattavan testin. Testityökalu valitaan projektiin aina projektin tarpeiden ja testaajien osaamistason mukaan.

Gofore kumppanisi ohjelmistotestauksessa

Meillä Goforella työskentelee 170 testauksen ammattilaista, jotka hoitavat testauksen alusta loppuun puolestasi palveluna tai konsulttityönä. Meiltä sujuu mm. testiautomaatio, manuaalitestaus, tietoturvatestaus ja testauksen suunnittelu. Kun haluat pienentää riskiä päätyä sanomalehtien etusivuille, niin ota avuksesi testausammattilainen.

Mitä on testaus? on osa tulevaa blogi-sarjaa, jossa sukelletaan testauksen maailmaan ja opitaan miksi ohjelmistotestaus on tärkeä osa ohjelmistokehitystä, millaista on testaajan työ ja mitä kaikkea testaukseen liittyy. Mitä on testaus? Ohjelmistotestaus laadunvarmistajana on blogi-sarjan ensimmäinen osa.

Lue myös blogisarjan aikaisemmat osat:

Laadunvarmistus

ohjelmistotestaus

testaus

testiautomaatio

Essi Rehn

Testiautomaatiosta Test Manageriksi siirtynyt Essi on työskennellyt Goforella parin vuoden ajan. Työssään hän innostuu asiakkaiden kanssa työskentelystä, testauksen vetämisestä ja analytiikasta. Essillä on kokemusta testiautomaatiotyöskentelystä palveluna ja perinteisistä asiakaskasprojekteista. Taustaltaa Essi on ylempi tradenomi, joka on erikoistunut digitaaliseen palvelumuotoiluun. Vapaa-ajallaan Essi mielellään sukeltaa sarjojen maailmaan ja kutoo villasukkia.

Takaisin ylös