Näytä minulle hyvä testitapaus

Testitapaukset ovat yleensä paskoja. Ne on suunniteltu huonosti ja ne on kirjoitettu auki vielä huonommin!

Jos et usko väitettäni, niin kokeile itse:

Laadi 100 testitapausta ja tee kolmelle eri testaajalle samanlainen toimeksianto niiden ajamisesta.

Kaikki kolme testauskierrosta tuottavat erittäin suurella todennäköisyydellä erilaiset tulokset. Niiden ajaminen vie jokaiselta testaajalta eri ajan ja testien läpäisyprosenttikin eroaa kaikissa. Veikkaisin vielä että raportoitujen virheiden määrä jokaisella testaajalla on eri.

Kun asiaa pysähtyy hetkeksi ajattelemaan syykin on selvä. Testien laatija on liian usein eri henkilö kuin testien ajaja. Vaara piilee siinä että testien kirjoittajista oikeasti vain pieni osa on hyviä ohjelmoimaan ihmisten käyttäytymistä. Testitapausten kuvaukset harvoin onnistuvat luomaan jokaiselle lukijalle saman kuvan testin tavoitteista, taustoista ja suoritustavoista.

Tarkkojen testitapausten suunnittelu onkin tästä nimenomaisesta syystä erittäin riskialtista puuha. Testitapausten tarkkaa speksaamista perustellaan usein hyvän ja vertailukelpoisen historiatiedon keräämisellä erityisesti regressiotyyppisestä testauksesta. Kuitenkin testejä ajavat henkilöt vaihtuvat usein ja siten muuttuvat myös testitulokset. Perinteisessä speksipohjaisessa testausprosessissa palaakin hurjat määrät työaikaa testitulosten tarkistamiseen ja normalisointiin.

Se voi olla järkevää ajan käyttöä ainoastaan silloin kun projektin laskutusperiaate on tuntipohjainen ja työn maksajalla on pohjaton kassa.

Siksi suosittelenkin pohtimaan erikseen jokaisen projektin kohdalla edellä mainittua ongelmaa. Ratkaisu voi löytyä esimerkiksi näin:

  1. Jokainen testaaja ajaa vain itse suunnittelemiaan testitapauksia. Itse laaditut proseduurit yleensä onnistutaan ymmärtämään oikein. Näin säästetaan aikaa testitulosten tarkastamisesta ja normalisoinnista.
  2. Luovutaan testitapausten liian tarkasta laatimisesta. Siirrytään testitapausten kuvauksissa käyttämään vaikkapa tarkistuslistoja tai tutustutaan säikeistettyyn prosessimalliin. Näin säästyy aikaa paitsi testitulosten tarkastuksesta ja normalisoinnista, myös testispeksausesta, katselmoinneista.

Hassua. Yhtäkkiä en osaakaan kertoa mikä on hyvä testitapaus. Osaatko sinä?