Positiv testning og negativ testning med eksempler

⚡ Smart opsummering

Positiv og negativ testning afgør tilsammen, om software accepterer, hvad den skal, og afviser, hvad den ikke skal. Denne artikel forklarer begge tilgange, teknikkerne bag dem, praktiske eksempler og de fremgangsmåder, der holder defektlækage lav.

  • ✅ Positiv testning: Indtast kun gyldige data, og bekræft, at applikationen fuldfører det tilsigtede flow præcis som beskrevet i specifikationen.
  • ⛔ Negativ testning: Indtast ugyldige eller ekstreme data, og bekræft, at applikationen afviser det, viser en tydelig fejl og forbliver stabil.
  • 📏 Analyse af randværdier: Test kanten af ​​ethvert accepteret område, og gå derefter et skridt uden for det, for hurtigt at opdage fejl ad gangen.
  • 🧩 Ækvivalenspartitionering: Opdel input i gyldige og ugyldige grupper, og udtag derefter en værdi fra hver gruppe i stedet for at teste alt.
  • ⚖️ Dækningsregel: Skriv mindst to cases pr. krav, et positivt og et negativt, så ingen acceptkriterier sendes uafprøvede.
  • 🛡️ Sikkerhedsudbetaling: Negative tilfælde afslører injektionsfejl, udløbne tokens og uhåndterede undtagelser, som positive kørsel aldrig rører.
  • 🤖 Automatiseringstilpasning: Automatiser stabile positive flows for regressionsværdier, og automatiser negative valideringstjek for feedback på robusthed.

Softwaretestning er processen med at verificere og validere en softwareapplikation for at kontrollere, om den fungerer som forventet. Formålet er at finde fejl og forbedre produktkvaliteten. Der er to måder at teste software på, nemlig positiv testning og negativ testning.

De to tilgange besvarer modsatrettede spørgsmål: Virker applikationen, når alt går godt, og forbliver den stabil, når noget går galt?

Hvad er positiv testning?

Positiv test er en type test, der udføres på en softwareapplikation ved at levere gyldige datasæt som input. Den kontrollerer, om softwareapplikationen opfører sig som forventet med positive input eller ej.

Positiv testning udføres for at kontrollere, om softwareapplikationen gør præcis, hvad den forventes at gøre. Det kaldes derfor også happy path-testning.

For eksempel, overvej det numeriske tekstfelt vist nedenfor.

Positiv test

Der er en tekstboks i en applikation, som kun kan acceptere tal. Indtastning af værdier op til 99999 vil være acceptable af systemet, og alle andre værdier ud over dette bør ikke være acceptable. For at udføre positiv test skal du indstille de gyldige inputværdier fra 0 til 99999 og kontrollere, om systemet accepterer værdierne.

Hvad er negativ test?

Negativ test er en testmetode, der udføres på softwareapplikationen ved at levere ugyldige eller forkerte datasæt som input. Den kontrollerer, om softwareapplikationen opfører sig som forventet med negative eller uønskede brugerinput.

Formålet med negativ testning er at sikre, at softwareapplikationen ikke går ned og forbliver stabil med ugyldige datainput. Det kaldes derfor også fejlstitestning eller fejltestning.

For eksempel, overvej at det samme felt modtager tegn i stedet for cifre.

Negativ test

Negativ test kan udføres ved at indtaste tegnene A til Z eller fra a til z. Enten bør softwaresystemet ikke acceptere værdierne, eller også bør det sende en fejlmeddelelse for disse ugyldige datainput.

Ved begge typer test skal følgende overvejes:

  • Indtast data
  • En handling, der skal udføres
  • Output resultat

Positiv test vs. negativ test: Vigtigste forskelle

Begge tilgange deler det samme test sag struktur. Forskellen ligger i det input, du leverer, og i hvad et forbigående resultat beviser.

Parameter Positiv test Negativ test
Også kendt som Lykkelig sti-testning Fejlsti eller fejltestning
Brugt input Gyldige, forventede data Ugyldige, ekstreme eller uventede data
Mål Bekræft at funktionen gør hvad den skal Bekræft, at funktionen afviser det, den ikke burde
Forventet resultat Flowet er fuldført Der vises en tydelig fejl, og systemet forbliver stabilt
Fejl ved håndtering Ikke fokus Hele fokus
Dækning Smal, følger specifikationen Bred, udforsker alt uden for specifikationen
Typisk risiko hvis oversprunget Kernefunktioner leveres i stykker Nedbrud og sikkerhedshuller når produktionen

En fejlende positiv test signalerer defekt funktionalitet. En fejlende negativ test signalerer en manglende beskyttelsesskærm, som er langt dyrere at reparere, når brugerne først har fundet den.

Testteknikker anvendt til positiv og negativ testning

I praksis genererer to klassiske input-designteknikker både positive og negative cases ud fra det samme krav:

  • Grænseværdianalyse
  • Ækvivalenspartitionering

Grænseværdianalyse

