RPN's konsekvenser for testdybden

Vi baserer testplanlægningen og -tilrettelæggelsen af testen på testobjektets risikotal (RPN). Risikovurderingens resultat vil være den rettesnor, som afgør testdybden.

Herunder ses en matrix over risikoprofiler, som er tilføjet farvekoder for omfanget og dybden af den test, der skal planlægges i forlængelse heraf. 

Risikoprofil matrix

RPN Konsekvens (effekt)
Sand-
synlig-
hed
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
5 10 15 20 25

RPN og testdybde 

Højt RPN (15-25) ELLER Sandsynlighed = 5    ELLER
Konsekvens = 5

Testdybde ***
Middel RPN (8-12) ELLER
Sandsynlighed = 4    ELLER
Konsekvens = 4
Testdybde **
Lille RPN (1-6) Testdybde *

Udmøntning af testdybde

Jo højere RPN, jo flere testcases skal der bruges for at dække risikoen tilstrækkeligt.  Det handler ikke om at opnå et højt antal testcases i sig selv, men om at afdække risikoen fra flere vinkler, og til dette anvendes flere forskellige testteknikker. Testteknikker tilbyder en struktureret måde at udlede testbetingelser, testcases og testdata på med det formål at finde forskellige typer af fejl. Testteknikkerne kan anvendes på forskellige testniveauer, og således understøtter RPN testdybden på både komponent-, integrations- og systemtestniveau. Eksempler på testteknikker:

  • Ækvivalenspartitionering
  • Grænseværdianalyse
  • Beslutningstabeltest
  • Klassifionationstræer
  • Use case test
  • Tilstandsovergangstest
  • Udforskende test

En anden tilgang til afdækning af høj risici kan være at gøre brug af pair programming, kvalificerede kodereviews på de lavere testniveauer og udforskende test som supplement til de strukturerede testcases. 

Mens høje risici kalder dyb testdækning, kræver lav risici mindre testdækning, og dermed er den konkrete udmøntning af en risikobaseret tilgang til test en måde til at prioritere og fordele en ikke ubegrænset testindsats. 

På accepttestniveau forholder det sig typisk lidt anderledes end på de øvrige testniveauer. Accepttestens formål er ikke at finde fejl, men at verficere, at leverancen indeholder det aftalte, og at validere, at den understøtter de forretningsmæssige mål for leverancen. Her vil man typisk prioritere testbredde fremfor testdybde, dvs. sikre at alle aftalte krav er levereret en til en. Use case-test er en ofte anvendt testteknik til afdækning af accepttest. Ønskes den risikobaserede tilgang gennemført også i accepttesten, kan man således graduere testdækningen på en sådan måde, at hvert krav risikovurderes og tildeles et RPN. Krav med høj risiko testes for både primære og alternative veje gennem use casen på forskelligt data, mens krav med lav risiko kun testes for primær vej, eventuelt også alternative veje, men med enkelte data. 

Eksempel på konkret teststrategisk udmøntning af testdybde baseret på RPN:

Risk priority number

Testdybde

Eksempler på testindsats pr. testdybde (komponents-, integrations-, systemtestniveau)

Eksempel på testindsats pr. testdybde
(accepttest niveau)

Eksempel på testindsats pr. testdybde

(alle testnievauer)

Risk priority number

Testdybde

Eksempler på testindsats pr. testdybde (komponents-, integrations-, systemtestniveau)

Eksempel på testindsats pr. testdybde
(accepttest niveau)

Eksempel på testindsats pr. testdybde

(alle testnievauer)

Højt RPN (15-25)
ELLER Sandsynlighed = 5  ELLER- Konsekvens = 5

***
  • Anvendelse af flere black- og/eller whitebox  testteknikker (på alle relevante testniveauer)
  • Suppleret med udforskende test på systemtestniveau
  • Kodereview på laveste niveauer
  • Evt. peer testing
  • Use case testteknik:
    • Primær vej  >= 3 testcases, forskelligt data
    • Alle alternative veje >= 3 testcases pr. vej, forskelligt data
  • Der er gennemført og godkendt review af testgrundlaget
  • Der er gennemført og godkendt review af test cases
  • Positiv test og negativ test gennemføres
  • Hovedveje og alle alternative veje er dækket
  • Alle testbetingelser er dækket
Middel RPN (8-12)
ELLER Sandsynlighed = 4    ELLER Konsekvens = 4

**

  • Anvendelse af en eller flere testteknikker (på alle relevante testniveauer)
  • Evt. suppleret med udforskende test på systemtestniveau
  • Kodereview på laveste niveauer
  • Use case testteknik:
    • Primær vej  = 2 testcases, forskelligt data
    • Alle alternative veje  =  2 testcases pr. vej, forskelligt data
  • Der er gennemført og godkendt review af testgrundlaget
  • Der er gennemført og godkendt review af test cases
  • Positiv test og negativ test gennemføres
  • Hovedveje og væsentlige alternative veje er dækket
  • Besluttede testbetingelser er dækket

Lille RPN (1-6)

*

  • Anvendelse af testteknikker på komponent- og komponentintegrationstest
  • Evt. udforskende test på systemtestniveau
  • Use case testteknik:
    • Primær vej  = 1 testcases
    • Evt. alle alternative veje  = 1 testcase pr. vej
  • Der er gennemført og godkendt review af test cases
  • Positiv test er gennemføres
  • Hovedveje er dækket