Moderni käsitys ohjelmistotestauksesta korostaa kokonaisvaltaista ja ketterää lähestymistapaa, jossa ohjelmistotestaaja mielletään ohjelmiston laadun asiantuntijaksi. Ohjelmistotestausta voivat suorittaa myös kehittäjätiimin ulkopuoliset henkilöt, koska osa testausmenetelmistä ei edellytä testauskohteen tuntemista ennestään. Tutkivassa testauksessa testaaja oppii testauksen aikana lisää testauskohteesta. Ympäristöviisas viljelijä- ja TIKO-silta-hankkeissa kaksi lukiolaisryhmää ja tietojenkäsittelyn opiskelija tekivät ohjelmistotestausta Ympäristökioski-sovellukselle.

Ohjelmistotuotteet ja -palvelut ovat ainutlaatuisia, jos niitä verrataan muihin tuotteisiin tai palveluihin. Usein käyttäjä näkee ohjelmistosta vain käyttöliittymän ja muut ohjelmiston kerrokset jäävät näkymättömiksi. Tyypillisiä esimerkkejä nykyään käytettävien ohjelmistojen käyttöliittymistä ovat työpöytäsovelluksen käyttöliittymä, mobiilisovelluksen käyttöliittymä ja selainkäyttöliittymä.

Ohjelmistoja kehitetään pitkälle kehittyneillä työkaluilla ja tarkoitukseen sopivilla ohjelmointikielillä. Ohjelmistojen ainutlaatuisuus ja läpinäkymättömyys asettavatkin tuotekehitykselle vaatimuksia, jotka poikkeavat muista teollisuudenaloista. Laadunvarmistuksen näkökulmasta ohjelmistotestauksella on tässä kuviossa suuri ja koko ajan merkitystään kasvattava rooli.

Ympäristöviisas viljelijä -hanke kestävän kehityksen asialla

Ympäristöviisas viljelijä -hankkeen tavoitteena on lisätä maatilojen välistä, erityisesti kestäviin tuotantotapoihin liittyvää yhteistyötä ja verkostoitumista. Hankkeessa kehitetään maatiloille ympäristöviisaita toimintatapoja hyödyntäen uusinta tutkimustietoa sekä laskenta- ja mallinnusmenetelmiä. Hankkeen eräs tehtävistä on sähköisen työkalun kehittäminen viljelijöille. Työkalun avulla viljelijä voi suunnitella ja arvioida erilaisia tilan ympäristövaikutuksia pienentäviä valintoja sekä selvittää ja seurata erilaisia ympäristötunnuslukuja. [1]

Hankkeen puitteissa on kehitetty Viljelijän Ympäristökioskia, joka koostuu sovelluksesta ja sivustosta ja joita on mahdollista käyttää erikseen tai yhdessä. Kehitystyötä on tehty tiiviissä yhteistyössä ProAgria Oulun asiantuntijoiden kanssa. Sovelluksessa viljelijä etenee tila- ja peltolohkokohtaisten lähtötietojen kokoamisesta ja pohdinnasta kohti niitä toimenpiteitä, joilla hän voi vähentää maatilan vesistö- ja ilmastovaikutuksia sekä parantaa luonnon monimuotoisuutta ja maankasvukuntoa. [2]. Sovelluksen työnkulku on esitetty kuviossa 1.

Kuvio, jossa on esitetty Ympäristökioski-sovelluksen työnkulku: Rekisteröityminen sovellukseen. Lohkojen tuonti tai lisäys. Tilatason alkukartoitus. Lohkojen ominaisuuksien valinta. Toimenpiteiden valinta. Kooste.
KUVIO 1. Ympäristökioski-sovelluksen työnkulku. Kuvio avautuu isommaksi klikkaamalla.

TIKO-silta kehittää lukioyhteistyötä

TIKO-silta-hankkeessa [3] ideoidaan ja pilotoidaan lukioiden ja korkeakoulujen välisiä tietojenkäsittelyalan koulutuksen yhteistyömuotoja. Tarkoituksena on löytää perinteisten kampusvierailuiden ja kurssitarjontojen rinnalle uusia ja innovatiivisia tapoja yhteistyön toteuttamiseen. Pilotointien pohjalta tuotetaan ja julkaistaan yhteistyömalli, jota voidaan hyödyntää projektin päätyttyä.

