Test er …

Ifølge ISTQB´s ordbog er test:

“Processen der består af alle statiske og dynamiske livscyklusaktiviteter, som har at gøre med at planlægge, forberede og evaluere en komponent eller et system. 

Processen indeholder desuden relaterede arbejdsprodukter for at kunne afgøre om softwareprodukterne opfylder de specificerede krav, for at demonstrere at de passer til deres formål og for at finde defekter.”

Test skal være med fra dag 0 i alle projekter i min optik. I den agile verden taler vi om test drevet udvikling. Det skal forstås bogstaveligt, det er simpelthen acceptkriterierne og nedbrydelse af dem til test der kan udføres som driver udviklingen.

Grænserne for mit sprog sætter rammerne for min verden

Det er et udsagn fra den østrigske filosof Ludwig Wittgenstein (1889 – 1951). Dette udsagn er fortsat relevant for softwaretest i 2021.

Hvis ledere, chefer og projektdeltager ikke kender nuancer i test, bliver det hele blot test. Derfor er det væsentligt, at vi kan kommunikerer mere detaljeret hvad test er og hvad det omfatter. Dette inkludere opdeling af testen i testniveauer, fokus på de ikke funktionelle krav, anvendelse af testteknikker til at sikre effektive testcases med en minimum antal af testcases.

Testniveauer

Test deles op i testniveauer som har specifikke formål og de enkelte testniveauer komplementerer hinanden. Testniveauer planlægges ud fra de oprindelige samme krav til et system, men testgrundlaget er alligevel lidt forskelligt, afhængig af om det er komponenttest eller accepttest. ISTQB anvender følgende 4 testniveauer i deres Foundation pensum:

  • Komponenttest
  • Integrationstest
  • Systemtest
  • Accepttest

Test af funktionelle og ikke funktionelle krav

Planlægning og udførelse af test af de ikke funktionelle krav, også omtalt som kvalitetskrav, er væsentligt at prioriterer og fokusere på i alle projekter. Det handler både om at afgrænse hvilke af de ikke funktionelle områder der er krav til, og hvilke der evt. er uden for scope i et konkret projekt, og som der derfor ikke testes for.

ISO 25010 standarden anvender denne opdeling:

  • Funktionel egnethed
  •  Performance effektivitet
    • Stress
    • Load
    • Soak
  • Kompatibilitet
  • Brugervenlighed
  • Pålidelighed
  • Sikkerhed
  • Vedligeholdelsesegnethed
  • Flytbarhed

I en testplan bør man have testcases til alle områder som der er krav til i det givne projekt. Brug gerne den samme opdeling for at få struktur på alle testcases.

Testteknikker

Når vi arbejder med test anvender vi testteknikker for at sikre os at vi udvikler gode testcases. Gode testcases som test der kan finde fejl eller har potentialet til at finde fejl. Samtidig har vi brug for både positive testcases der kan bekræfte at vores system fungerer som vi forventer, og negative testcases der kan sikre robustheden af vores system. Negative testcases er test der skal teste dele i vores system, der ikke må kunne lade sig gøre. Ofte skal disse testcases medfører at vores system sender fejlbeskeder tilbage til brugerne. Negative testcases må aldrig være i stand til at få vores system til at gå ned.

ISTQB har i deres Foundation pensum følgende testteknikker med:

  • Black-box testteknikker:
    • Ækvivalenspartitionering
    • Grænseværdianalyse
    • Beslutningstabeltest
    • Tilstandsovergangstest
    • Usecase test
  • White-box testteknikker:
    • Instuktionsdækninkg
    • Beslutningsdækning
  • Erfaringsbaserede testteknikker:
    • Fejlgætning
    • Udforskende test
    • Tjeklistebaseret test