Maailma on täynnä ohjelmistoja, jotka täyttävät täydellisesti kaikki dokumentoidut vaatimuksensa mutta eivät silti tuota käyttäjilleen arvoa.
Kun opiskelin ohjelmistotuotantoa – kauan sitten – laatu tarkoitti vaatimustenmukaisuutta eli vaatimusten täyttämistä. Opin myös, että laadunvarmistus tarkoittaa kaikkia toimenpiteitä, joilla mahdollistetaan, luodaan ja varmistetaan laatu, ja että testaus on laadunvarmistuksen keskeinen menetelmä.
Nykyään Wikipedia määrittelee testauksen testattavien ohjelmiston artefaktien ja toiminnan tutkimiseksi validoinnin ja verifioinnin avulla. Testaus määritellään toiminnaksi, joten sen tarkoitus jätetään avoimeksi. Insinööriopinnoissa oppimani määritelmät ovat hyvin yhteensopivia Wikipedian vaatimustenmukaisuustestauksen määritelmän kanssa: testaus, jolla selvitetään, täyttääkö prosessi, tuote tai palvelu määrittelyn, teknisen standardin, sopimuksen tai säädöksen vaatimukset. On kummallista, ettei kumpikaan näistä määritelmistä käytä lainkaan sanaa laatu.
Mitä laatu on?
Nykyään vältän kiusausta määritellä laatua suoraan ja tarkastelen sitä sen sijaan neljän ulottuvuuden kautta: hyödyt, toiminnot, prosessi ja kokemus. Ajatellaanpa jotakin kaikille tuttua, vaikkapa PayPalia. Ihmiset käyttävät sitä rahansiirtoihin verkossa; tämä on sen toiminto. He tavoittelevat hyötyinä helppoutta, turvallisuutta ja edullisuutta. PayPalin käyttöön liittyy erilaisia käyttäjän prosesseja, ja ohjelmisto ohjaa käyttäjää niiden läpi. Tunteet, kuten onnellisuus, turhautuminen tai aikaansaamisen tunne, joita käyttäjä kokee PayPalia käyttäessään, muodostavat kokemuksen. Mitä laatu sitten onkin, sitä tuskin voi olla ilman kaikkia näitä neljää ulottuvuutta.
Testauksessa keskitytään yleensä toiminnalliseen vaatimustenmukaisuuteen eli tarkistetaan, että ohjelmisto tekee sen, mitä sen vaatimuksissa määritellään, eikä mitään muuta. Myös ei-toiminnallisia vaatimuksia voi olla, kuten vasteajat, käsiteltävien samanaikaisten tapahtumien määrä ja käyttäjän tietojen turvallisuus. Standardit ja säädökset, kuten SOC2 tai GDPR, tuovat lisävaatimuksia, samoin kuin PayPalin sopimukset luottokorttiyhtiöiden kanssa. Näillä voi olla vain vähän tekemistä ohjelmiston varsinaisten toimintojen ja arvon kanssa, mutta niiden noudattaminen on liiketoimintaan osallistumisen edellytys.
Laatu menee pelkkää vaatimustenmukaisuutta pidemmälle. Molempien saavuttamiseksi tutustu kokoamaamme luetteloon parhaista ohjelmistojen testausalustoista
Ihanteellinen maailma
Erinomaiset testaajat soveltavat sekä vaatimustenmukaisuuteen perustuvaa näkökulmaa, jossa keskitytään vaatimusten täyttämiseen, että tuloksiin perustuvaa näkökulmaa, jossa keskitytään hyötyjen toteutumiseen. Ihanteellisessa maailmassa dokumentoitujen vaatimusten täyttäminen merkitsisi käyttäjän hyötyjen toteutumista, mutta maailma on harvoin ihanteellinen. Vaikka ohjelmisto olisi täydellinen, käyttäjät eivät ole. Hyötyjen toteutuminen riippuu suuresti käyttäjän toiminnasta, ja käyttäjän toiminta riippuu siitä, miten ohjelmisto on vuorovaikutuksessa käyttäjän kanssa ja miten se ohjaa tätä. Nämä puolestaan vaikuttavat koko kokemuksen laatuun. Näitä ohjelmiston ominaisuuksia on vaikea kuvata vaatimustenmukaisuusvaatimuksissa tai muodollisissa testitapauksissa. Jälleen kerran ihanteellisessa maailmassa kaikki nämä haasteet ratkaistaisiin riittävän varhain käyttäjäkeskeisen suunnittelun avulla – mutta maailma on kaukana ihanteellisesta, ja testaajan on toimittava todellisen käyttäjän edustajana.
Vaatimustenmukaisuustestaus ja tulostestaus
Vaatimustenmukaisuustestaus ja tulostestaus edellyttävät erilaisia ajattelutapoja. Vaatimustenmukaisuustestaus on kuin ansojen virittämistä: luetaan vaatimukset, kuvitellaan, mikä voisi mennä pieleen, ja suunnitellaan testiolosuhteet, joissa ohjelmisto todennäköisesti epäonnistuu. Tuloksiin perustuva testaus on enemmänkin uteliaisuuden ilmentymä: ymmärretään, mitä käyttäjän on saatava aikaan, kuvitellaan kaikki, mitä hän saattaisi tehdä, selvitetään, miten ohjelmiston pitäisi reagoida, ja kokeillaan sitä sitten käytännössä.
Vaatimustenmukaisuus on laadun edellytys. Monilla toimialoilla muodollisten vaatimustenmukaisuusvaatimusten täyttäminen on jopa liiketoimintaan osallistumisen edellytys. Vastuuriskejä voidaan myös pienentää laatimalla dokumentoitu todiste siitä, että vaatimustenmukaisuus on testattu asianmukaisesti. Ajattelen, että vaatimustenmukaisuustestaus auttaa vähentämään epäonnistumisen riskiä ja tuloksiin perustuva testaus auttaa parantamaan onnistumisen todennäköisyyttä.