Hankkeen potentiaalisia toimintoja kartoitettaessa yhdeksi mahdollisuudeksi tunnistettiin lukio-opiskelijoiden osallistaminen korkeakoulujen tki-toimintaan. Käytännössä tämä voi tarkoittaa esimerkiksi lukiolaisten toimimista korkeakoulujen opintojaksoilla ja hanketoiminnassa kehitettyjen ohjelmistojen ja järjestelmien ohjelmisto- ja käytettävyystestaajina.

Ohjelmistotuote asettaa vaatimukset testaukselle

Klassisen käsityksen mukaan ohjelmistotestauksen tavoite on löytää testauskohteesta virheitä ja puutteita [4]. Kun testaaja löytää testauskohteesta virheen tai puutteen, hän merkitsee sen ylös esimerkiksi testipäiväkirjaan tai tikettinä sovellukseen, jolla hallitaan testauskohdetta kokonaisvaltaisesti. Tieto virheestä päätyy kehittäjälle, joka jossain vaiheessa ottaa työkseen virheen korjaamisen. Testaaja ja kehittäjä voivat olla myös sama henkilö.

Modernimpi käsitys ohjelmistotestauksesta korostaa kokonaisvaltaista ja ketterää lähestymistapaa, jossa testaaja tekee tiivistä yhteistyötä kehittäjien, tuotepäälliköiden, projektipäälliköiden, asiakkaiden ja loppukäyttäjien kanssa. Hän on ennen kaikkea ohjelmiston laadun asiantuntija ja tuntee ohjelmiston hyvin. Hänellä on hyvä organisointikyky ja hyvät kommunikointitaidot. Teknisestä osaamisesta on hyötyä esimerkiksi testauksen automatisoinnissa. [5]

Ohjelmistoa ei voi eikä kannata testata yhdellä suurella testauksella. Kokonaisvaltaiseen ja systemaattiseen ohjelmistotestaukseen sisältyy erilaisia testaustasoja ja -menetelmiä. Tyypillisiä testaustasoja ovat yksikkötestaus, integrointitestaus, järjestelmätestaus ja hyväksymistestaus (kuvio 2). Niillä kaikilla on oma tarkoituksensa, ne toteutuvat eri tavoin tuotekehityksen eri vaiheissa ja ne kohdentavat testausta siten, että kokonaisuutena testaus tehostuu. [6] Testaustasoille on kehitetty kymmenittäin erilaisia testausmenetelmiä ja testauskohde määrittää hyvin pitkälle sen, millaisia menetelmiä testauksessa käytetään. [7]

Kuviossa on yksikkö-, integointi-, järjestelmä- ja hyväksymistestauksen tasot. Yksikkötestaus on kehittäjien suorittamaa testausta, jossa testataan ohjelmiston yksiköitä, kuten luokkia tai komponentteja, toisistaan erillään. Integrointitestaus on kehittäjien suorittamaa testausta, jossa testataan muun muassa ohjelmiston yksiköiden välistä yhteistoimintaa, rajapintoja ja arkkitehtuuria. Järjestelmätestaus on pääosin kehittäjien suorittamaa testausta, jossa voi olla useita osa-alueita, kuten toiminnallisuuden, suorituskyvyn ja tietoturvan testausta. Hyväksymistestaus on ohjelmiston tulevien käyttäjien suorittamaa testausta, jota kehittäjät tukevat.
KUVIO 2. Ohjelmistotestauksen tyypillisiä testaustasoja. Kuvio avautuu isommaksi klikkaamalla.

