Intro til testteknikker

Vil du blive mere effektiv og struktureret i dit arbejde med test? Mangler du overblik over, hvad der er testet og ikke mindst, hvor meget det er testet? Så er testteknikker måske noget for dig.

Testteknikker er et af de vigtigste værktøjer, hvis man vil arbejde professionelt og effektivt med test af software. Brugen af testteknikker giver dig den nødvendige struktur, til at skabe overblik over hvad, hvor meget og hvordan der skal testes. Derudover giver det følgende fordele:

  • Bedre synliggørelse af kvaliteten af systemet og dermed bedre beslutningsgrundlag
  • Bedre synliggørelse af hvor meget det giver mening at teste et givent område
  • Sikrer at du tester systemet på forskellige måder (ikke kun happy path)
  • Sikrer at man ikke tester funktioner dobbelt
  • Større sandsynlighed for at finde de vigtigste og mest kritiske afvigelser (i daglig tale: fejl)
  • Langt mere målrettede tests

Det vi altså gerne vil opnå ved at anvende testteknikker er, at sikre os at vi får testet det rigtige, på den rigtige måde – og ikke bruger kræfterne på overflødige test og ultimativt spildt arbejde.

Som vist på tegningen ovenfor så benyttes forskellige teknikker til at fange / finde forskellige bugs (afvigelser). Jo flere teknikker man benytter på et givent område af softwaren, jo større er sandsynligheden for at finde flest mulige bugs/ afvigelser. 

Hvad er testteknikker?

Lad os lige starte med at få styr på hvad testteknikker i det hele taget er for en størrelse. Jvf. ISTQB[1] så er testteknikker; ”En procedure til brug for at udlede og/eller udvælge testcases”.

Det kræver måske en uddybning: Testteknikker er værktøjer, som vi bruger til struktureret at nedbryde krav til testcases, så vi sikrer en tilstrækkelig dækning af vores krav med test. Tilstrækkeligheden afhænger af, hvor stor risikoen er i forbindelse med implementeringen af det enkelte krav, eller hvor forretningskritisk det er.

Der findes mange forskellige testteknikker, som overordnet kan inddeles i 3 kategorier, nemlig Blackbox (f.eks. ækvivalenspartitionering og grænseværdianalyse) Whitebox (f.eks. beslutningstest) og Erfaringsbaseret (f.eks. tjeklistebaseret test). Netop disse lærer I mere om på vores gratis webinarer, der ligger på Youtube.

[1] ISTQB: International Software Testing Qualifications Board – https://www.istqb.org/

Eksempel på testteknik: Nedenfor finder du et eksempel på en testcasetabel, som giver et overblik over antallet af testcases, der skal til at for at ramme alle mulige inputs og outputs ved brugen af teknikken ækvivalenspartitionering.

I eksemplet er der et system, hvor man afhængig af om man har feber (Ja/Nej), sin aldersgruppe (Barn/Ung/Voksen) og om man har vejrtrækningsproblemer (Ja/Nej), får vist noget information (Ja/Nej) og/eller bliver henvist til sygdomstest. (Ja/Nej).

Hvis alle de mulige kombinationer i eksemplet skulle testes, ville det give 48 testcases (2*3*2*2*2). Ved at stille det op i tabelform sikrer man sig at alle inputs og outputs anvendes mindst 1 gang og kan dermed nøjes med 8 testcases. I dette eksempel tester man om der er afvigelser (fejl) knyttet til bestemte værdier, samtidig med at der spares på antallet af testcases og dermed den tid, der benyttet til test. Se hele eksemplet forklaret i vores webinar om blackbox teknikker på Youtube.

Hvorfor skal du bruge Testteknikker?

Som nævnt i indledningen er testteknikker et værktøj, der sikrer os en professionel testtilgang – man kan sige, at testteknikker er et af de værktøjer, vi har i vores værktøjskasse, ligesom elektrikeren har en skruetrækker i sin.

”Formålet er at vi får lavet færrest testcases, der fanger flest potentielle afvigelser, så tidligt i forløbet som muligt.

I bund og grund ønsker vi så effektiv en test af softwaresystemer som overhovedet muligt. Dvs. at formålet er at få lavet færrest testcases, der fanger flest muligt potentielle afvigelser, så tidligt i forløbet som muligt. Ved at anvende en struktureret testtilgang og dermed også at anvende testteknikker, kan vi sikre at det lige netop er det vi gør.

Brug af testteknikker giver også mulighed for mere præcis måling og dokumentation af kvaliteten, idet vi i langt højere grad kan synliggøre vores testdækning, defekttæthed osv. Det giver nemlig først mening at snakke om dækning, når du ved præcist hvad du ønsker at dække.

Eksempelvis er det relativt nemt at få 100% testdækning af et system, hvis det blot er at ”alle krav skal være testet,” eller hvis hver enkel test er en super simpel test. Dette giver jo ikke et rigtigt billede af den reelle kvalitet.

