tirsdag den 13. august 2024

Parvis Test - Teori, Metoder og Praktiske Eksempler

Indledning

Parvis test, også kendt som Pairwise Testing, er en metode anvendt inden for softwaretest for at reducere antallet af testcases og samtidig bevare en høj dækningsgrad af mulige fejl. Denne teknik er baseret på observationen, at de fleste softwarefejl opstår på grund af interaktion mellem to inputparametre snarere end på grund af komplekse interaktioner mellem mange parametre. Dette notat vil give en detaljeret gennemgang af teorien bag parvis test, metoder til implementering, værktøjer til brug, og praktiske eksempler.

1. Baggrund og Teori

1.1 Introduktion til Kombinatorisk Test

Kombinatorisk test er en testmetode, der involverer systematisk valg af kombinationer af inputparametre for at maksimere testdækningen. En komplet kombinationstest, hvor alle mulige kombinationer af inputparametre testes, er ofte urealistisk på grund af det store antal nødvendige testcases. Her kommer parvis test ind som en effektiv måde at reducere omfanget af test uden at kompromittere dækningsgraden væsentligt.

1.2 Parvis Test

Parvis test fokuserer på at teste alle mulige par af inputparametre mindst én gang. Dette betyder, at i stedet for at teste alle mulige kombinationer, vælger man de testcases, hvor hvert par af inputparametre bliver dækket. Denne tilgang er baseret på følgende observationer:

  • De fleste fejl opstÃ¥r pÃ¥ grund af interaktioner mellem to parametre.
  • NÃ¥r et par af parametre fejler sammen, vil de sandsynligvis ogsÃ¥ fejle, hvis de testes i andre kombinationer.

Ved at fokusere på par af parametre reduceres antallet af testcases betydeligt, samtidig med at man stadig kan opdage de fleste fejl, der skyldes parametervariationer.

2. Parvis Testmetoder

2.1 Parameteranalyse

Før parvis test kan udføres, skal de relevante inputparametre identificeres. Dette indebærer:

  • Identifikation af parametre: Alle relevante inputparametre, der pÃ¥virker systemets opførsel, skal identificeres.
  • Fastlæggelse af værdier: Hver parameter skal have et sæt værdier, som den kan antage. Disse værdier bør dække alle relevante scenarier, inklusive grænseværdier.

2.2 Testmatricer og Kombinatorisk Dækning

Når parametrene og deres værdier er fastlagt, kan en testmatrice oprettes. Denne matrice indeholder en liste over testcases, hvor hver række repræsenterer en unik kombination af parameterværdier. Parvis test sikrer, at alle par af parametre (og deres respektive værdier) er repræsenteret mindst én gang i testmatricen.

2.3 Algoritmiske Tilgange

Flere algoritmer kan bruges til at generere parvise testcases:

  • Ortogonal Array (OA): OA er en matematisk metode, der anvendes til at skabe en minimal mængde testcases, der dækker alle par af inputparametre. Denne metode sikrer fuld parvis dækning med det mindste antal testcases.
  • Greedy Algoritme: En iterativ tilgang, hvor testcases genereres ved at tilføje nye kombinationer, der dækker sÃ¥ mange utestede par som muligt i hver iteration.
  • Heuristiske Metoder: Disse metoder bruger heuristikker til at finde en god løsning pÃ¥ problemet, som ikke nødvendigvis er optimal, men som reducerer antallet af testcases væsentligt.

3. Implementering og Værktøjer

3.1 Praktisk Implementering

Implementeringen af parvis test kræver typisk følgende trin:

  1. Definere parametre og deres værdier: Dette trin involverer at identificere alle relevante inputparametre og definere deres mulige værdier.
  2. Generere testcases: Brug af algoritmer eller værktøjer til at generere en testmatrice, der dækker alle par af parameterværdier.
  3. Afvikling af test: Testmatricen bruges til at afvikletestcases, hvor hver kombination af par parametre testes.
  4. Analysering af resultater: Testresultaterne analyseres for at identificere fejl forårsaget af parametervariationer.

3.2 Værktøjer til Parvis Test

Der findes flere værktøjer, der kan hjælpe med at implementere parvis test:

  • PICT (Pairwise Independent Combinatorial Testing): Et værktøj fra Microsoft, der automatiserer genereringen af parvis testmatricer.
  • TestersDesk.com: Et online værktøj, der tilbyder parvis test og andre kombinatoriske testmetoder.
  • Hexawise: Et avanceret værktøj til generering af testcases baseret pÃ¥ parvis og andre avancerede testmetoder.
  • ACTS (Automated Combinatorial Testing for Software): Et open source værktøj fra NIST, der understøtter parvis test.
  • TestPairs.dk: Et online værktøj, der tilbyder parvis test. Værktøjet er gratis, og kan ogsÃ¥ hÃ¥ndtere eventuelle afhængigheder mellem data.

4. Praktiske Eksempler på Parvis Test

4.1 Eksempel 1: Test af en Webapplikation

Lad os tage et eksempel på en webapplikation, der skal testes på tværs af flere browsere, operativsystemer og netværkstyper. Vi har følgende inputparametre og deres mulige værdier:

  • Browser: Chrome, Firefox, Edge
  • Operativsystem: Windows, Mac, Linux
  • Netværkstype: Wifi, Mobil

For en komplet kombinationstest vil vi have (3 * 3 * 2) 18 testcases. Men ved hjælp af parvis test kan vi reducere antallet til kun 9 testcases, som vist i tabellen nedenfor - der er anvendt værktøjet TestPairs.dk:



Disse 9 testcases dækker alle par af parameterværdier, hvilket betyder, at vi har en høj sandsynlighed for at opdage fejl, der skyldes interaktionen mellem to parametre.

4.2 Eksempel 2: Test af en Mobilapplikation

For en mobilapplikation kan vi have følgende parametre:

  • Devicetype: Smartphone, Tablet
  • Operativsystem: Android, iOS
  • Skærmopløsning: Lav, Høj

Ved at anvende parvis test kan vi generere følgende testcases:



I dette tilfælde vil vi have 5 testcases, der dækker alle parvise kombinationer af parameterværdier, hvilket sikrer en grundig test af applikationen på tværs af enheder og skærmopløsninger. Igen er der anvendt gratis værktøjet TestPairs.dk - andre værktøjer vil kunne reducere til 4 testcases, som vist efterfølgende:

TC 1: Smartphone - iOS - Lav
TC 2: Smartphone - Android - Høj
TC 3: Tablet - iOS - Høj
TC 4: Tablet - Android - Lav

5. Fordele og Udfordringer ved Parvis Test

5.1 Fordele

  • Effektiv testdækning: Parvis test giver en høj grad af dækningsgrad for de mest almindelige fejltyper.
  • Reduktion i antallet af testcases: Ved at fokusere pÃ¥ parvise kombinationer reduceres antallet af nødvendige testcases betydeligt, hvilket sparer tid og ressourcer.
  • Nem at implementere: Parvis test kan nemt implementeres ved hjælp af tilgængelige værktøjer, hvilket gør det til en praktisk metode for mange testprojekter.

5.2 Udfordringer

  • Dækning af komplekse fejl: Parvis test fokuserer pÃ¥ par af parametre, hvilket betyder, at fejl, der involverer interaktioner mellem tre eller flere parametre, muligvis ikke opdages.
  • Krav til nøjagtig parameteranalyse: Succesfuld implementering af parvis test kræver en præcis og omfattende analyse af inputparametre og deres mulige værdier.
  • Begrænsninger i værktøjer: Ikke alle værktøjer understøtter komplekse scenarier eller meget store mængder af parametervariationer.

6. Konklusion

Parvis test er en effektiv og praktisk metode til at optimere testen ved at reducere antallet af testcases, samtidig med at en høj dækningsgrad bevares. Denne testmetode er særligt nyttig i situationer med mange inputparametre og begrænsede testressourcer. Ved at kombinere parvis test med andre testmetoder kan man opnå en endnu højere testdækning og sikre pålideligheden af softwareprodukter.

7. Anbefalinger

  • Inkorporér parvis test i din teststrategi: Overvej at bruge parvis test som en standarddel af din teststrategi, især nÃ¥r du har med komplekse systemer at gøre.
  • Kombiner med andre metoder: Parvis test bør kombineres med andre testmetoder for at sikre en mere omfattende dækning, især for fejl, der opstÃ¥r pÃ¥ grund af interaktioner mellem flere end to parametre.
  • Brug værktøjer: Udnyt tilgængelige værktøjer som PICT, Hexawise, ACTS og TestPairs.dk til at automatisere og effektivisere parvis test.
  • Løbende evaluering: Evaluer løbende effektiviteten af parvis test i dine projekter, og juster strategien efter behov for at optimere testdækningen.

Ved at følge disse anbefalinger kan du sikre, at din testproces er bÃ¥de effektiv og omkostningseffektiv, samtidig med at du opnÃ¥r en høj grad af pÃ¥lidelighed i de softwareprodukter, du tester. 


Ingen kommentarer:

Send en kommentar