Ohjelmistotestaus ja laadunvarmistus
01 — Ongelma:
Laadunvarmistus on ohjelmistokehityksen kriittinen tukipilari. Yksikään kaupallinen digitaalinen palvelu ei voi menestyä, jos sen käyttökokemuksessa on puutteita. Ne voivat olla kaikkea käyttöliittymän helppoudesta ohjelmiston nopeuteen ja tietoturvaan asti. Ohjelmistotestauksessa on lukuisia osa-alueita, joista kaikista tulee huolehtia, jotta ohjelmisto toimii, kuten sen oletetaan toimivan. Ohjelmiston laadunvarmistusta ei yksinkertaisesti voi unohtaa, jos ja kun haluat pitää käyttäjät tyytyväisenä, tai ylipäänsä saada käyttäjiä.
Ikävä käyttökokemus karkottaa ihmiset tehokkaasti, antaa huonon laatuvaikutelman ja epäammattimaisen kuvan tuotteen/palvelun tekijöistä.
Yleinen kuoppa ohjelmistokehitysprojekteissa on laadunvarmistuksen aikataulutuksen tai resursoinnin alimitoitus, joka voi helposti johtaa aikataulujen pettämiseen tai yleiseen laaduttomuuteen. Ei riitä, että käytössä on parhaat kehittäjät, tarvitaan myös parhaat laadun ymmärtävät ammattilaiset.
Testaus mielletään usein investoinniksi, joka ei tuota mitään ja saattaa jopa hidastaa kehitystä. Kyseessä on kuitenkin ns. väärä positiivinen – mitä aiemmin mahdolliset virheet löydetään ja saadaan korjattua, sitä paremman tuotteen voi viedä tuotantoon – vaikka virheenkorjaukseen kuluisikin aikaa ja muita resursseja.
Ei ole olemassa sellaista ohjelmistoa, jonka tekemisessä ei olisi syntynyt virheitä – ainakaan niin kauan, kun ihmiset ovat mukana rakentamassa niitä. Ohjelmistotestauksen suurin arvo on tuottaa valistunutta informaatiota tuotekehitystiimille ohjelmistoon liittyen.
Liian usein testaamattomuus tai testauksen vähyys nähdään jälkikäteen, ja silloin ”Mitä jos” -ajattelu on myöhäistä ja mahdolliset kurssin muutokset ja korjaukset voivat viedä hurjasti resursseja, aikaa ja rahaa. Jos testaus on suoritettu alusta asti suunnitelmallisesti ja yhdessä muun kehityksen kanssa, voidaan silloin todeta viivan alle ilmestyvän muutakin kuin miinusmerkkejä.
02 — Ratkaisu:
VALA on ohjelmistojen laadunvarmistuksen ja ohjelmistotestauksen edelläkävijäyritys Suomessa, ja onkin luonnollista, että meillä on osaamista ja kokemusta kaikista olennaisista testauksen osa-alueista. Laadunvarmistuksen asiantuntijoillamme on keskimäärin yli kymmenen vuoden kokemus ohjelmistotestauksesta, joten softasi on osaavissa käsissä.
VALAn laadunvarmistuksen ja ohjelmistotestauksen konsultit tuovat lähtökohtaisesti asiakkaalle sellaista osaamista ja apua, jota heillä ei vielä ole, tai jollaista on haastavaa hankkia itse. Testaaminen ei ole vain hiirellä naksuttelua vaan vaatii älyä ja kokemusta – Eri asiakasprojektien kautta olemme nähneet kattavasti erilaisia toimintatapoja sekä -kulttuureja, poimineet mukaan hyviä käytäntöjä sekä oppineet välttämään pahimmat sudenkuopat.
Koulutamme henkilöstöämme jatkuvasti, unohtamatta kuitenkaan henkilökohtaisia ominaisuuksia; Emme yritä saada kaikkia samaan muottiin vaan iloitsemme jokaisen yksilöllisistä vahvuuksista.
03 — Käytäntö:
VALAn ohjelmistotestaajat tuovat mukanaan aina aimo annoksen laatuajattelua ja laatukulttuuria. VALAn laatupolkuajattelu tukee testaajiamme kokonaisvaltaisesti ja tämä taas johtaa yksinkertaisest parempaan testaamiseen.
Ohjelmistotestaus voidaan jakaa karkeasti kolmeen eri osa-alueeseen ja kuuteen eri testaustasoon, VALAn asiantuntijat hallitsevat nämä kaikki. Alla avattavissa valikoissa lisää näistä.
Ohjelmistotestauksen tasot
Yksikkötestauksessa testataan nimensä mukaisesti yksiköitä, osia koodista, periaatteessa pienimpiä ohjelman osia joita voidaan testata. Siinä varmistetaan näiden pienten osien oikeellisuus. Nämä testit on usein automatisoitu, ja luodaan lähes aina samaan tahtiin muun kehitystyön edetessä.
Systeemitestauksessa sen sijaan keskitytään koko järjestelmään ja eri variaatioihin sen käytössä. Näitä edeltää kehityksen aikana tehtävät yksikkötestit, jotka jokainen itseään kunnioittava ohjelmistokehittäjä kirjoittaa samalla kun koodinsakin.
Integraatiotestauksessa testataan pääsääntöisesti, miten järjestelmän eri osat juttelevat keskenään, ts. toimiiko niiden välinen integraatio.
Ohjelmistotestauksen osa-alueet
Toiminnallisen testauksen tarkoitus on varmistaa, että ohjelmisto toimii toivotulla tavalla ja täyttää asetetut vaatimukset toiminnallisuutensa puolesta. Toiminnallinen testaus tehdään usein loppukäyttäjän näkökulmasta, ja suoritetaan käyttöliittymää käyttäen.
Regressiotestaus pitää sisällään edellä mainitut testaustyypit, mutta on luonteeltaan erilaista. Kun toiminnallisessa (ja ei-toiminnallisessa) testauksessa pyritään kehityksen aikana löytämään mahdollisimman paljon uusia virheitä ja virhetilanteita, regressiotestauksessa tarkistetaan, että ohjelmistoon tehdyt muutokset eivät ole rikkoneet jo toimivaksi todettuja ominaisuuksia. Samalla tarkistetaan, että jo löydetyt virheet ovat pysyneet korjattuina.
Hyväksymistestaus on testauksen osa-alue, jossa loppuasiakas itse, tai heidän edustajansa, tarkastaa jo valmiin tai lähes valmiin tuotteen, ja tarkistaa vastaako se oikeita käyttötapausten vaatimuksia. Hyväksymistestaus vaatii usein hyvää liiketoiminta-alueen ymmärrystä, ja tietoa asiakkaiden vaatimuksista ja tavoista toimia, sekä mahdollisesti alan säädöksistä ja lainsäädännöstä.
Ei-toiminnallisessa testauksessa käydään läpi nimenmukaisesti muuta kuin näkyvää toiminnallisuutta, esimerkiksi suorituskykyä, vikasietoisuutta tai resurssien käyttöä. Molemmat ovat yleisessä käytössä sekä integraatio- että systeemitestivaiheissa.
Käytettävyystestauksessa tutkitaan, kuinka hyvin suunniteltu tai jo toiminnassa oleva ohjelmisto toimii – onko se helppokäyttöinen, ns. intuitiivinen ja looginen, ovatko värit, kontrastit ja siirtymät hyväksyttäviä, ja joutuuko käyttäjä odottamaan toiminnallisuuksia tai latauksia liian kauan, ym. Päätelaitteesta ja käyttäjäryhmästä riippuen käytettävyyden vaatimukset voivat olla hyvinkin erilaisia, mutta hyvän käytettävyyden takana on kuitenkin aina vankka teoria ja hyvät käytännöt.
Tutkiva testaus on vähemmän suunnitelmallista, perustuen usein testaajan ammattitaitoon ja kokemukseen. Yleensä painopistealueet sovitaan etukäteen ja testauksen aikana pidetään ”päiväkirjaa” tehdyistä asioista ja mahdollisista löydöksistä. Tutkiva testaus voi olla hyvin tehokas tapa käydä läpi kompleksisiakin asioita ilman suurta valmistelevan työn ja dokumentoinnin määrää, ja tulokset voivat olla yllättäviäkin – sessioiden aikana ehtii tehdä asioita monelta eri kantilta, ja epäortodoksisetkin lähestymistavat tulevat katettua, toisin kuin täysin suunnitellussa testauksessa.