Kolmivuotinen IVVES-tutkimusprojekti tekoälyn käytöstä testauksessa ja testauksen kohteena on tulossa päätökseen. Ratkaisuja ja tehostuksia testauksen osatehtäviin sopii odottaa tulevaisuudelta, onhan ohjelmistoalan kasvun mahdollistamiseksi tarve löytää tuottavuuden ja mittakaavan kasvattamisen mahdollistavia keinoja.
Olisipa meillä lista kaikista niistä puutteista ja virheistä, jotka vaivaavat tuottamiamme järjestelmiä, niin voisimme korjata niistä ainakin tärkeimmät. Tavallaan meillä onkin: käyttäjät kompastelevat monenlaisiin puutteisiin eivätkä saa viimeisteltyä – joskus jopa aloitettua – ohjelmistoilla tuettua toimintaansa, ja pieni joukko heistä asiasta mainitsee. Vuosikymmeniä sitten markkinointitutkimuksissa päädyttiin toteamaan, että yksi kymmenestä virheestä päätyy valitukseksi. Tänä päivänä voi olla, että päästäkseen tälle tasolle tiedon keräystapa saa olla muodikkaasti monikanavainen. Listan puuttuessa rakennamme sitä itse – testaamalla. Testauksen tarkoituksena on tuottaa tietoa, johon haluamme reagoida, ja mieluummin ajoissa.
Kokonaisuutena testaus ei vielä ole ratkaistu, ja ohjelmistoalan uudet tuulet saavat pohtimaan muutostarpeita. Tekoäly testauksessa merkittäville järjestelmäkokonaisuuksille sekä tekoälyä sisältävät järjestelmät olivat vuoden 2019 lopulla teema, jonka selvittelyyn kerättiin kotimaista joukkoa Helsingin yliopiston professori Jukka K. Nurmisen johdolla. Projekti tunnetaan nimellä IVVES (https://ivves.eu) – Industrial Grade Verification and Validation of Evolving Systems – ja se lähestyy kolmivuotisen tutkimuskauden loppua. Projektissa mukana on viisi maata ja 26 tutkimuskumppania.
Testauksen tarkoituksena on tuottaa tietoa,
johon haluamme reagoida, ja mieluummin
ajoissa.
Oma panokseni projektiin rajoittuu projektin aloitukseen silloisen työnantajani palveluksessa, sekä tuntemaani kansallisylpeyteen siitä, kuinka hienoa tutkimusta testauksen saralla Suomessa tehdään yliopistojen ja yritysten yhteistyönä. Tutkimusprojektin aloitus ohjasi omalta osaltaan tutustumaan tekoälyn kenttään testauksessa. Se yhdistettynä mahdollisuuksiin kuunnella erilaisia kansainvälisissä konferensseissa tarjolla olevia esityksiä antaa mahdollisuuden avata oppeja tutkimusprojektin hengessä, joskaan ei sen osana.
Uusia ongelmakohtia testauksessa ovat ainakin tuottavuuden kasvutarve – ihmisiä ei voi lisätä alalle rajattomasti – sekä osaamisen kasvutarve: perusosaaminen projekteissa on yhä laajempialaista ja tarvitsee työkalutukea.
Tekoäly? Mitä ihmettä?
Tutkimuksen puolelta löytyy tarkkoja määritelmiä, mutta arkipäivän pohdinnoissa minua on auttanut hyvinkin yksinkertainen määritelmä siitä, mitä tekoälyllä testauksessa haetaan: ihmisten tekemän päätöksenteon matkimista tehtävää tehdessä. Tehtäviä ja päätöksiä on monenlaisia, testaus ei ole yksi tehtävä vaan ryhmä tehtäviä tiedon tuottamiseen.
Ainakin seuraavia teemoja käsitellään:
Ohjelmistorobotiikka (RPA) eli rutiinitöiden automatisointi
Koneoppiminen (ML) eli päätöksentekoalgoritmeja suurista aineistomassoista
Luonnollisen kielen käsittely (NLP) eli viestinnän merkityksen tulkinta
Konenäkö (computer vision) eli kuvantunnistaminen
Tekoälyä sisältävät ohjelmistojärjestelmät alkavat olla jo arkipäivää. Vaikka kaikki ohjelmistoja työkseen rakentavat eivät niitä vielä ole päätyneet rakentamaan, käyttäjinä niitä kohtaamme jatkuvasti. Asiakaspalvelurobotit käyvät yhä monipuolisempaa keskustelua kanssamme. Elokuvia ei suoratoistopalveluissa pääse katsomaan ilman suosituksia, ja koko viestintäkanavamme perustuu suosituksille personoiduista sisällöistä. Näiden järjestelmien testaaminen on toki hieman erilaista, erityisesti sen osalta, millaisin keinoin tietoa voidaan käyttää korjaamisen tukena kaikkein tehokkaimmin.
Katsaus testauksen tarjolla oleviin tekoälyn sovelluksiin
Jos tekoälyn testausalalla tuomien työkalujen hyödyistä mielii osallisuutta, ensiaskeleena toimii testauksen osittaminen konkreettisiin tehtäviin. Esimerkiksi testauksen automatisointi ei ole konkreettinen tehtävä, sen sijaan testiautomaation ylläpitäminen sovelluksen muuttuessa on. Testauksen automatisoinnin ryhmästä löytyy monenlaisia tekoälyn sovelluksia.
Jonkinlaista alustavaa listaa konkreettisista tehtävistä ja niiden helpottamista hakevista tekoälyn sovelluksista löytyy maailmalta:
Testien osajoukon valinta muutokseen liittyen ja priorisointi nopeaan tärkeimpään palautteeseen
Testidokumentaation generointi: käyttäjätarinasta testitapauksiin osana testauksenhallinnan työkaluja
Oikean toiminnan tunnistaminen sovellusaluekohtaisesti, erityisesti verkkokaupat
Automaation ylläpitämisen vaatima aika, tiedon luokittelu todennäköisiin virheisiin, muutoksiin ja itsensä korjaava automaatio
Palautteen sisältöjen optimointi, oikean tiedon korostaminen massasta
Testiaineiston valinta ja realistisen aineiston tietosuojallinen luominen
Virheen eristäminen ja toistaminen
Erilaiset polut ohjelmassa
Poikkeamien huomaaminen aiemmista tuloksista
Yleisesti vallalla on edelleen illuusio ihmiskäsittelyn objektiivisuudesta, kattavuudesta ja huolellisuudesta, johon erilaisin työkaluin voi saada merkittävää apua. Ihmisten tekemään tiedon muodostukseen liittyy yhtä lailla riskejä päätöksenteon perusteiden virheellisestä valikoimisesta sekä toisaalta henkilökohtaisten vaikuttimien vaikutuksesta päättelyn tuloksiin. Tekoäly ja erityisesti datamassoista oppiminen toki pakottaa meidät tiedostamaan mittakaavassa tasapuolisuudessa olevia vinoumia.
Testauksen muodostuessa tärkeäksi osaksi toimivan ja luotettavan käyttäjäkokemuksen saavuttamista olemme myös oppineet tiedostamaan, että halvan asemasta haetaan toimivaa. Tuloksellisuudella ja kyvyllä skaalata ohjelmistoalaa eteenpäin on suuri merkitys, ja tekoälyn hyödyntäminen osaltaan auttaa meitä siinä.
Teksti: Maaret Pyhäjärvi
Kuva: Max Gruber / Better Images of AI / Banana / Plant / Flask / CC-BY 4.0
Artikkelin kirjoittaja Maaret Pyhäjärvi on kansainvälisesti tunnettu testauksen asiantuntija. Työkseen hän kehittää ja tekee testausta Vaisalassa. Hänet on nostettu Tivi-lehden 100 vaikuttajaa -listalle kolmena peräkkäisenä vuonna 2019–2022. Hän toimii TIVIA ry:n hallituksessa 2022–2023-kaudella.
TIVIA News on TIVIAn jäsenlehti, jonka ensimmäinen numero ilmestyi kesäkuussa 2016. Lehti ilmestyy myös osana painettua Tivi-lehteä.
TIVIA Newsin artikkelit julkaistaan myös digitaalisina versioina TIVIAn verkkosivustolla, jossa ne ovat myös vapaasti luettavissa. Lisäksi TIVIA Newsin digitaalinen näköislehti on vapaasti luettavissa TIVIAn verkkosivustolla.