søndag den 26. april 2015

Domæneanalyse - en spændende, relevant og effektiv testteknik

Som tester anvender man ofte både ækvivalenspartitionering og grænseværdianalyse - som er et par gode og anvendelige datadrevne testteknikker. Udfordringen er en gang imellem, at disse ser verden endimensionelt, men i mange situationer interagerer data med hinanden, og en paramenters dataværdi kan påvirke hvilke dataværdien for en anden parameter der er mulig.

Nedenstående tager udgangspunkt i, at der er tale om 2 parametre. Situationer med 3 eller flere parametre kræver værktøjsunderstøttelse, og behandles ikke her, men mange af principperne er de samme.

I en sådan situation som beskrevet i ovenstående er domæneanalyse en både relevant og effektiv testteknik. Domæneanalyse er rigtig god til at identificere om grænseværdierne er implementeret korrekt i systemet - det drejer sig om manglende grænseværdier, ekstra grænseværdier, grænseværdier der er skiftet/ændret og/eller grænseværdier der er 'vippet' (f.eks. er kravet til grænseværdien 'Y = X - 10', men der er implementeret 'Y = X + 10'.

Først en række definitioner af værdier - med de engelske betegnelser i parentes:
  • INDE (IN) - repræsenterer en værdi der er i partitionen/domænet.
  • UDE (OUT) - repræsenterer en værdi der er uden for partitionen/domænet/grænsen.
  • PÅ (ON) - repræsenterer en værdi på grænsen af partitionen/domænet.
  • UDENFOR (OFF) - repræsenterer en værdi lige udenfor partitionens/domænets grænse - altså den mindst mulige nominelle værdi.
Domænets grænser kan være lukkede eller åbne:
  • LUKKEDE grænser - defineret med de matematiske operatorer '>=', '<=' eller '=' - betyder at grænsen ikke er inkluderet i domænet, hvilket betyder, at:
    • PÅ-værdien er i domænet
    • UDENFOR-værdien er ikke i domænet.
  • ÅBNE grænser - defineret med de matematiske operatorer '>' eller '<' - betyder at grænsen ikke er inkluderet i domænet, hvilket betyder, at:
    • PÅ-værdien er ikke i domænet
    • UDENFOR-værdien er i domænet.
Domæneanalyseteknikken betyder så, at der for den meget 'strenge' operator '=' skal vælges en PÅ-værdi og to UDENFOR-værdier - en på hver side af grænsen, mens der for de resterende operatorer (>=, <=, >, <) skal vælges en PÅ-værdi og en UDENFOR-værdi.

En særdeles værdifuld hjælp til domæneanalyse er nedenstående tabel - kaldet en domæneanalysematrix:

I ovenstående domæneanalysematrix (tom skabelon) tester de første fire testcases PÅ og UDENFOR værdierne for betingelserne relateret til variabel 1 og INDE værdi for variabel 2, mens testcases 5 - 8 tester PÅ og UDENFOR værdierne for betingelserne relateret til variabel 2 og INDE værdi for variable 1.

Jeg håber dette indlæg viser værdien af domæneanalyse, samt hvordan testteknikken anvendes. 

mandag den 13. april 2015

International Workshop | Combinatorial Testing

I denne uge afvikles IEEE International Conference on Software Testing, Verification and Validation" - det foregår i Graz (Østrig).

En del af denne konference er en dag med workshops - hvor en af dem om brugen af kombinatoriske teknikker. En workshop hvor målet er at få kædet den akademiske forskning sammen med industrien (test).

Der var følgende på agendaen:
  • Embedded Functions in Combinatorial Test Designs
  • Introducing Combinatorial Testing in the Organization - a Report on a First Attempt
  • Combining Minimization and Generation for Combinatorial Testing
  • A First Systematic Mapping Study on Combinatorial Interaction Testing for Software Product Lines
  • Evaluation of the IPO-Family Algorithms for Test Case Generation in Web Security Testing
  • A Process for Non-Functional Combinatorial Testing - Selection of Parameter Values from a Nondiscrete Domain Space
  • Combinatorial Interaction Testing of Tangled Configuration Options
  • Relationship between Pairwise and MC/DC Testing: Initial Experimental Results
  • Why Combinatorial Testing Works - Analyzing Minimal Failure-Causing Schemas in Logic Expressions
  • Constraint Handling in Combinatorial Testing Generation Using Forbidden Tuples
  • Using Decision Trees to aid Algorithm Selection in Combinatorial Interaction Test Generation
  • Flattening or Not of the Combinatorial Interaction Testing Models
  • Improving IPOG's Vertical Growth Based on a Graph Coloring Scheme
  • Equivalence Class Verification and Oracle-free Testing Using Two-Layer Covering Arrays
  • BEN: A Combinatorial Testing-Based Fault Localization Tool.
Det har været en interessant og spændende dag - og et godt forsøg på at få udbredt forskningsverdenens resultater til testverdenen. Der er mange input, og jeg er slet ikke klar til at videreformidle nogle af dem nu. Det må komme senere, idet det meste af materialet, i form af forskningsrapporter, først er gjort tilgængeligt i dag.

Men jeg vil den kommende tid behandle emnerne på denne blog.