Vad är dynamisk testning? Typer, tekniker & exempel
Dynamisk testning
Dynamisk testning är en mjukvarutestmetod som används för att testa mjukvarukodens dynamiska beteende. Huvudsyftet med dynamisk testning är att testa mjukvarubeteende med dynamiska variabler eller variabler som inte är konstanta och hitta svaga områden i mjukvarumiljön. Koden måste köras för att testa det dynamiska beteendet.
Vi vet alla att testning är verifiering och validering, och det krävs 2 Vs för att göra testningen komplett. Av de 2 Vs kallas verifiering en statisk testning och den andra "V", validering kallas dynamisk testning.
Exempel på dynamisk testning
Låt oss förstå hur man gör dynamisk testning med ett exempel:
Anta att vi testar en inloggningssida där vi har två fält som säger "Användarnamn" och "Lösenord" och användarnamnet är begränsat till alfanumeriskt.
När användaren anger användarnamn som "Guru99", accepterar systemet detsamma. Där som när användaren anger som Guru99@123 så skickar applikationen ett felmeddelande. Detta resultat visar att koden agerar dynamiskt baserat på användarens input.
Dynamisk testning är när du arbetar med det faktiska systemet genom att ge en input och jämföra applikationens faktiska beteende med det förväntade beteendet. Med andra ord, att arbeta med systemet med avsikten att hitta fel.
Så baserat på ovanstående uttalanden kan vi säga eller dra slutsatsen att dynamisk testning är en process för att validera mjukvaruapplikationer som slutanvändare under olika miljöer för att bygga rätt mjukvara.
Vad gör dynamiska tester?
Huvudsyftet med de dynamiska testerna är att säkerställa att programvaran fungerar korrekt under och efter installationen av programvaran för att säkerställa en stabil applikation utan några större brister (detta uttalande görs eftersom ingen programvara är felfri, testning kan endast visa förekomst av defekter och inte frånvaro)
Huvudsyftet med det dynamiska testet är att säkerställa konsistens i programvaran; låt oss diskutera detta med ett exempel.
I en bankapplikation hittar vi olika skärmar som avsnittet Mina konton, överföring av pengar, Bill Betala, etc.. Alla dessa skärmar innehåller beloppsfält som accepterar vissa tecken.
Låt oss säga att fältet Mina konton visar belopp som 25,000 och överföring av pengar som $25,000 och Bill betalskärm som $25000 även om beloppet är detsamma, är hur beloppet visas inte detsamma, vilket gör programvaran inkonsekvent.
Konsistens är inte bara begränsad till funktionaliteten utan hänvisar också till olika standarder som prestanda, användbarhet, kompatibilitet etc, därför blir det mycket viktigt att utföra dynamiska tester.
Typer av dynamisk testning
Dynamisk testning delas in i två kategorier
- White Box Testning
- Svart Box Testning
Nedan bildrepresentation ger oss en uppfattning om typer av dynamisk testning, testnivåer, etc.
Låt oss kort diskutera varje typ av testning och dess avsedda syfte
White Box Testning - White Box Testning är en mjukvarutestmetod där den interna strukturen/designen är känd för testaren. Whites huvudsakliga mål Box testning är att kontrollera hur systemet fungerar baserat på koden. Det utförs huvudsakligen av utvecklarna eller White Box Testare som har kunskap om programmering.
Svart Box Testning - Svart Box Testning är en testmetod där den interna strukturen/koden/designen är INTE känd för testaren. Huvudsyftet med denna testning för att verifiera funktionaliteten hos systemet som testas och denna typ av testning kräver att hela testsviten körs och utförs huvudsakligen av testarna, och det finns inget behov av någon programmeringskunskap.
Smakämnen Svart Box Testning klassificeras återigen i två typer.
De är
- funktions~~POS=TRUNC
- Icke-funktionell testning
Funktionell testning:
Funktionstestning utförs för att verifiera att alla utvecklade funktioner är i enlighet med funktionsspecifikationerna, och det utförs genom att exekvera de funktionella testfallen skrivna av QA-teamet, i funktionstestfasen testas systemet genom att tillhandahålla input, verifiera utdata och jämföra de faktiska resultaten med de förväntade resultaten.
Det finns olika nivåer av funktionstestning, varav de viktigaste är
- Enhetstestning – Generellt är Unit en liten kodbit som är testbar, Enhetstestning utförs på en individuell enhet av programvara och utförs av utvecklare
- Integrationstestning - Integrationstestning är testningen som utförs efter Unit Testing och utförs genom att kombinera alla individuella enheter som är testbara och utförs antingen av utvecklare eller testare
- Kravhantering - Kravhantering är en utförd för att säkerställa om systemet fungerar enligt kraven och utförs vanligtvis när hela systemet är klart, det utförs av testare när Build eller koden släpps till QA-teamet
- Acceptantestning – Acceptanstestning utförs för att verifiera om systemet har uppfyllt affärskraven och är redo att användas eller redo för driftsättning och utförs vanligtvis av slutanvändarna.
Icke-funktionstestning: Icke-funktionell testning är en testteknik som inte fokuserar på funktionella aspekter och huvudsakligen koncentrerar sig på systemets icke-funktionella attribut som minnesläckor, prestanda eller robusthet hos systemet. Icke-funktionstestning utförs på alla testnivåer.
Det finns många icke-funktionella testtekniker, av vilka de viktigaste är
- Prestandatester - Prestandatester utförs för att kontrollera om systemets svarstid är normal enligt kraven under önskad nätverksbelastning.
- Återhämtningstestning – Återställningstestning är en metod för att verifiera hur väl ett system kan återhämta sig från krascher och hårdvarufel.
- Test av kompatibilitet – Kompatibilitetstester utförs för att verifiera hur systemet beter sig i olika miljöer.
- Säkerhetstest - Säkerhetstest utförs för att verifiera applikationens robusthet, dvs för att säkerställa att endast auktoriserade användare/roller kommer åt systemet
- Test av användbarhet - Test av användbarhet är en metod för att verifiera systemets användbarhet av slutanvändarna för att verifiera hur bekväma användarna är med systemet.
Dynamiska testtekniker
Dynamiska testtekniker in STLC består av olika uppgifter som Kravanalys för testerna, Testplanering, Testfallsdesign och implementering, Testmiljöuppsättning, Testfallsexekvering, Bugrapportering och slutligen Testnedläggning. Alla uppgifter i dynamiska testtekniker är beroende av slutförandet av den föregående uppgiften i testprocessen.
I STLC kan vi säga att den faktiska dynamiska testprocessen börjar från testfallsdesign, låt oss diskutera varje aktivitet i detalj.
Innan vi går in i processen kan vi diskutera strategin som måste följas för dynamisk testning.
Teststrategin bör främst fokusera på tillgängliga resurser och tidsramen. Baserat på dessa faktorer måste syftet med testningen, testningens omfattning, faser eller testcykler, typ av miljö, antaganden eller utmaningar som kan ställas inför, risker etc. dokumenteras.
När strategin är definierad och accepterad av ledningen startar själva designen av processtestfallet
Vad är testdesign och implementering
I denna fas identifierar vi,
- Funktioner som ska testas
- Härled testvillkoren
- Härled täckningsobjekten
- Härled testfallen
Testa miljöinställningar
Vi måste se till att testmiljön alltid ska likna produktionsmiljön, i denna fas måste vi installera byggandet och hantera testmaskinerna.
Testutförande
Under denna fas utförs faktiskt testfall.
Buggrapport fångad
Baserat på exekveringen om de förväntade och faktiska resultaten inte är samma måste testfallet markeras som misslyckat och en bugg ska loggas.
Fördelar med dynamisk testning
- Dynamisk testning kan avslöja de avslöjade defekterna som anses vara för svåra eller komplicerade och som inte kan täckas genom statisk analys
- I Dynamic Testing exekverar vi mjukvaran, från början till slut, vilket säkerställer felfri mjukvara som i sin tur ökar kvaliteten på en produkt och ett projekt.
- Dynamisk testning blir ett viktigt verktyg för att upptäcka säkerhetshot
Nackdelar med dynamisk testning
- Dynamisk testning är tidskrävande eftersom den kör applikationen/mjukvaran eller koden som kräver enorma mängder resurser
- Dynamisk testning ökar kostnaden för projektet/produkten eftersom det inte startar tidigt i mjukvarans livscykel och därför kan eventuella problem som åtgärdas i senare skeden resultera i en kostnadsökning.
Slutsats
In Mjukvaruutveckling, Verifiering och Validering är två åtgärder som används för att kontrollera att mjukvaruprodukten uppfyller kravspecifikationerna. Statisk testning innebär verifiering medan dynamisk testning innebär validering. Tillsammans hjälper de till att leverera en kostnadseffektiv kvalitetsmjukvara.