Osa testausmenetelmistä on sellaisia, joiden käytölle on matala aloituskynnys. Käytettävyystestaus ja tutkiva testaus ovat esimerkkejä menetelmistä, jotka eivät edellytä testaajalta testauskohteen sisäisten rakenteiden, arkkitehtuurin tai lähdekoodin ymmärtämistä. Esimerkiksi verkkosivuston käytettävyyden testaajiksi voidaan ottaa henkilöitä kehittäjätiimin ulkopuolelta ja usein näin kannattaakin tehdä, mikäli se on mahdollista. Kehittäjätiimin ulkopuolelta tulevat testaajat eivät välttämättä tiedä testauskohteesta etukäteen mitään eikä heillä siten ole samanlaisia oletuksia, ennakkokäsityksiä ja rajoitteita, joita kehittäjätiimin jäsenillä voi olla. Klassisia esimerkkejä tällaisista rajoitteista ovat sokeus omille virheille sekä ajattelun kapeutuminen ja urautuminen.

Tutkiva testaus on tunnetuimpia ketterän testauksen menetelmistä. Tutkivassa testauksessa testaaja tutustuu testauskohteeseen samalla kun hän testaa sitä. Hän oppii testauskohteesta koko ajan enemmän, joka puolestaan auttaa häntä suunnittelemaan ja toteuttamaan juuri kyseiseen kohteeseen sopivia testejä. Tutkiva testaus on yleistynyt 2000-luvulla ketterien käytänteiden yleistyessä, mutta kyseessä ei ole uusi menetelmä, koska termi esiintyi ensimmäisen kerran alan kirjallisuudessa jo 1980-luvulla seuraavasti:

”No matter how many test cases of how many types you’ve created, you will run out of formally planned tests. You can keep testing. Run new tests as you think of them, without spending much time preparing or explaining the tests. Trust your instincts.” [8]

Ympäristökioski-sovelluksen testaus

Ympäristökioski-sovelluksen testaamista varten luotiin noin 400 testitapausta ryhmiteltynä 24:ään testijoukkoon. Valtaosa testijoukoista keskittyy toiminnallisuuden testaukseen. Lisäksi luotiin muutama testijoukko erilaisia sivulataustilanteita varten. Niillä testataan sovelluksen toimintaa tilanteissa, joissa käyttäjä syöttää selaimen osoiteriville jonkin alasivun osoitteen. Yksi testijoukko kehitettiin käyttöliittymän yhtenäisyyden testaamiseksi.

Sovellusta testattiin ensin kahden eri lukiolaisryhmän toimesta. Ensimmäinen testaus toteutui syksyllä 2021 Teamsissa järjestetyssä etätilaisuudessa. Hankkeen ja sovelluksen esittelyn jälkeen Oulun suomalaisen yhteislukion opiskelijat testasivat sovellusta noin 40 minuutin ajan. Testauksen päätteeksi käytiin läpi löytyneet virheet ja käytettävyysongelmat.

Toukokuussa 2022 järjestettiin testaus Muhoksen lukion opiskelijaryhmän kanssa Oamkin tiloissa Linnanmaan kampuksella sen jälkeen, kun sovelluksen ensimmäinen mobiiliystävällinen versio valmistui. Myös tämä testaus kesti noin 40 minuuttia ja kohdistui virheiden ja käytettävyysongelmien löytämiseen. Suurin osa suoritti testauksen kannettavalla tietokoneella, mutta myös älypuhelimia ja tablettia käytettiin. Testauksessa esiintyneet toiminnallisuusvirheet, käytettävyysongelmat ja kehittämisehdotukset pyydettiin raportoimaan Padlet-seinätauluihin. Kuviossa 3 on toiminnallisuusvirheiden seinätaulu.

Kuviossa on esitetty löydetyt toiminnallisuusvirheet.
KUVIO 3. Toiminnallisuusvirheiden Padlet-seinätaulu. Kuvio avautuu isommaksi klikkaamalla.

TIKO-silta-hankkeen näkökulmasta erityisesti kampuksella tapahtunut testaustuokio nähtiin varsin onnistuneeksi, ja siitä saatiin myönteistä palautetta sekä lukio-opiskelijoilta että heidän opettajaltaan. Lukiolaisille välittyi testaukseen osallistumisen myötä konkreettista kuvaa tietojenkäsittelyalan työtehtävistä, ja pilotointi osoitti myös, että lukio-opiskelijat kykenevät hyvin ohjeistettuina tuottamaan korkeakoulujen hanketoimintaan aitoa lisäarvoa. Olisi siis toivottavaa, että vastaavanlaisia tapahtumia voitaisiin järjestää jatkossakin osana tietojenkäsittelyn koulutuksen ja lukioiden välistä yhteistyötä.

