Positiv testning och negativ testning med exempel
⚡ Smart sammanfattning
Positiv och negativ testning avgör tillsammans om programvara accepterar det den ska och avvisar det den inte ska. Den här artikeln förklarar båda metoderna, teknikerna bakom dem, praktiska exempel och de metoder som håller defektläckaget nere.
Programvarutestning är processen att verifiera och validera en programvara för att kontrollera om den fungerar som förväntat. Avsikten är att hitta defekter och förbättra produktkvaliteten. Det finns två sätt att testa programvara, nämligen positiv testning och negativ testning.
De två tillvägagångssätten besvarar motsatta frågor: fungerar applikationen när allt går rätt, och förblir den stabil när något går fel?
Vad är positiv testning?
Positiv testning är en typ av testning som utförs på en programvara genom att tillhandahålla giltiga datamängder som indata. Den kontrollerar om programvaran beter sig som förväntat med positiva indata eller inte.
Positiv testning utförs för att kontrollera om programvaran gör exakt vad den förväntas göra. Det kallas därför även happy path-testning.
Tänk dig till exempel den numeriska textrutan som visas nedan.
Det finns en textruta i en applikation som endast kan acceptera siffror. Att ange värden upp till 99999 kommer att accepteras av systemet och alla andra värden förutom detta bör inte vara acceptabla. För att göra positiva tester, ställ in de giltiga ingångsvärdena från 0 till 99999 och kontrollera om systemet accepterar värdena.
Vad är negativ testning?
Negativ testning är en testmetod som utförs på programvaran genom att tillhandahålla ogiltiga eller felaktiga datamängder som indata. Den kontrollerar om programvaran beter sig som förväntat med negativa eller oönskade användarinmatningar.
Syftet med negativ testning är att säkerställa att programvaran inte kraschar och förblir stabil med ogiltiga datainmatningar. Det kallas därför även felsökvägstestning eller feltestning.
Tänk dig till exempel att samma fält tar emot tecken istället för siffror.
Negativ testning kan utföras genom att skriva in tecknen A till Ö eller från a till z. Antingen programvarusystem bör inte acceptera värdena eller så bör det skicka ett felmeddelande för dessa ogiltiga datainmatningar.
Vid båda typerna av tester måste följande beaktas:
- Indata
- En åtgärd som måste utföras
- Utgångsresultat
Positiv testning kontra negativ testning: Viktiga skillnader
Båda tillvägagångssätten delar samma sak testfall struktur. Skillnaden ligger i vilken input du ger och i vad ett godkänt resultat bevisar.
| Parameter | Positiv testning | Negativ testning |
|---|---|---|
| Också känd som | Testning av lycklig väg | Felsökväg eller feltestning |
| Inmatning som används | Giltiga, förväntade data | Ogiltig, extrem eller oväntad data |
| Mål | Bekräfta att funktionen gör vad den ska | Bekräfta att funktionen vägrar det den inte borde |
| Förväntat resultat | Flödet slutfördes utan problem | Ett tydligt fel visas och systemet förblir stabilt |
| Felhantering | Inte fokus | Hela fokuset |
| Rapportering | Smal, följer specifikationen | Bred, utforskar allt utanför specifikationen |
| Typisk risk om den hoppas över | Kärnfunktioner levereras trasiga | Krascher och säkerhetshål når produktionen |
Ett misslyckat positivt test signalerar trasig funktionalitet. Ett misslyckat negativt test signalerar ett saknat skydd, vilket är mycket dyrare att reparera när användarna väl har hittat det.
Testtekniker som används för positiv och negativ testning
I praktiken genererar två klassiska input-designtekniker både positiva och negativa fall från samma krav:
- Gränsvärdesanalys
- Ekvivalensuppdelning
Gränsvärdesanalys
Detta är en av mjukvarutestteknikerna där testfallen är utformade för att inkludera värden vid gränsen. Om indata används inom gränsvärdesgränserna, sägs det vara positiv testning. Om indata plockas utanför gränsvärdesgränserna, sägs det vara negativ testning.
Titta till exempel på det accepterade intervallet som illustreras nedan.
Ett system kan acceptera siffror från 0 till 10 numeriska värden. Alla andra siffror är ogiltiga värden. Under denna teknik kommer gränsvärdena -1,0,1 och 9,10,11 att testas.
Ekvivalensuppdelning
Detta är en mjukvarutestning teknik som delar upp indata i många partitioner. Värden från varje partition måste testas minst en gång. Partitioner med giltiga värden används för positiv testning. Medan partitioner med ogiltiga värden används för negativa tester.
Studera till exempel de två partitionerna som visas nedan.
Numeriska värden noll till tio kan delas in i två (eller tre) partitioner. I vårt fall har vi två partitioner -10 till -1 och 0 till 10. Exempelvärden (5 och -5) kan tas från varje del för att testa scenarierna. Se ekvivalenspartitionering och randvärdesanalys lektion för fler bearbetade exempel.
Hur man utför positiv och negativ testning
Följande sekvens omvandlar ett krav till en balanserad uppsättning positiva och negativa fall.
- Läs kravet för gränser. Notera alla accepterade format, intervall och obligatoriska fält. Allt som specifikationen tillåter blir ett positivt fall, och allt som den exkluderar blir ett negativt.
- Skriv det positiva fallet först. Ange giltiga data, utför åtgärden och registrera det förväntade framgångsresultatet som baslinje.
- Härled negativa fall från samma gränsvärden. Använd randvärdesanalys och ekvivalenspartitionering för att producera tomma fält, felaktiga datatyper och tal utanför intervallet.
- Lägg till fientlig input. Omfatta SQL-injektion strängar, utgångna tokens och felaktigt formaterade API-nyttolaster så säkerhetstest luckor uppstår tidigt.
- Utöka till icke-funktionella kontroller. A ladda test vid det stödda användarantalet är positivt, medan en stresstest bortom den gränsen är det matchande negativa fallet.
- Välj var varje ärende körs. Håll negativa fall borta från rök- och hälsokontroll, vilka är snabba positiva grindar, och kör dem i funktionella och regressionstestning cykler.
Ett uttag i en bankomat visar parkopplingen. Det positiva fallet anger en korrekt PIN-kod och ett giltigt belopp, så kontanter och ett kvitto följer. Det negativa fallet anger en felaktig PIN-kod och förväntar sig ett avslagsmeddelande, sedan en kortspärr.
Bästa praxis för att hålla balansen rätt
- Skriv minst två fall per krav, ett positivt och ett negativt, innan utvecklingen påbörjas.
- Prioritera negativa fall efter påverkan, så att misslyckade inmatnings- och betalningsfel kommer före kosmetiska inmatningsfel.
- Hävda själva felmeddelandet, inte bara att åtgärden misslyckades, eftersom vaga meddelanden också är defekter.
- Lämna plats för utforskande testningoch logga fynd via din process för felhantering.
⚠️ Varning: Kör aldrig negativa fall mot en liveproduktionsmiljö. De finns för att tvinga fram fel, och en avsiktlig krasch påverkar verkliga användare och verkliga data.


.png)
.png)
.png)
.png)