Kari Kakkonen on tunnettu ohjelmistotestauksen ammattilainen ja kouluttaja. Hänen joulukuussa ilmestynyt kirjansa Dragons out! on uudenlainen aluevaltaus: lapsille suunnattu johdanto ohjelmistojen testaukseen. Kakkonen kertoi MAL-lehdelle kirjastaan ja sen taustasta.
Ohjelmistojen tuotannossa niiden testaus vaatii tyypillisesti 25–50 % kokonaistyömäärästä. Testaus muodostaa siis tietotekniikan ammattityöstä huomattavan suuren ja välttämättömän osan, jonka käsitteisiin ja menetelmiin on hyvä tutustua samalla kuin ohjelmistojen rakentamiseenkin. Kakkonen kertoi, että vaikka tietojenkäsittely ei ole itsenäinen oppiaine kouluissa, niissä opiskellaan ohjelmointia ja tietotekniikkaa varsin laajasti erityisesti kerhojen muodossa yläasteelta lukioon, jossain määrin jo neljänneltä luokalta alkaen. Ilmiöoppimisen puitteissa ohjelmistoihin on tutustuttu muun muassa yhdistettynä äidinkielen opetukseen, ja monet lapset ja nuoret ovat olleet todella innostuneita.
Kun opettaja välittää yleiskuvaa siitä, miten ohjelmistot syntyvät, on tosiaan aiheellista nostaa esiin myös testaus omana aktiviteettinaan. Jokainen pienenkin ohjelman laatinut on joutunut ihmettelemään, miksi se ei heti toimi aiotulla tavalla, ja etsimään siitä virheitä. Niiden äkkääminen on usein vaikeaa. Ammattimaisessa ohjelmistotuotannossa testauksen organisointi on merkittävä kysymys. Ennen isompien ohjelmistojen testaus annettiin erillisille osastoille, mutta nykyään suositaan ketterää toimintatapaa, jossa testaus on integroitu suunnittelun ja koodaamisen yhteyteen. Testauksessa havaitun virheellisen toiminnan syitä kyetään näin nopeammin etsimään koodin sisältä. Käytettävyystestauksessa tarvitaan lisäksi kyseisen ohjelmiston loppukäyttäjien edustajia.
Kakkosen kirjassa ei mainita ohimennenkään mitään ohjelmointikieltä eikä tarkastella konkreettisia esimerkkejä ohjelmistoista. Näin vältetään teknisten esitietojen tarve – riittää, että lukija ymmärtää ohjelmiston käsitteen yleisellä tasolla. Sen, että ohjelmisto on ihmisten tekemä ihmisten käyttöön, hän ymmärtää viimeistään kirjan opiskeltuaan.
Kirjassa esitellään peräti kolmetoista vikatyyppiä kukin omassa luvussaan: muistivuoto, isohko toiminnallisuusvika, pikkuvika, tietoturvavika, suorituskykyvika, käytettävyysvika, näkyvä mutta harmiton toiminnallisuusvika, laitteistovika, testausvika ja viankylväminen, versionhallintavika, pieni mutta hankala toiminnallisuusvika, dokumentaatiovika sekä tosi paha toiminnallisuusvika. Näiden havainnollistamiseen esimerkeillä riittää pari läpi kirjan mainittua sovellusta, lähinnä verkkokauppa ja nykyaikaisen auton toimintaan kätketty ohjelmisto.

Adrienn Széllin kuvitusta kirjaan: kaksipäinen harmaa lohikäärme, eli tosi paha toiminnallisuusvika. Sen karkottamiseen osallistuu kiltti vihreä lohikäärme, eli vikojen etsinnässä käytetty ohjelmaan tahallisesti kylvetty vika.
Kakkosen uusi ja omintakeinen idea on ohjelmistotestauksen oppaan lomittaminen seikkailusatukirjan kanssa. Satumaailma elää ritariaikaa, ja nuoret päähenkilöt auttavat kyliä ja kaupunkeja löytämään ja voittamaan niitä kiusaavia erilaisia ja eri tavoin toimivia lohikäärmeitä. Lopussa heidät valitaan ritarikoulun uusiksi oppilaiksi. Satu on itsenäinen kokonaisuus eikä viittaa oppikirjatekstiin, mutta sen väleihin on sijoitettu tietolaatikoita, joissa selitetään, millä tavoin seikkailujen tilanteet, ihmishahmot ja lohikäärmeet kuvaavat ohjelmistotuotannon ja erityisesti testauksen ilmiöitä ja toimijoita.
Lohikäärmeiden värit, luonteenpiirteet ja toimintatavat vastaavat hauskasti erilaisten vikojen havaittavuutta ja vakavuutta. Esimerkiksi tietoturvavikaa esittävä lohikäärme on musta, koska vihamieliset hyökkääjät ovat tietoturvatestauksen maailmassa nimeltään mustia hattuja (black hat). Yksityiskohdissaan eivät kolmentoista lohikäärmeen juonet vastaa yhtä monen vikatyypin ilmenemis- ja käyttäytymistapoja, mutta paikoitellen jopa tämä on onnistunut. Niinpä laitteistovikaa edustaa maanalaisissa käytävissään piilotteleva ja sieltä käsin silloin tällöin kolttosiaan tekevä ruskea lohikäärme.
Ritarit edustavat erityisesti ohjelmistotestaajia, mutta myös muita ohjelmistotuotannon ammattilaisia, vastaten näiden aktiviteettien integroitumista. Henkilögalleriassa on mukana myös vanhoja tietäjiä, ohjelmistojen tilaajia edustavia linnanherroja ja -rouvia ynnä muita. Kussakin luvussa satujaksoa seuraa satuilematta kirjoitettu kuvaus kyseisestä vikatyypistä, lapsille soveltuvia harjoitustehtäviä sekä tarinan juonen motivoima peli, usein ruutupaperilla pelattava.
Läpinäkyvän kokonaisrakenteen ja tarinoiden hyvän hengen ansiosta luin kirjan kiinnostuneena lähes yhtä soittoa läpi ja tunsin saaneeni yllättävän eloisan ja rikkaan kuvan usein liian epämääräiselle huomiolle jäävästä ohjelmistotyön osasta, ja aavistuksen sen ritarien ja tietäjien kaikille tuottamasta hyvästä. On helppo uskoa, että kirjan oppimispsykologinen idea toimii myös sen nuoremmilla lukijoilla.
Kari Kakkonen: Dragons out! Lohikäärmeistä, ritareista ja ohjelmistotestauksesta. Avain 2020. www.dragonsout.com.
Ilkka Norros