Touko-kesäkuussa 2022 Ympäristökioski-sovellusta testattiin myös tietojenkäsittelyn koulutusohjelman Ohjelmistotestausprojekti-opintojaksolla. Myös tähän projektiin sisältyi toiminnallisuuden ja käytettävyyden testausta siten, että testaus keskittyi älypuhelimien selaimilla testaamiseen.

Testaaminen tapahtui täysin mobiilisovelluksen käyttöliittymän puolella. Ohjelmakoodia ei tarvinnut tuntea, vaan käytettävyyttä ja toiminnallisuutta testattiin loppukäyttäjän näkökulmasta. Kehittäjätiimin ulkopuolelta tulleena sovellusta katsoo tuorein silmin. Testaus aloitettiinkin tutkivan testauksen hengessä tutustumalla sovelluksen käyttöön ja kokeilemalla sen eri toimintoja.

Uutena käyttäjänä huomaa ensiksi käyttöliittymän ulkoasuun ja käytettävyyteen liittyvät ongelmat. Myös eri selainten välillä tuli esiin eroja, esimerkiksi elementtien väreissä tai niiden asemoitumisessa. Kuviossa 4 näkyy valintapainikkeen väriero kolmessa selaimessa. Auringonkukka on osa testausta: testaushetkellä tässä kohtaa ei ollut vielä syötteiden tarkistusta, vaan ryhmän nimeksi saattoi antaa vaikkapa sekalaisen merkkijonon tai kukkaemojin.

Kuviossa näkymät lohkojen valinnasta kolmella eri selaimella: Chromella, Firefoxilla ja Edgellä.
KUVIO 4. Ympäristökioskin testausta eri selaimilla. Kuvio avautuu isommaksi klikkaamalla.

Ohjelmistotestausprojektin jälkipuoliskolla käytössä oli valmis 24:n testijoukon listaus. Valmiiden testitapausten avulla löydettiin etenkin toiminnallisia virheitä, kun taas käyttöliittymän ja käytettävyyden osalta enää vähemmän – sovellukselle oli nopeasti sokeutunut. Esimerkki toiminnallisesta virheestä on sovelluksen takaisinohjautuminen aloitussivulle, kun maatilan tietoja yrittää tuoda virheellisestä tiedostosta (kuvio 5). Siirtyminen ei toiminut, vaan käyttäjä pystyi ikään kuin jatkamaan sovelluksen käyttöä ilman tuotuja tiloja, ja pääsi etenemään seuraavaan eli Lohkot-näkymään. Sen sijaan sovelluksen olisi tullut ohjautua takaisin samaan Koti-näkymään, josta lähdettiinkin, ja jossa käyttäjän täytyy ensin valita lohkojen tuontitapa.

Kuvakaappaus Ympäristökioski-sovelluksesta.
KUVIO 5. Esimerkki toiminnallisesta virheestä.

Osa testijoukoista liittyi juuri kehitystyön alla oleviin sovelluksen osiin, joten niitä ei käyty läpi. Ohjelmistotestausprojektiin otettiin 409 testitapauksen joukosta 173 tapausta (kuvio 6). Näistä hyväksytysti läpi menneitä oli 125. Odotusarvosta poikkeavan eli virheellisen lopputuleman antoi 17 testitapausta. Testaamatta jäi 31 tapausta. Niitä ei joko ollut mielekästä suorittaa toistuvan virheen vuoksi, tai niitä ei onnistuttu suorittamaan, esimerkiksi kun testauksessa käytetyn älypuhelimen numeronäppäimistössä ei ollut tarvittavia merkkejä.

Kuviossa tulosjakauma.
KUVIO 6. Valittujen testijoukkojen tulosjakauma.

