maanantai 11. toukokuuta 2009

Testaustaitojen hiominen automaatiota harkitessa

Toistuvasti monien testaajien kanssa jutellessani huomaan omaavani jossain määrin erilaisen tavan ajatella regressiotestausta ja regressiotestauksen automatisoinnin tarvetta. Minulle ei ole itsestään selvää että pitäisi olla perusregressiotestisetti, jota ajetaan kerta toisensa jälkeen.

Asiaa pohdittuani olen päätynyt siihen, että merkittävä näkemysero on syntynyt sisäsyntyisestä tarpeestani tehdä hyvää testausta olemalla motivoitunut testaustyöhön. Jos suostuisin itselleni myöntämään että on olemassa testaustyyppi, jossa samojen askelten toistaminen ilman itselleen annettavia perusteita muutoksesta on olemassa, kokisin sen työn tekemisen lähinnä häiritsevänä. Sen sijaan ajattelen regressiotestausta älyllisesti vielä monimutkaisempana optimointihaasteena.

Jokainen rikkoutuminen ohjelmistoille tapahtuu syystä. Emme aina ymmärrä ja näe näitä syitä, mutta se ei ole syy olla yrittämättä ymmärtää ja korvata ymmärtämättömyyttä aivottomalla toistolla. Koska syy on jonkinlainen muutos, minä en koe toistavani samaa testiä, vaan etsin uutta tietoa.

Tästä ajattelumallista seuraa ainakin minulle tarve oppia ja kehittää testauksellisia taitojani, etten päädy tekemään asioita liikaa varmuuden vuoksi. Eräs loistava harjoitus minulle ainakin on ollut yrittää tunnistaa asioita joita testaan "kun ne nyt vaan pitää testata" ja alkaa seuraamaan oletuksieni todenperäisyyttä. Kaivan omia muistilokeroitani, kyselen kolleegoilta ja luen virheraporttikannasta todistusaineistoa siitä että on perusteltua tehdä juuri tämä temppu jatkuvasti. Jos en onnistu syitä löytämään, kokeilen varovasti ja tarkoituksella jättää tempun tekemättä kerran - ja seuraan mitä tapahtuu. Palaan ehkä temppuun vielä jossain vaiheessa, ajoituksen itse tarkkaan miettien. Tarkoitukseni on aktiivisesti löytää asioita joita en sitten ehkä kuitenkaan lähtisi testaamaan.

On vaikeaa oppia irti vinoumista, joihin on kasvanut. Olen itse aloittanut testaushommat lokalisointitestauksen parissa, ja vasta vuosia sen jälkeen tajusin että yksi iso oppi oli puolivahingossa syöpynyt lähes selkärankaani. Uskoin vakaasti alkuaikojen kokemusteni perusteella, että eri kieliset windows-käyttöjärjestelmät ovat merkittävässä määrin erilaisia niiden päällä toimivan ohjelmiston kannalta. Tämä usko sai minut vuosia toistamaan testejä suomen- ja englanninkielisissä käyttöjärjestelmissä ilman merkittäviä tuloksia. Oppi piti toki paikkaansa varsin suuressakin määrin alkuaikojeni softalle ja silloisille käyttöjärjestelmille, mutta testauksen onneksi maailma - ja käyttöjärjestelmien toteutustapa - muuttuu. Niilläkin tunneilla olisin voinut löytää jotain tärkeää ja merkittävää - ja löydänkin, tulevaisuudessa.

Tämä pohdinta tulee minulle usein esiin automaation kanssa. Ei ole itsestään selvää että usein käsin toistettava testi kannattaa automatisoida. Jos sillä ei ole koskaan (oletettavasti) saavutettavissa tuloksia käsin, miksi automaatio, joka on askelta ihmistä tyhmempi, tuottaisi erinomaisia tuloksia?

Automaatiolla on paikkansa. Kun se paikalleen laitetaan, sitä tarvitsee ylläpitää ja käyttää, ja sen tuloksia analysoida. Kun tekemistä on muutenkin paljon, voisi kannattaa ensin päättää / miettiä mitä jättää tekemättä. Etenkin kun kaikkea testausta / testauksen automatisointia ei tarvitse tehdä "testaajan näkökulmasta" vaan toteuttajilla on kyvykkyys itsekin löytää monia virheitä ohjelmistoistaan.

Ei kommentteja:

Lähetä kommentti

Huomaa: vain tämän blogin jäsen voi lisätä kommentin.

Lukijat

Osallistujat