Testiautomaation tehostaminen tekoälyllä vaatii uudenlaista ajattelua – ongelma ei ole työkalut vaan prosessit

Tekoälystä ja testiautomaatiosta puhuttaessa keskustelu kääntyy kahteen suuntaan: joko generoidaan testejä automaattisesti, tai "testit korjaavat itsensä". Molemmissa piilee ongelma.

Annamme kielimallille tehtävän ilman tarkkoja sääntöjä. Se improvisoi, koska yhtä oikeaa tapaa ei ole kerrottu. Lopputulos: lisää kaaosta. Syy ei ole kielimallissa vaan prosessissa, joka sallii monta tapaa tehdä sama asia.

Ongelma ei ole teknologia vaan ajattelutapa
Ydin ei ole se, pystyykö tekoäly generoimaan testejä. Se on siinä, että yritämme sovittaa tekoälyä olemassa oleviin työtapoihin, jotka on suunniteltu ihmisille ja ihmisten joustavuudelle. Satakertainen parannus ei synny automatisoimalla olemassa olevaa prosessia. Se syntyy rakentamalla prosessi, joka on alusta alkaen suunniteltu toimimaan kielimallien kanssa. Tämä vaatii ajattelutavan muutoksen: pitää luopua joustavuudesta ja määritellä yksi tarkka tapa tehdä asia.


Konkreettinen esimerkki: Hierarkkiset muuttujat
Luon kielimalleilla hierarkkisesti rakennettuja muuttujia: Robot Framework -skripti ottaa kuvakaappauksen ja kopioi elementtien HTML-koodin logiin. Data syötetään kielimallille, joka tuottaa muuttujat ID:ineen ja dokumentaation. Aiemmin kopioin elementtien ID:t käsin, kirjoitin muuttujat, ja lopputuloksessa oli usein kirjoitusvirheitä. Kirjaan noin 8 muuttuja/Id paria 5 minuutissa. Kielimalli tuottaa 100 paria 20 sekunnissa – yhtenäisellä rakenteella, valmiine dokumentaatioineen. Lähes 200-kertainen parannus. Tämä onnistuu koska jokaisessa vaiheessa on selkeät säännöt. Muuttujien rakenne on määritelty tarkasti:


${<system_name>_<page_name>_(<optional_tab>_<optional_sub_tab>_<optional_view>)_<element_type>_<element_name>}


Rakenteesta näkee heti elementin sijainnin ja toiminnon. Rakenne kertoo mitä avainsanaa voidaan käyttää ja tämä mahdollistaa yhtenäisten testiskriptien tuottamisen automatisoinnin.


Yksi tapa voittaa monta hyvää tapaa
Ohjelmistokehityksessä arvostetaan joustavuutta. On hyviä käytäntöjä – huomaa monikkomuoto. Kokenut kehittäjä osaa valita tilanteeseen sopivan lähestymistavan. Kielimallien kanssa tämä joustavuus muuttuu ongelmaksi. Se ei osaa valita "tilanteeseen sopivaa" tapaa kuten ihminen. Tarvitaan selkeä sääntö. Tästä on lisähyötyä: kun määrittelet yhden tavan tehdä asioita, järjestelmä on helpompi ymmärtää. Yhtenäisyys vähentää kognitiivista kuormaa. Kun työnkulusta voi tulla vain yksi lopputulos, hallusinoinnit ja virheet erottuvat selkeästi poikkeavuuksina – eivät "vain erilaisina tapoina."


Selkeä prosessi mahdollistaa pienet mallit
Käytän työnantajani hyväksymänä työkaluna MS Co-pilottia. Mutta koska tehtävä on tarkasti määritelty, huomattavasti pienempikin malli – vaikka 4 miljardin parametrin VLM – pystyisi samaan ja toimisi paikallisesti. Kun prosessi on johdonmukainen ja osavaiheet riittävän pieniä ja tarkkoja, et tarvitse satojen miljardien parametrien pilvipalvelua. Koko järjestelmä voi pyöriä paikallisesti. Ei tietoturvahuolia eikä arkaluontoista dataa ulkoisissa palveluissa. Kun jokaisesta askeleesta voi tulla vain yksi lopputulos, työnkulusta tulee toistettava, skaalautuva ja ylläpidettävä. Tämä ei tarkoita jäykkää prosessia – se tarkoittaa selkeää prosessia. Prosessia, joka ei hajoa henkilön vaihtuessa eikä vaadi hiljaista tietoa.


Miten pääset alkuun
Tunnista yksi toistuva tehtävä, jonka haluaisit automatisoida. Kirjaa päätökset. Kysy: sääntö vai mieltymys? Muotoile prosessi niin, että jokaisessa vaiheessa on vain yksi oikea tulos. Testaa kielimallilla. Jos tulos vaihtelee, säännöt eivät ole vielä tarpeeksi tarkkoja. Kun tulos on johdonmukainen, sinulla on uudelleenkäytettävä prosessi. Sitten voit miettiä: voisiko tämä toimia pienemmällä, paikallisella mallilla?


Kysy itseltäsi oikea kysymys
Älä kysy, miten kielimalli voi nopeuttaa nykyistä työtäsi. Kysy, millaisen työnkulun rakentaisit, jos käsityö ei olisi este. Mieti omassa kontekstissasi:


Mitkä ovat ne toistuvuudet, jotka voisi standardoida?

Missä "hyvät käytännöt" aiheuttavat epäjohdonmukaisuutta?

Mitkä dokumentaatiot jäävät tekemättä, koska ne vaativat liikaa käsityötä?

Missä hiljainen tieto katoaa, kun henkilö vaihtuu?


30 % nopeutus on "ihan kiva". Mutta kun suunnittelet työnkulun alusta niin, että jokaisella vaiheella on yksi lopputulos, voit saavuttaa satakertaisen parannuksen.


Kirjoittaja
Ari Laitinen
OP Pohjola

Tekoälyrobotit tulevat ohjelmistotestaukseen
Tekoälypohjaiset ohjelmistorobotit yleistyvät testauksessa. Kyseessä on teknologia, jossa tekoäly tekee huomioita testattavasta ohjelmistosta itsenäisesti. AutoExplore edustaa tätä lähestymistapaa. Sen tehtävä ei ole suorittaa valmiiksi kirjoitettuja testitapauksia, vaan etsiä sovelluksesta virheitä ja puutteita tutkimalla ohjelmistoa.