Dette er en af ​​softwaretestteknikkerne, hvor testcases er designet til at inkludere værdier ved grænsen. Hvis inputdata bruges inden for grænseværdigrænserne, siges det at være positiv test. Hvis inputdata er plukket uden for grænseværdigrænserne, siges det at være negativ test.

Se for eksempel på det accepterede interval illustreret nedenfor.

Positiv vs negativ test

Et system kan acceptere tallene fra 0 til 10 numeriske værdier. Alle andre tal er ugyldige værdier. Under denne teknik vil grænseværdierne -1,0,1 og 9,10,11 blive testet.

Ækvivalenspartitionering

Dette er et software test teknik, som deler inputdataene op i mange partitioner. Værdier fra hver partition skal testes mindst én gang. Partitioner med gyldige værdier bruges til positiv test. Mens partitioner med ugyldige værdier bruges til negativ test.

Undersøg for eksempel de to partitioner vist nedenfor.

Ækvivalenspartitionering

Numeriske værdier fra nul til ti kan opdeles i to (eller tre) partitioner. I vores tilfælde har vi to partitioner -10 til -1 og 0 til 10. Eksempelværdier (5 og -5) kan tages fra hver del for at teste scenarierne. Se ækvivalenspartitionering og randværdianalyse lektion for flere bearbejdede eksempler.

Sådan udfører du positiv og negativ testning

Den følgende sekvens omdanner ét krav til et afbalanceret sæt af positive og negative tilfælde.

  1. Læs kravet til grænser. Bemærk alle accepterede formater, områder og obligatoriske felter. Alt, hvad specifikationen tillader, bliver et positivt tilfælde, og alt, hvad den udelukker, bliver et negativt tilfælde.
  2. Skriv det positive tilfælde først. Angiv gyldige data, udfør handlingen, og registrer det forventede succesresultat som udgangspunkt.
  3. Udled negative tilfælde fra de samme grænser. Brug randværdianalyse og ækvivalenspartitionering til at producere tomme felter, forkerte datatyper og tal uden for området.
  4. Tilføj fjendtlige input. Medtag SQL-indsprøjtning strenge, udløbne tokens og misdannede API-nyttelaster, så sikkerhedstest huller dukker tidligt op.
  5. Udvid til ikke-funktionelle kontroller. A belastningstest ved det understøttede brugerantal er positivt, mens en stresstest ud over denne grænse er det matchende negative tilfælde.
  6. Vælg hvor hver sag kører. Hold negative tilfælde ude af røg- og sundhedstest, som er hurtige positive porte, og kører dem i funktionelle og regressionstest cyklusser.

En hævning i hæveautomaten viser parringen. Det positive tilfælde indtaster en korrekt pinkode og et gyldigt beløb, så kontanter og en kvittering følger. Det negative tilfælde indtaster en forkert pinkode og forventer en afvisningsbesked og derefter en kortblokering.

De bedste øvelser til at holde balancen i orden

  • Skriv mindst to cases pr. krav, et positivt og et negativt, før udviklingen starter.
  • Prioritér negative sager efter effekt, så injektions- og betalingsfejl kommer før kosmetiske inputfejl.
  • Angiv selve fejlmeddelelsen, ikke kun at handlingen mislykkedes, for vage meddelelser er også defekter.
  • Giv plads til udforskende testningog loggfør fund via din proces til håndtering af fejl.

⚠️ Advarsel: Kør aldrig negative sager mod et live produktionsmiljø. De eksisterer for at fremtvinge fejl, og et bevidst nedbrud påvirker rigtige brugere og rigtige data.

Ofte Stillede Spørgsmål

Negativ test kontrollerer, at en applikation afviser ugyldigt input korrekt. Destruktiv testning går videre og skubber bevidst systemet mod fejl, såsom at afbryde en databaseforbindelse midt i en transaktion, for at måle gendannelsesadfærd og robusthed under ekstreme forhold.

Nej. Røg- og sundhedstest Brug kun positive kontroller, fordi de fungerer som hurtige kvalitetsporte på en ny build. Negative tilfælde skaber fejl med vilje, så teams kører dem i stedet under dybere funktionelle cyklusser.

Ja. AI-generatorer læser krav eller brugerhistorier og foreslår gyldige og ugyldige inputsæt, inklusive grænseværdier. En tester gennemgår dem stadig, fordi genererede negative cases ofte overskrider domænegrænser såsom regulatoriske tærskler eller valutaafrundingsregler.

Ja. AI-funktioner kræver negative tilfælde for prompt injection, misdannede modelsvar, timeouts og spørgsmål uden for omfanget. Da output varierer mellem kørsler, bør assertions kontrollere svarformat, sikkerhedsfiltre og fallback-adfærd i stedet for én fast forventet streng.

Selenium driver browserfeltvalidering, Postman dækker ugyldige API-nyttelaster og statuskoder, og JMeter skubber belastningen ud over den understøttede grænse for stressscenarier. Vælg det værktøj, der matcher det lag, du validerer.

Opsummer dette indlæg med: