Softwaretestteknikker med eksempler på testcasedesign
⚡ Smart opsummering
Softwaretestteknikker hjælper med at designe bedre testcases ved at reducere udførelsesbehovet, samtidig med at dækningen maksimeres og undvigende betingelser identificeres gennem strukturerede manuelle metoder. Disse black box-tilgange, som f.eks. Boundary Value Analysis og Equivalence Partitioning, prioriterer grænser og partitioner for effektiv validering. De supplerer udtømmende testbegrænsninger og trækker på kerneprincipper for at forbedre pålideligheden.

Hvad er en softwaretestteknik?
Softwaretestteknikker hjælper dig med at designe bedre testcases. Da udtømmende testning ikke er mulig, hjælper manuelle testteknikker med at reducere antallet af testcases, der skal udføres, samtidig med at testdækningen øges. De hjælper med at identificere testbetingelser, der ellers er vanskelige at genkende. Softwaretestteknikker kan klassificeres i følgende typer:
- Grænseværdianalyse
- Ekvivalensklasseopdeling
- Beslutningstabelbaseret test
- Statsovergang
- Fejl ved at gætte
👉 Tilmeld dig et gratis live softwaretestprojekt
De 7 principper for softwaretestteknikker
Softwaretestteknikker følger et sæt principper for at udføre testprocessen. Disse 7 principper vejleder testere i at planlægge, designe og udføre tests effektivt. Disse principper sikrer, at testningen forbliver målrettet, effektiv og i overensstemmelse med projektets mål.
De 7 principper for softwaretestteknikker er Test viser tilstedeværelsen af defekter, udtømmende test er umulig, tidlig test sparer tid og omkostninger, defekt Clustering, pesticidparadokset, testning er kontekstafhængig og fejlslutning om fravær af fejl. Du kan klikke på følgende link for at lære mere.
Hvordan transformerer AI traditionelle softwaretestteknikker?
AI revolutionerer softwaretestning ved at introducere automatisering, forudsigelse og tilpasningsevne. Det muliggør automatiseret generering af testcases fra naturligt sprog ved hjælp af LLM'er, selvhelbredende scripts der tilpasser sig ændringer i brugergrænsefladen, og prædiktiv defektanalyse baseret på historiske data. AI understøtter også risikobaseret prioritering, visuel testning, og autonom testudførelse inden for CI/CD-pipelines. Gennem naturlige sproggrænseflader, Testere kan oprette cases via samtale, hvilket fremskynder arbejdsgange. I bund og grund gør AI testning smartere, hurtigere og mere robuste, reducerer manuel indsats og forbedrer samtidig nøjagtighed og dækning på tværs af moderne, udviklende applikationer.
Teknikker til test af software
Grænseværdianalyse (BVA)
Grænseværdianalyse er baseret på testning ved grænserne mellem partitioner. Den omfatter maksimum-, minimum-, indvendige eller udvendige grænser, typiske værdier og fejlværdier.
Empiriske beviser viser, at mange defekter opstår nær randbetingelser snarere end mellemværdier. Det er også kendt som BVA og giver et udvalg af testtilfælde, der udøver afgrænsningsværdier.
Denne black-box-testteknik supplerer ækvivalenspartitionering ved at fokusere på kanttilfældene for de samme inputområder. Denne softwaretestteknik er baseret på princippet om, at hvis et system fungerer korrekt for randværdier, er det sandsynligt, at det fungerer for alle værdier inden for området.
Retningslinjer for analyse af randværdier
- Hvis en inputbetingelse er begrænset mellem værdierne x og y, skal testtilfældene designes med værdierne x og y, samt værdier, der er over og under x og y.
- Hvis en inputbetingelse er et stort antal værdier, bør testcasen udvikles til at udføre minimums- og maksimumsværdierne. Her testes også værdier over og under minimums- og maksimumsværdierne.
- Anvend retningslinje 1 og 2 på outputbetingelser. Det giver et output, der afspejler de forventede minimums- og maksimumsværdier. Det tester også værdierne under eller over værdierne.
Eksempel:
Input condition is valid between 1 to 10 Boundary values 0,1,2 and 9,10,11
Ekvivalensklasseopdeling
Ækvivalensklassepartitionering opdeler sættet af inputbetingelser i grupper, der forventes at producere lignende adfærd. Denne softwaretestmetode opdeler et programs inputdomæne i dataklasser, ud fra hvilke testcases skal designes.
Konceptet bag denne testcase-designteknik er, at en testcase med en repræsentativ værdi af hver klasse er lig med en test af enhver anden værdi af samme klasse. Den giver dig mulighed for at identificere gyldige såvel som ugyldige ækvivalensklasser.
Eksempel:
Indtastningsbetingelser er gyldige mellem
1 to 10 and 20 to 30
Derfor er der fem ækvivalensklasser
--- to 0 (invalid) 1 to 10 (valid) 11 to 19 (invalid) 20 to 30 (valid) 31 to --- (invalid)
Du vælger værdier fra hver klasse, dvs.
-2, 3, 15, 25, 45
Læs også mere om – Grænseværdianalyse og ækvivalenspartitioneringstest
Beslutningstabelbaseret test
En beslutningstabel er også kendt som en årsag-virkningstabel. Denne softwaretestteknik bruges til funktioner, der reagerer på en kombination af input eller hændelser. For eksempel aktiveres en 'Send'-knap i et formularvalideringsscenarie først, når alle obligatoriske felter er udfyldt.
Den første opgave er at identificere funktionaliteter, hvor outputtet afhænger af en kombination af input. Hvis der er et stort inputsæt af kombinationer, så opdel det i mindre delmængder, hvilket er nyttigt til at administrere en beslutningstabel.
For hver funktion skal du oprette en tabel og liste alle typer kombinationer af input og deres respektive output. Dette hjælper med at identificere en betingelse, som testeren overser.
Følgende er trinene for at oprette en beslutningstabel:
- Indsæt inputs i rækker
- Indtast alle reglerne i kolonnen
- Udfyld tabellen med de forskellige kombinationer af input
- I sidste række noter du output mod inputkombinationen.
EksempelEn send-knap i en kontaktformular er kun aktiveret, når alle input er indtastet af slutbrugeren.
Statsovergang
I tilstandsovergangsteknikken ændrer ændringer i inputbetingelser tilstanden af den testede applikation (AUT). Denne testteknik giver testeren mulighed for at teste en AUTs opførsel. Testeren kan udføre denne handling ved at indtaste forskellige inputbetingelser i en rækkefølge. I tilstandsovergangsteknikken leverer testteamet både positive og negative inputtestværdier til evaluering af systemets opførsel.
Retningslinje for statsovergang:
- Tilstandsovergang bør bruges, når et testhold tester applikationen for et begrænset sæt inputværdier.
- Testcase-designteknikken bør anvendes, når testteamet ønsker at teste en række begivenheder, der sker i den applikation, der testes.
Eksempel:
I følgende eksempel kan brugeren logge ind efter at have indtastet en gyldig adgangskode inden for tre forsøg. Hvis brugeren indtaster en ugyldig adgangskode i første eller andet forsøg, vil brugeren blive bedt om at indtaste adgangskoden igen. Når brugeren indtaster adgangskoden forkert 3rd på det tidspunkt udføres handlingen, og kontoen vil blive blokeret.
Tilstandsovergangsdiagram
I dette diagram flyttes brugeren til tilstanden "Adgang givet", når vedkommende indtaster den korrekte pinkode. Følgende tabel er oprettet baseret på diagrammet ovenfor:
Statsovergangstabel
| Korrekt pinkode | Forkert PIN-kode | |
|---|---|---|
| S1) Start | S5 | S2 |
| S2) 1st forsøg | S5 | S3 |
| S3) 2nd forsøg | S5 | S4 |
| S4) 3rd forsøg | S5 | S6 |
| S5) Adgang givet | - | - |
| S6) Konto spærret | - | - |
I ovenstående tabel skifter tilstanden til "Adgang givet", når brugeren indtaster den korrekte pinkode. Og hvis brugeren indtaster en forkert adgangskode, flyttes vedkommende til den næste tilstand. Hvis vedkommende gør det samme 3rd gang, vil han nå den blokerede konto.
Fejl ved at gætte
Fejl ved at gætte er en softwaretestteknik, hvor testere bruger erfaring og intuition til at forudse sandsynlige fejl i koden. Teknikken er stærkt baseret på erfaring, hvor testanalytikerne bruger deres erfaring til at gætte den problematiske del af testapplikationen. Derfor skal testanalytikerne være dygtige og erfarne for bedre at kunne gætte fejl.
Teknikken tæller en liste over mulige fejl eller fejlbehæftede situationer. Derefter skriver testeren en test sag at afsløre disse fejl. For at designe testcases baseret på denne softwaretestteknik kan analytikeren bruge tidligere erfaringer til at identificere betingelserne.
Retningslinjer for fejlgætning:
- Testen skal bruge den tidligere erfaring med at teste lignende applikationer
- Forståelse af systemet under test
- Kendskab til typiske implementeringsfejl
- Husk tidligere urolige områder
- Evaluer historiske data og testresultater
Fordele og begrænsninger ved testteknikker
fordele:
- Forbedrer testdækningen og sikrer bredere validering af softwarefunktionalitet.
- Forbedrer fejldetektering ved at målrette områder med høj risiko eller fejltilbøjelighed.
- Promotester systematisk testdesign, hvilket reducerer redundans og overlap.
- Hjælper med at identificere problemer tidligt i SDLC'en, hvilket sænker de samlede projektomkostninger.
- Forenkler kompleks testning gennem metoder som BVA og ækvivalenspartitionering.
- Øger softwarens pålidelighed og interessenternes tillid til produktkvaliteten.
Begrænsninger:
- Ingen enkelt teknik garanterer fuldstændig fejlfinding.
- Nogle teknikker afhænger i høj grad af testers erfaring og dømmekraft.
- Kan overse problemer med integration, brugervenlighed eller ydeevne i den virkelige verden.
- Tids- og ressourcebegrænsninger kan begrænse en grundig anvendelse.
- Visse metoder tilbyder begrænset automatiseringsunderstøttelse, hvilket reducerer skalerbarheden.
Hvordan vælger man de rigtige testteknikker?
Valg af de rigtige softwaretestteknikker kræver, at de afstemmes med projektets specifikke behov for at sikre effektivitet og dækning. Faktorer som udviklingsmodel, risici og ressourcer styrer udvælgelsesprocessen. Som ekspert softwaretester anbefaler jeg altid at kombinere flere teknikker for optimale resultater. Dette forhindrer risikoen for overafhængighed af en enkelt metode.
- Afstem med målsætninger: Match teknikker med mål såsom funktionalitet, ydeevne eller sikkerhedsbehov.
- Vurder risici: Prioritér højrisikoområder med risikobaserede metoder til målrettet validering.
- Tilpas arkitektur og model: Vælg agile-venlige tilgange i iterative eller flerlagssystemer.
- Balancebegrænsninger: Overvej tid, budget, færdigheder og værktøjer til en gennemførlig udførelse.