I stedet handler det om at vi med testteknikker ønsker at kunne rapportere mere præcist og f.eks. sige: ”alle kravene med høj risiko til modul A er testet med 100% dækning ift. testteknikkerne X, Y og Z og vi har fundet 2 kritiske afvigelser”. At vi opnår 100% testdækning jf. testteknikkerne X, Y og Z er på ingen måde det samme som at sige at vi har testet alt, det er blot at de testcases det har været muligt at fabrikere ud fra disse testteknikker giver 100% testdækning.

”Brug af testteknikker giver også mulighed for mere præcis måling og dokumentation af kvaliteten idet vi i langt højere grad kan synliggøre vores testdækning, defekttæthed osv.

Testteknikker giver dig, dit team og din organisation en mere ensartet og præcis måde at arbejde med kvalitetskontrol og dermed et klarere billede af kvaliteten i de systemer, du har under test.

Du skal bruge testteknikker som et vigtigt ”værktøj” i din testproces til at komplementere dine andre testaktiviteter – f.eks. som supplement til reviews og statisk analyse (som i modsætning til testteknikker for dynamisk test ikke kræver at du har noget system, modul eller andet kørende).

Hvem skal bruge testteknikker?

Forskellige profiler og roller kan have brug for testteknikker. Afhængig af hvordan arbejdsopgaver er fordelt mellem rollerne, kan dette behov for viden om testteknikker variere. Her kommer dog et bud på, hvad de forskellige roller skal vide og hvorfor.

 Testere

Testanalytikere og automatiseringseksperter skal have testteknikker helt ind under huden, så de designer en så effektiv og struktureret test som mulig, hvad end den er manuel eller automatisk.

 Testmanager / Scrum Master / Coach

Har man behov for at kunne undervise, coache og sparre med andre i teknikkerne, bør man om muligt kunne dem endnu bedre end testeren selv. Dertil bør man kunne definere på et overordnet niveau, i testpolitikker, teststrategier og testplaner, hvilket testteknikker der skal anvendes og hvornår.

 Udviklere

Udviklere bør designe en effektiv test af deres egen kode eller komponent på en struktureret måde. Derfor bør de have styr på både blackbox, whitebox og erfaringsbaserede teknikker.

 Forretningen generelt / Brugerne / Kravstillere

Testteknikker øger generelt fokus på testbarhed i krav da man for at kunne benytte en bestemt teknik, er nødt til at have klarhed om f.eks. forretningsregler og generel forståelse for kravet. Er forretningen direkte involveret i testen, bør de også have styr på testteknikker. 

Ledelsen

Ved at organisationen bruger testteknikker kan ledelsen få et mere klart overblik over kvaliteten og en større tillid til produktet, da der kan komme tal på den aktuelle testdækning frem for en testers ”fornemmelse”.

Hvornår skal du bruge testteknikker?

ISTQB definerer en række testaktiviteter (som du kan bruge i din testproces) og testteknikker anvendes typisk i aktiviteterne: testplanlægning, -analyse og -design. Testteknikker kan dog både benyttes mere formaliseret under nævnte aktiviteter eller mere uformelt f.eks. i baghovedet eller som et mindset, når man arbejder med test.

Bemærk at du altid bør vælge testteknikker efter, hvad det er du leder efter. Hvis du f.eks. gerne vil se, om der er problemer med beregninger lige ved grænseværdierne for alder ved bestilling af nyt kørekort, så kan du bruge en teknik som Grænseværdianalyse til at teste dette. Hvis du derimod ønsker at teste om et system til bestilling af hotelværelser kan skifte ’status’ for det enkelte værelse i appen, så vil du med fordel kunne teste dette med en teknik som Tilstandsovergangstest

Hvordan kommer du i gang?

Der er mange måder at komme i gang med at arbejde med testteknikker på. Der er masser af hjemmesider, der beskriver anvendelse af testteknikker. Du kan med fordel se vores gratis webinarer om testteknikker på TestHusets YouTube kanal. Der findes også en standard, ISO 29119-4, der udelukkende omhandler testteknikker og også har eksempler på anvendelse. Til sidst har du også mulighed for at komme på kursus for at få trænet dette.

  • Testteknikker2 dages kursus kun med testteknikker.
  • Grundlæggende struktureret testGrundlæggende introduktion til test som fag og herunder også testteknikker.
  • ISTQB Foundation – en international certificering i test, hvor du, i stil med Grundlæggende struktureret test, får en grundig introduktion til test, og hvis du tager eksamen, får et internationalt gyldigt bevis på din viden.
  • Eksamineret tester – Her får du vores bud på, hvad du bør vide for at komme godt i gang med en professionel karriere indenfor test.   

Brug for hjælp?

Har du behov for sparring omkring, hvordan du kommer i gang eller skal vi hjælpe med at designe jeres test med testteknikker, så kontakt os endelig på telefon +45 44 979 979 eller via e-mail info@testhuset.dk