Feil og mangler i et utviklingsprosjekt betyr tap av inntekt, tid og produktivitet. I tillegg er det fryktelig irriterende, både for utviklingsteamet og for kunden. Testing er essensielt for å sjekke at det du utvikler og lanserer oppfyller kravspesifikasjonene og fungerer som forventet. Derfor bør du la utvikling og testing gå hånd i hånd, fremfor at testingen starter når utviklingen er gjort.
Det er her QA-ingeniøren kommer inn. Dette er en ressurs på scrum-teamet ditt som jobber dedikert med testing og er tett på resten av utviklingsteamet. Alternativet er at utviklerne tester sin egen kode, men det blir litt som bukken og havresekken – det er ikke så gøy å teste egen kode for feil. Resultatet kan fort bli slurvete.
– Den billigste måten å fikse feil på er å forhindre dem i utgangspunktet. Så det er det jeg gjør – hver dag.
Shantanu Roy
QA-ingeniør hos Cefalo
Feil er kostbare – og irriterende
Det hender at sluttbruker er den heldige vinneren når feil oppstår. For eksempel hvis programvaren bak betalingsterminalen på Åpent Bakeri skulle slutte å virke. Kaffen er jo laget og betaling kunne ikke gjennomføres. Så kunden får kanskje en gratis kaffe.
Men hvis du ikke er blant dem som ender opp med å slippe å betale for noe grunnet programvarefeil, så har manglende QA-testing som oftest negative konsekvenser. Både for produkteier, sluttbruker og de som utviklet programvaren. Har du råd til forsinkelser og feil av denne typen når du produserer programvare?
Feil er dyrt og jo tidligere du kan fikse dem desto billigere blir det. Har du forresten tenkt på at det er mulig å ha en programvareløsning helt uten bugs, som likevel ikke gjør det du forventet? En QA-ingeniør vil sørge for at slike feil fanges opp.
QA-ingeniører er en ressurs som er vanskelig å få tak på i Norge, men som vi har veldig god tilgang på i Dhaka. Vår anbefaling er at du ansetter en QA-ingeniør fra begynnelsen av – for å unngå feil, bugs og teknisk gjeld. For virksomhetskritisk utvikling, for eksempel innen fintech, har du rett og slett ikke råd til ikke å ha en QA-ressurs på laget.
QA-testing støtter utviklingsprosessen
QA-testing er et sett med teknikker for å støtte utviklingsprosessen. Målet er å sikre resultater av høy kvalitet. Den primære oppgaven for en QA-ingeniør er å forhindre mulige feil, spare arbeidstid og bidra til at prosjektene holder rammene for budsjettet. QA-testingen foregår gjennom hele produktlivssyklusen, ved at QA-ressursen tester på hvert trinn i utviklingsprosessen.
Den største fordelen ved å ha en QA-ingeniør på teamet ditt er at det blir flere og bedre tester. Dette gjør at feil blir avdekket tidligere i utviklingsprosessen, og de kan være enklere å rydde opp i. Resultatet er langt færre feil ute i produksjon. Men listen over fordeler stopper ikke der. Her er fem andre fordeler ved å ha en QA på laget.
1. Ser prosessen utenfra (black box testing)
QA-ingeniøren har et annet perspektiv enn utviklerne og ser ting fra utsiden. Fordelen med å teste slik en QA-ressurs gjør, er at denne kan teste uten å vite hva som er gjort og hvor mye arbeid som er gått inn i koden. Hen får testet ting som utviklerne ikke har tid til å teste, har sett seg blind på eller kanskje ikke har hatt lyst til å teste (for da må eventuelle feil rettes).
QA-ingeniøren kan tillate seg å kun tenke på hva løsningen skal gjøre, og om den tilfredsstiller kravene som er satt. Her vil brukeropplevelsen sjekkes, ytelsen testes og stresstesting gjennomføres uten at man har et nært forhold til utviklingen i så måte. I et team som ikke har QA-ressurser vil det ofte slurves med denne type tester.
2. Bindeledd mellom produkteier og utviklingsteamet
For å teste må man ha en god beskrivelse – kravspekken må være nøyaktig og omfattende nok. Det vil QA-ingeniøren være med på å sørge for. QA-ingeniøren blir dessuten ofte produkteierens forlengede arm inn i teamet, og vil være en pådriver for at spesifikasjonene teamet får blir bedre.
Vanligvis er det produkteier som har det formelle ansvaret for akseptansetesting, altså å verifisere at ferdig produkt gjør det som forventes. Har du en QA-ingeniør på teamet vil denne ha en så god forståelse av hva produktet skal gjøre, at produkteier ofte vil lene seg på QA-ressursen når jobben skal gjøres.
– Skulle jeg finne noe som må endres, så kommuniserer jeg direkte med både utvikler og produkteier. Kravspekken gjennomgås kontinuerlig, så jeg har god kontroll på at vi får et produkt som leverer som forventet.
Shantanu Roy
QA-ingeniør hos Cefalo
3. Sparer tid for utviklerne
Det er liten tvil om at testing kan være svært tidkrevende. Når det lages mobilapper så må dessuten de samme testene gjøres på ulike telefoner, og ved utvikling av responsive webløsinger så må de gjøres i ulike nettlesere og på ulike skjermstørrelser; desktop, nettbrett og telefon.
En dedikert QA-ingeniør som setter av tid til testing, og kun fokuserer på det, vil spare tid for utviklerne. Istedenfor å teste egen kode, kan de bruke tiden sin på det de er gode på – nemlig utvikling.
4. Går hånd i hånd med utviklerne
QA-ingeniøren sikrer funksjonaliteten og påliteligheten til programvaren som utvikles. QA-testingen går parallelt ved siden av utviklingsprosessen, og fungerer som en støtte for utviklingsteamet for å forhindre problemer og sikre resultater av høy kvalitet.
5. Hele teamet jobber bedre
Å ha en QA-ingeniør til stede som alltid stiller spørsmål med hvorfor utviklerne velger å gjøre som de gjør, kan være en bonus som kommer hele teamet til gode.
– QA-folk er skikkelig skeptiske! Som en djevelens advokat stiller vi spørsmål ved alt – hovedsakelig for ikke å miste informasjon underveis. Min erfaring er at utviklingsteamet etter hvert lærer seg å tenke som QA’en gjør, for de vet at spørsmålene vil komme uansett.
QA-ingeniør Shantanu Roy.
Er du nysgjerrig på ekstern utvikling? Vi tar gjerne en hyggelig prat med deg på telefon, møte eller video.
Kategorier:
Cefalo