Miksi ohjelmistotestaus saatetaan suorittaa manuaalisesti?

Testaaminen on ohjelmistokehityksessä yksi tärkeimpiä pääkohtia toimivuuden takaamiseksi, sekä virheiden löytämiseksi. Testaaminen jaetaan yleisesti kahteen eri osa-alueeseen: automaatiotestaus ja manuaalitestaus. Molempia tyylejä käytetään alalla jatkuvasti ja eri tekijöillä on omat tapansa laatia testaussuunnitelmat. Mistä voi päätellä, milloin on järkevää testata manuaalisesti automaation sijaan?

Ohjelmistotestaajan tehtävät voivat olla hyvin toisteisia ja samanlaisia keskenään. Yleensä suuret ohjelmistot testataan automaatiotestausta käyttäen, mutta miksi joskus testataan manuaalisesti? Manuaalisesti testaamalla voidaan kohdentaa tarkkaan esimerkiksi yhteen ohjelmiston osaan liittyvää palaa. Etenkin kehitysvaiheessa olevan ohjelmiston testauksen (Kuva 1.) automatisointi vie aikaa ja testausohjelmaa täytyy pitää ajan tasalla jatkuvien muutosten mukana. Manuaalisella testaamisella kehittäjän ei tarvitse miettiä sekä ohjelmiston, että automatisoinnin kehittämistä, vaan hän voi testata tai testauttaa uutta ominaisuutta lyhyelläkin varoitusajalla.

Kehittämisen ja testaamisen välinen prosessi

Kuva 1 Kehittämisen ja testaamisen välinen prosessi kehittämisvaiheen aikana

Testaussuunnitelma ja -prosessi

Testaaminen alkaa yleensä jonkinlaisen testaussuunnitelman (Kuva 2.) laatimisesta. Suunnitelman laatiminen ja noudattaminen takaa tulosten yhdenmukaisuuden ja mahdollisen ongelman löytyessä voidaan heti alkaa kohdentamaan ongelmakohtia tulosten perusteella. Testaussuunnitelman voi laatia monella tavalla, mutta tässä kirjoituksessa käsittelen omaan kokemukseeni perustuvaa käytäntöä.

Suunnitelman laatiminen on tärkeää monesta syystä. Testaajien on tiedettävä mitä ja milloin he testaavat ja mihin kiinnittää erityistä huomiota. Saman suunnitelman noudattaminen takaa tulosten yhtenäisyyden, sillä jokainen testaaja suorittaa saman tehtävän samalla tavalla. Testaussuunnitelman avulla voidaan kohdistaa testausta ongelmakohtiin kehittäjien työn avuksi, sekä löytää uusia ongelmia, joita kehittäjä ei välttämättä itse ajatellut. Sivuston tai ohjelmiston toimivuuden takaaminen on tärkeää, sillä käyttäjäkokemus vaikuttaa suuresti suosioon ja luotettavuuteen. [1]

Testaussuunnitelman ohjeistuksen on oltava selkeä ja mahdollisimman yksityiskohtainen jokaisessa askeleessa, jotta testaajan ei täydy arvailla, mitä painiketta hänen täytyy painaa tai mikä tehtävä pitää suorittaa. Askeleen suoritettuaan testaaja merkitsee kohdan joko onnistuneeksi tai epäonnistuneeksi. Testaaja voi myös kirjoittaa huomioita ja lisätä kuvakaappauksia esimerkiksi vastaan tulleesta virheestä. Huomioiden ja kuvakaappausten lisääminen on suositeltavaa kehittäjän kannalta, jotta hänen on helpompaa selvittää mistä ongelma johtuu. Saman testin suorittaa vähintään kaksi eri henkilöä, mutta mitä enemmän henkilöitä on mukana testaamassa, sitä varmemmin tulokset saadaan varmistettua.

Esimerkki testaussuunnitelmasta.

Kuva 2 Esimerkki täytetystä testaussuunnitelmasta.

Testauksen päätyttyä tulokset lähetetään vastuuhenkilölle tai suoraan kehittäjälle. Tulosten lukijan on helppo seurata testausprosessia suunnitelmaan kirjoitettujen askeleiden vuoksi. Lukija tarkistaa testaajien merkitsemät epäonnistuneet suoritukset, sekä huomiot ja kuvakaappaukset ongelmakohdan selvittämistä ja korjausta varten. Prosessi toistuu korjausten jälkeen, kunnes kaikki tai suurin osa ongelmista on korjattu. Prosessi voidaan myös toistaa päivitysten tai uuden kehitystyön jälkeen.

Manuaalitestaus vai automaatiotestaus?

Kun ohjelmisto tai sovellus on kehitysvaiheensa päässä ja niin sanotusti valmis, voidaan miettiä, mitä kannattaa testata manuaalisesti ja mitä automaattisesti. Kokonaisen ohjelmiston testaaminen manuaalisesti on aikaa vievää ja toisteista, joten automaatiotestauksen käyttäminen tällaisiin tehtäviin on kestävä ja hyvä ratkaisu. Automaatiotestaus on myös hyvä vaihtoehto yksittäisten osien testaamiseen, jos niitä ei päivitetä tiheään tahtiin.

Manuaalisesti testaamalla voidaan testata esimerkiksi kehitteillä olevaa uutta ohjelmiston osaa, jota päivitetään ja kehitetään koko ajan tai osaa, jonka testaaminen vaatii asiantuntijan tietämystä. Manuaalisesti testaamalla voidaan myös suorittaa epätavallisia tai odottamattomia käyttötapoja, sillä automatisoitu testausohjelma suorittaa testin joka kerta samalla tavalla, ellei sitä muuteta. [2]

Automaatiotestauksella voidaan siis suorittaa toimintojen toimivuus, sekä kokonaisten ohjelmistojen testaus joka kerta samalla tavalla. Tällä tavalla saadaan nopeasti selville, jos esimerkiksi jokin painike ei toimi uuden päivityksen jälkeen. Automatisoimalla testaustehtävä voidaan se myös suorittaa huomattavasti nopeampaa kuin manuaalisesti etenkin, jos testattava ohjelmisto on laaja. Manuaalisesti testaamalla taas voidaan kohdistaa testausta tiettyihin ja kehitteillä oleviin osiin lyhyelläkin varoitusajalla. Tämän lisäksi manuaalitestaaja voi testata käyttötapoja, joita kehittäjä ei välttämättä ollut ottanut huomioon.

Tekstin kirjoitti,
Joonas Kelahaara
Tietojenkäsittelyn opiskelija, TIK21KM

 

Lähteet

[1] Zawadzki, Pat 2023. What is a Test Plan: Guide to Test Planning. Hakupäivä 14.12.2023. https://www.wearedevelopers.com/magazine/what-is-a-test-plan#:~:text=It%20is%20important%20for%20ensuring,everything%20will%20work%20as%20expected.

[2] Bula, Asia 2022. Do you really need a manual tester and why the answer is “yes”? Hakupäivä 14.12.2023. https://www.rst.software/blog/do-you-really-need-a-manual-tester-and-why-the-answer-is-yes#:~:text=Manual%20tests%20allow%20us%20to,further%20development%20of%20individual%20functionalities

Opinnäytetyö, johon blogi perustuu:
Kelahaara, Joonas. 2023. Asiakasvastaavan tehtävät, päiväkirjamuotoinen opinnäytetyö Oulun ammattikorkeakoulu. Tietojenkäsittelyn tradenomi, Tietojenkäsittelyn tutkinto-ohjelma.

Saatat pitää myös näistä...

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *