Vad är negativ testning? Testfall med exempel
Negativ testning
Negativ testning är en mjukvarutestningstyp som används för att kontrollera programvaran för oväntade indata och tillstånd. Oväntade data eller förhållanden kan vara allt från fel datatyp till kraftig hackingattack. Syftet med negativa tester är att förhindra att programvaran kraschar på grund av negativa ingångar och förbättra kvaliteten och stabiliteten.
Genom att bara göra positiva tester kan vi bara se till att vårt system fungerar under normala förhållanden. Vi måste se till att vårt system kan hantera oväntade förhållanden för att säkerställa ett 100 % felfritt system.
Exempel på negativ testning
Tänk på fallet med en hiss, som är ett vanligt exempel på negativa tester.
Vi känner alla till funktionaliteten hos en hiss. Dessa kommer att betraktas som kraven för en hiss som att trycka på våningsnumret gör att hissen går till just den våningen.
Dörren öppnas automatiskt när hissen når angivet golv och så vidare.
Låt oss nu överväga några negativa scenarier för lyft. Några av dem är,
Negativ testning | Positiv testning |
---|---|
Vad händer om antalet personer (vikten) överskrider den angivna gränsen? | Förutsätter att endast det angivna antalet personer kommer in i hissen |
Vad händer om någon röker eller orsakar brand inne i hissen? | Det kommer inte att finnas rök eller eld i hissen |
Vad händer om det blir strömavbrott under drift? | Det blir inget strömavbrott under driften av hissen |
Alla dessa fall kommer att testas negativt. Vikten av detta är att vi inte kan se till att allt det ovan nämnda inte kommer att hända, så vi behöver dem inneslutna.
Tänk på fallet att överviktstillståndet kontrolleras och vid implementering fungerar lyften onormalt när det finns ett överviktstillstånd. Detta kommer att ha en potentiell inverkan på systemets tillförlitlighet och kan till och med orsaka livsfara. Detta förklarar vad som är negativ testning och dess betydelse.
Samma fall tillämpas också i programvara. För negativa tester har vi avvikit från ett normalt operativt förfarande. Låt oss gå igenom några exempel.
Tänk till exempel på ett registreringsformulär.
Negativ testning | Positiv testning |
---|---|
Försök att ange ett ogiltigt e-post-ID i e-postfältet | Endast giltiga e-id kommer att anges i ett e-postfält |
Försök att ange ett ogiltigt telefonnummer i ett telefonnummerfält (tecken) | Det enda numret kommer att anges i nummerfältet |
Ladda upp bild med storlek utanför angiven gräns | Endast bilder med storlek under angiven gräns kommer att laddas upp |
Ladda upp ogiltiga filer som XML, SQL, etc.-filer i bilduppladdningsfältet | Ladda bara upp giltiga bildformat som jpg.png, etc. |
Som vi sa tidigare måste vi se till att i alla dessa negativa fall vårt system kommer att fungera korrekt. Tänk på fallet om någon försöker skriva in ett tecken i nummerfältet och systemet inte kan bearbeta de oväntade uppgifterna eftersom det förväntar sig ett nummer, och till slut kraschar systemet. Eller tänk om någon försöker göra en SQL-injektion och radera all vår data från databasen. Vi kan inte bära sådana potentiella förluster. Så negativa tester är viktiga.
Varför gör negativa tester?
Eftersom testning är tid- och kostnadskrävande uppgift, är det verkligen viktigt att bestämma "vad", "hur" och "hur mycket" som ska testas. Vi måste välja klokt om vi måste göra negativa tester i vårt system eller inte. Så låt oss ta en titt på vikten av negativa tester.
Organisationsperspektiv
Det är organisationens ansvar att tillhandahålla en produkt av god kvalitet till sin kund. För att uppnå detta måste man göra negativa tester.
Som en del av bekräftelsen mot ett misslyckande måste en organisation göra negativa tester.
Vi kanske inte kan bygga ett 100 % felfritt system, men vi måste se till att vi har gjort allt för att förhindra ett misslyckande, för att uppnå att vi bör göra negativa tester.
Effekten är en faktor som vi måste ta hänsyn till. Tänk på att vi har gjort positiva tester på en e-handelssida och se till att allt är bra. Men tänk om det finns ett kryphål i vårt system att någon kan göra SQL-injektion och radera all vår data. Det kommer att vara ett stort säkerhetsbrott. För att undvika denna typ av fall måste man göra negativa tester också.
För ansökningar som är öppna för allmänheten, främst webbplatser, måste vi alltid ha i åtanke att vi inte har så mycket kontroll över hur applikationen används, så vi måste göra negativa tester för att säkerställa att alla sådana fall är täckta och inneslutna.
En annan sak vi måste se till är att det finns många svarta hackare där ute som letar efter en möjlighet att förstöra systemet. Hacking är ett viktigt fall som täcks av negativa tester
Kundperspektiv
Kunder förväntar sig alltid produkter med noll sårbarhet, för att säkerställa att negativa tester är ett måste
Om det är en känslig produkt som e-handel, online-lager etc., då är säkerhet och negativ testning ett måste.
Den enda oro för klienten angående negativa tester är att kostnaden. Men när effekten väl har analyserats är det upp till klienten att bestämma om de ska göra negativa tester eller inte.
Hur man gör negativa tester
För att göra negativa tester måste vi överväga alla möjliga fall. Det är om det är möjligt måste vi överväga det i Testfall oavsett om det inte är rätt sätt att använda det. Till exempel, om vi ser ett e-postfält, tänk på alla möjliga indata som vi kan lägga in där annat än korrekt e-postformat. På samma sätt när vi ser ett bilduppladdningsalternativ måste vi testa det med alla möjliga filer.
Samtidigt som vi skapar negativa testfall måste vi prioritera indata, annars kommer det att finnas många fall möjliga. Till exempel, för ett bildfält där endast '.png'-filer ska komma in kan vi ha många alternativ att ladda upp som 'jpeg', 'xml', 'xls', etc.. Så vi måste prioritera alternativen som XML och SQL kan ha större inverkan än jpeg och xls så vi bör ta hand om SQL- och XML-fall först. Så här måste vi prioritera ärendena före utförande för att spara tid och testkostnader.
För- och nackdelar med negativa tester
Liksom alla andra testtekniker finns det för- och nackdelar med negativa tester, huvudsakligen baserat på "var", "när" och "hur" som ska användas. Låt oss ta en titt på det här.
Fördelar med negativ testning
- Som vi alla vet är negativa tester mycket viktiga för att säkerställa kvaliteten på en produkt. En produkt av god kvalitet är en produkt med noll sårbarhet, för att säkerställa att negativa tester är mycket viktiga.
- Att göra negativa tester säkerställer att alla möjliga fall täcks. Avsiktligt eller oavsiktligt finns det en chans att negativa testfall inträffar. Så för att säkerställa att alla fall täcks måste vi göra negativa tester tillsammans med positiva tester.
- Negativ testning kommer att göra kunden mer självförtroende innan den går live.
Nackdelar med negativ testning
- Inom Software Engineering blir negativ testning i vissa fall ett slöseri med tid och energi. I många fall finns det inget behov av överdriven negativ testning. Till exempel, om en applikation skapas för en persons användning, behöver vi inte ta hänsyn till fallet att 100 användare använder systemet åt gången. Så att bestämma förhållanden i negativa testfall är mycket viktigt. Det kommer att finnas tillfällen då vi inte behöver göra negativa tester på ett visst system.
- Kräv skickliga och erfarna personer för att skapa negativa testfall.
- För klienten är negativ testning en annan sak som orsakar onödig fördröjning av release och kostnadsadder.
- En chans att ett team lägger mer tid och energi på negativa tester. Det finns en chans att testare lägger mycket tid och energi på negativa tester som resulterar i en lägre koncentration vid positiva tester.