Piirroksessa on tietokoneen näyttö, jossa kolme ötökkää, bugia. Niistä keskimmäinen näkyy isona suurennuslasin läpi tarkasteltuna. Kuva: testbytes, Pixabay.

Miten laadunvarmistusta opetetaan ohjelmistoyritysten tulevaisuuden työntekijöille?

02.06.2021

Laadunhallinta on olennainen osa tietotekniikkaan ja ohjelmistoihin liittyvää liiketoimintaa. Laadunhallinta on työtä, jolla pyritään estämään ja ennaltaehkäisemään ohjelmistoissa esiintyviä vikoja.

Kuvassa Tutkitun tiedon teemavuoden 2021 logo (keltainen ympyrä, jossa mustalla teksti: Tutkitun tiedon teemavuosi, valkoisella vuosiluku 2021.Useimmiten tietotekniikan ja ohjelmistojen laatu näyttäytyy, ainakin käyttäjille, vain negatiivisessa merkityksessä: toimimattomat ohjelmat, kaatuilu, hitaus tai jopa kyberhyökkäyksille altistuminen. Ohjelmistojen laatutyö on tyypillisesti kallista ja näkymätöntä, kunnes odottamattomia ongelmia ilmenee. Toimivia ja laadukkaita ohjelmistoja taas emme juuri tule huomanneeksi.

Onnistuneesti toteutettuna ohjelmiston laatutyö takaa toimivan, turvallisen ja käyttäjäystävällisen lopputuotteen. Ohjelmistojen laadunhallintaan kannattaa siis panostaa, ja tätä haluamme myös opettaa IT- ja ohjelmistoalan opiskelijoille. Laatutekijät eivät kuitenkaan ole yksiselitteisiä, eikä laadukkaan ohjelmiston tekemistä itsessään voi opettaa. Miten ohjelmistojen laatua, laadunvarmistusta, ja ohjelmistojen testausta voidaan siis opettaa?

Ohjelmistojen laadunhallinta yrityksissä nojaa vahvasti automaattisen ohjelmistotestauksen menetelmiin. Yritykset hyödyntävät erilaisia työkaluja, jotka mahdollistavat muun muassa testauksen automaation, testausympäristön hallinnan ja datan keräämisen, yksikkötestauksen, virtuaaliset testausympäristöt sekä virheenjäljityksen.

Erilaisten käytettyjen menetelmien kirjo on valtava, ja se vaihtelee sekä yrityksestä että käytetystä sovelluskehityksen ympäristöstä johtuen. Yksi opetuksen haasteista onkin, miten koulutuksessa käytettyjen työkalujen osaaminen siirretään myöhemmin työelämässä käytettyjen työkalujen hallintaan.

Automaatio helpottaa ohjelmistokehittäjän päivittäistä työtä, mutta päätöksiä se ei pysty tekemään.

Eräs ohjelmistojen laadunhallinnan trendi erilaisten työkalujen yleistymisen myötä on ollut jatkuvasti kasvava automaation käyttö. Ihmisen tekemät laadunhallintaprosessit ovat tasaisesti menettäneet suosiotaan. Tässä on toinen laadunhallinnan koulutuksen haasteista: automaatio helpottaa ohjelmistokehittäjän päivittäistä työtä, mutta päätöksiä se ei pysty tekemään.

Manuaaliset prosessit ovat kuitenkin tärkeitä: vaikka 90 % laadunhallintatyöstä tapahtuisi automaattisesti, jäljelle jäävän 10 % kohdalla on entistä tärkeämpää, että niitä on suorittamassa osaava työntekijä. Toki tulevaisuudessa työkalut ottavat varmasti käyttöön tekoälyä ja sen luomia mahdollisuuksia nostaa automaation astetta laadunhallintatyössä, mutta automaatio tuskin pystyy kokonaan korvaamaan ihmistä.

Olemme laatineet näitä haasteita taltuttamaan muutamia periaatteita, joiden avulla opetuksessa voidaan seurata yrityksissä käytettyjä laadunhallinnan ja testauksen periaatteita. Näin ollen kavennetaan kuilua opetuksen ja yritysten käytäntöjen välillä. Periaatteet ovat:

– Sisällytetään kaikista yleisimmät testauksen ja laadunhallinnan opetukseen, koska opiskelijat tulevat törmäämään näihin myöhemmin työelämässä

– Käytetään mieluummin oikeita työkaluja, kuin harjoitteluun tarkoitettuja kevyempiä versioita. Oppimiskäyrä saattaa olla jyrkempi, mutta näin päästään nopeammin kiinni oikeisiin käytäntöihin

– Panostetaan myös manuaalisiin laadunhallinnan prosesseihin ja korostetaan niiden hyödyllisyyttä.

– Jos mahdollista, käytetään useampaa eri työkalua samaan tarkoitukseen. Näin ei lukkiuduta tiettyyn työkaluun ja toimintatapaan.

Oikeat, yrityksissä seurattavat käytännöt ja toimintaperiaatteet antavat opiskelijalle mahdollisuuden miettiä asioita myös laajemmassa perspektiivissä. Laajempi tarkastelu edistää sekä substanssiosaamista että kriittisen ajattelun ja ongelmanratkaisun taitoja.

Kirjoitus perustuu Hynnisen julkaisemiin tieteellisiin artikkeleihin osana väitöskirjatutkimusta. Tutkimuksen aihe on ohjelmistojen laadunhallinnan ja testauksen käytännöt yrityksissä.

Lähteet:

Hynninen, T., Kasurinen, J., Knutas, A., & Taipale, O. (2018, May). Software testing: Survey of the industry practices. In 2018 41st International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO) (pp. 1449-1454). IEEE.

Hynninen, T., Kasurinen, J., Knutas, A., & Taipale, O. (2018, July). Guidelines for software testing education objectives from industry practices with a constructive alignment approach. In Proceedings of the 23rd Annual ACM Conference on Innovation and Technology in Computer Science Education (pp. 278-283).

Hynninen, T., Kasurinen, J., & Taipale, O. (2018). Framework for observing the maintenance needs, runtime metrics and the overall quality-in-use. Journal of Software Engineering and Applications, 11(4), 139-152.

Savchenko, D., Hynninen, T., Taipale, O., Smolander, K., & Kasurinen, J. (2020). EARLY WARNING SYSTEM FOR SOFTWARE QUALITY ISSUES USING MAINTENANCE METRICS. International Journal on Information Technologies & Security, 12(4).

Hynninen, T., Knutas, A., & Kasurinen, J. (2019, May). Designing Early Testing Course Curricula with Activities Matching the V-Model Phases. In 2019 42nd International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO) (pp. 1593-1598). IEEE.

Kirjoittanut Timo Hynninen

Kirjoittaja on tietotekniikan lehtori ja ohjelmistotekniikan koulutusvastaava Kaakkois-Suomen ammattikorkeakoulussa.