Käytettävyys- ja käyttöliittymävirheet mukaan luettuina Ympäristökioski-sovelluksesta löytyi yhteensä 25 uniikkia virhettä tai huomautusta. Tulokset raportoitiin kattavasti, jotta niistä olisi kehittäjille mahdollisimman paljon apua. Virheilmoituksista tai virheellisistä näkymistä otettiin kuvakaappaukset tai näytön tallennukset. Lisäksi valmiiden testitapausten osalta hyväksytty tai hylätty tulos huomautuksineen merkittiin suoraan Excel-työkirjaan. Testauksessa yllätti se, kuinka verrattain lyhyessä ajassa saatiin niinkin paljon tietoa siitä, mikä sovelluksessa jo toimi hyvin, ja mikä kaipasi kehittämistä.

Kaikki testaukset onnistuivat ja osoittautuivat hyödyllisiksi sovelluksen jatkokehittämisen kannalta. Kun sovellusta kehittää pitkään, tulee helposti sokeaksi omille virheille ja on mahdollista, että myös ajattelu urautuu ja kapeutuu. Hankkeen ulkopuolelta tulevat testaajat, jotka eivät ole aikaisemmin nähneet sovellusta, ovat sen vuoksi hyvin arvokkaita.

Ohjelmistotestauksesta autenttisia työaiheita opiskelijoille

Alasta riippumatta hankkeiden tehtäviin sisältyy usein ohjelmistokehitystä. Viljelijöiden ja heidän neuvojien käyttöön tarkoitettu Ympäristökioski-sovellus on esimerkki ohjelmistosta, jota kehitetään luonnonvara-alan hankkeessa. Keskeinen osa ohjelmistokehitystä on ohjelmistotestaus, joka tarjoaa paljon mahdollisuuksia sekä oppilaitosten hanketyöhön että työelämäyhteistyöhön. Eri kouluasteiden opiskelijoille hankkeissa kehitettävien ohjelmistojen testaus mahdollistaa autenttiset työaiheet. Sama pätee myös työelämästä saatuihin ohjelmistotestausta sisältäviin toimeksiantoihin.


Pekka Ojala
lehtori
Oulun ammattikorkeakoulu, Informaatiotekniikan yksikkö, tietojenkäsittely

Matti Viitala
lehtori
Oulun ammattikorkeakoulu, Informaatiotekniikan yksikkö, tietojenkäsittely

Helinä Marttila
opiskelija
Oulun ammattikorkeakoulu, Informaatiotekniikan yksikkö, tietojenkäsittely



Kaikki TIKO-silta-hankkeen julkaisut Oamk Journalissa

Kaikki Ympäristöviisas viljelijä -hankkeen julkaisut Oamk Journalissa


Lähteet

[1] ProAgria Oulu. Maa- ja kotitalousnaiset Oulu. 2022. Ympäristöviisas viljelijä -hankkeen verkkosivut. Hakupäivä 18.8.2022. https://www.proagriaoulu.fi/fi/ymparistoviisas-viljelija/

[2] Alatalo, A., Käyhkö, V. & Ojala, P. 2022. Ympäristökioski-sovellus kutsuu viljelijää suunnittelemaan ympäristövastuullisia toimenpiteitä. Oamk Journal 130/2022. Hakupäivä 31.8.2022. http://urn.fi/urn:nbn:fi-fe2022082956610

[3] Oulun ammattikorkeakoulu. 2022. TIKO-silta-hankkeen verkkosivut. Hakupäivä 12.8.2022. https://oamk.fi/tikosilta

[4] Hamilton, T. 2022. What is Software Testing? Definition, Basics & Types in Software Engineering. Guru99. Hakupäivä 18.8.2022. https://www.guru99.com/software-testing-introduction-importance.html

[5] Global App Testing. 2022. Best Practices for Agile Testing. Hakupäivä 18.8.2022. https://www.globalapptesting.com/the-ultimate-guide-to-agile-testing

[6] Hamilton, T. 2022. Levels of Testing in Software Testing. Guru99. Hakupäivä 18.8.2022. https://www.guru99.com/levels-of-testing.html

[7] ArtOfTesting. 2021. Types of Testing | Software Testing Types Every QA Should Know. Hakupäivä 18.8.2022. https://artoftesting.com/types-of-testing

[8] Parmar, D. 2022. Exploratory Testing. Atlassian. Hakupäivä 18.8.2022. https://www.atlassian.com/continuous-delivery/software-testing/exploratory-testing