Hvorfor skal du begynne med testautomatisering? | Visma Blogg
Posted by: Vivek Sharma on 09/08/2018 in Teknologi
Hva er fordelene med testautomatisering sammen med produktutvikling?
Svaret er kort, konkret og ganske genialt:
Det gir raskere leveranser, økt testdekning, hyppig testgjennomføring og raskere tilbakemelding til utviklingsteamet. Her er bare noen av fordelene nevnt.
Mange organisasjoner og utviklingsteam har ikke investert i testautomatisering. De hevder at det ikke virker fordi gevinsten av testautomatisering ikke tilsvarer kostnaden. Men denne holdningen er vanligvis forårsaket av dårlig utformet/designet testautomatiseringsrammeverk.
Nær koden
Hvis du lurer på hvor du skal begynne å automatisere, så er svaret så nær koden som mulig. Jo lenger du kommer fra koden, desto mer utsetter du deg for problemer med endring. Altfor mange går i fellen ved å fokusere på blant annet brukergrensesnittet. Denne tilnærmingen fungerer fint når du kjører tester, da tar det bare fem minutter å kjøre testene. Over tid blir fem minutter om til en time, deretter to, deretter tre. Effekten av disse testene blir lav, fordi ønsket om kjapp tilbakemelding på koden blir borte.
Årsak fremfor symptoner
En annet viktig poeng der testautomatisering ikke burde fokusere på brukergrensesnittet er at symptomer blir oppdaget som feil. Årsaken til feilen ligger mest sannsynlig lengre ned i applikasjonen.
La meg presentere en metafor i figur 1, som vil hjelpe med forståelsen rundt testautomatisering.
Dette er et vanlig hus med funksjonaliteter som vinduer, inngangsdør, pipe på taket og vannkran på utsiden av huset. Alt dette er brukergrensesnittet til huset.
I figur 2, hvor fundamentet til huset gir etter så blir det problemer med å åpne inngangsdøren fordi den sitter fast, vinduet har fått trøkk i veggen, pipa som ikke sitter på taket lenger og nå kommer det heller ikke noe vann ut av vannkranen. Det hjelper liksom ikke å vri til høyre eller venstre for å få ut vannet, når vannrøret er har gått i stykker.
Dersom alle disse funksjonalitetene er testautomatisert så vil de feile uten å kjenne til årsak til problemene. Det vil si at funksjonalitene til huset feiler. Det er helt essientelt å finne årsak framfor symptomet. Det er her vi trenger å komme nærmere koden for å avdekke årsaken. Fokus bør rettes mot komponenttester, API-tester og integrasjonstester som bekrefter at årsak til feilen er brudd i fundamentet og brudd i vannrøret.
Nøkkelen til å lykkes med testautomatisering er derfor:
Sørg for at alle forretningskritiske aspekter er dekket med testautomatiseringstester. Disse testene må avdekke årsak framfor symptomer. De må forhindre feil framfor å finne feil. Ikke fokuser på brukergrensesnittet i første omgang, tenk heller hva som gir riktig avkastning i forhold til investering og testdekning av applikasjonen. Dette vil styrke testomfanget og gi høyere kvalitet ved lansering til produksjon.