Vad är dynamisk testning? Typer, tekniker och exempel

Dynamisk testning

Dynamisk testning är en testmetod för mjukvara som används för att testa det dynamiska beteendet hos mjukvarukod. Huvudsyftet med dynamisk testning är att testa mjukvarubeteende med dynamiska variabler eller variabler som inte är konstanta och hittar svaga områden i programvarukörningsmiljö. Koden måste köras för att testa det dynamiska beteendet.

Vi vet alla att testning är verifiering och validering, och det tar 2 V för att testet ska slutföras. Av de 2 V kallas verifiering för en statisk testning och den andra 'V', validering kallas dynamisk testning.

Exempel på dynamisk testning

Låt oss förstå hur man gör dynamiska tester med ett exempel:

Antag 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. Var som när användaren anger som Guru99@123 då skickar programmet ett felmeddelande. Detta resultat visar att koden fungerar dynamiskt baserat på användarens input.

Dynamisk testning är när du arbetar med det faktiska systemet genom att tillhandahålla en ingång och jämföra programmets faktiska beteende med det förväntade beteendet. Med andra ord, arbeta med systemet i avsikt 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 program som slutanvändare under olika miljöer för att bygga rätt programvara.

Vad gör dynamisk testning?

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 bara visa förekomst av defekter och inte frånvaro)

Huvudsyftet med det dynamiska testet är att säkerställa konsekvens i programvaran; låt oss diskutera detta med ett exempel.

I en bankapplikation hittar vi olika skärmar som Mina kontosektion, Överföring av pengar, Bill Pay, etc. Alla dessa skärmar innehåller beloppsfält som accepterar vissa tecken.

Låt oss säga att fältet Mina konton visar beloppet som 25 000 och Överföring av medel som 25 000 dollar och Bill pay screen som 25 000 dollar även om mängden är densamma är sättet som visas inte detsamma, vilket gör att programvaran inte är konsekvent.

Konsistensen är inte bara begränsad till funktionaliteten, den hänvisar också till olika standarder som prestanda, användbarhet, kompatibilitet etc, därför blir det mycket viktigt att utföra dynamisk testning.

Typer av dynamiska tester

Dynamisk testning är indelad i två kategorier

  • White Box Testning
  • Black Box -testning

Bilden nedan ger oss en uppfattning om typer av dynamiska tester, testnivåer etc.

Låt oss kort diskutera varje typ av tester och dess avsedda syfte

White Box Testning - White Box Testing är en testmetod för mjukvara där den interna strukturen/ konstruktionen är känd för testaren. Huvudsyftet med White Box -testning är att kontrollera hur systemet fungerar baserat på koden. Det utförs främst av utvecklarna eller White Box -testarna som har kunskap om programmeringen.

Black Box Testing - Black Box Testing är en testmetod där den interna strukturen/ koden/ designen är INTE testaren känner till. Huvudsyftet med denna testning för att verifiera funktionaliteten hos det system som testas och denna typ av testning kräver att hela testpaketet utförs och utförs huvudsakligen av testarna, och det behövs ingen programmeringskunskap.

De Svart låda Testning klassificeras igen i två typer.

Dom är

  • Funktionell testning
  • Icke-funktionell testning

Funktionell testning:

Funktionstestning utförs för att verifiera att alla utvecklade funktioner är i enlighet med de funktionella specifikationerna, och det utförs genom att utföra funktionstestfall som skrivits av QA -teamet, i funktionell testfas, testas systemet genom att tillhandahålla input, verifiera utdata och att jämföra de faktiska resultaten med de förväntade resultaten.

Det finns olika nivåer av funktionellt test, varav de viktigaste är

  • Enhetstestning - Generellt är Unit en liten kodbit som är testbar, Enhetstestning utförs på individuell programvara och utförs av utvecklare
  • Integrationstestning - Integrationstestning är den testning som utförs efter enhetstestning och utförs genom att kombinera alla enskilda enheter som är testbara och utförs antingen av utvecklare eller testare
  • Systemtestning - Systemtestning utförs för att säkerställa om systemet fungerar enligt kraven och utförs i allmänhet när hela systemet är klart, det utförs av testare när Build eller koden släpps till QA -teamet
  • Acceptansprovning - Acceptationstest utförs för att verifiera om systemet har uppfyllt företagskraven och är klart att använda eller redo för distribution och utförs i allmänhet av slutanvändarna.

Icke-funktionell testning : Icke-funktionell testning är en testteknik som inte fokuserar på funktionella aspekter och huvudsakligen koncentrerar sig på systemets icke-funktionella attribut, såsom minnesläckage, prestanda eller robusthet i systemet. Icke-funktionell testning utförs på alla testnivåer.

Det finns många icke-funktionella testtekniker varav de viktigaste är

  • Prestandatester - Prestandatester utförs för att kontrollera om systemets responstid är normal enligt kraven under önskad nätverksbelastning.
  • Återställningstest - Återställningstestning är en metod för att verifiera hur väl ett system kan återhämta sig från krascher och maskinvarufel.
  • Kompatibilitetstestning - Kompatibilitetstest utförs för att verifiera hur systemet beter sig i olika miljöer.
  • Säkerhetstestning - Säkerhetstest utförs för att verifiera programmets robusthet, det vill säga för att säkerställa att endast de auktoriserade användarna/rollerna får tillgång till systemet
  • Användbarhetstestning - Användbarhetstestning är en metod för att verifiera systemets användbarhet för slutanvändarna för att verifiera hur bekväma användarna är med systemet.

Dynamiska testtekniker

Dynamiska testtekniker i STLC består av olika uppgifter som kravanalys för testerna, testplanering, testfalldesign och -implementering, testmiljöinstallation, testfallets genomförande, felrapportering och slutligen testavslutning. Alla uppgifter i dynamiska testtekniker är beroende av att den föregående uppgiften i testprocessen har slutförts.

I STLC kan vi säga att den faktiska dynamiska testprocessen startar från Test Case Design, låt oss diskutera varje aktivitet i detaljer.

Innan vi går in i processen kan vi diskutera strategin som måste följas för dynamisk testning.

Teststrategi bör främst fokusera på tillgängliga resurser och tidsram. Baserat på dessa faktorer måste testningens syfte, testens omfattning, testfaser eller cykler, typ av miljö, antaganden eller utmaningar som kan ställas inför, risker etc. dokumenteras.

När strategin väl har definierats och accepterats av ledningen startar själva processprovsfallets design

Vad är testdesign och implementering

I denna fas identifierar vi,

  • Funktioner som ska testas
  • Avled testvillkoren
  • Hämta täckningsobjekten
  • Avled testfallen

Testmiljöinstallation

Vi måste se till att testmiljön alltid ska likna produktionsmiljön, i denna fas måste vi installera byggnaden och hantera testmaskinerna.

Testkörning

Under denna fas utförs testfall faktiskt.

Felrapport fångad

Baserat på utförandet om förväntade och faktiska resultat inte är desamma måste testfallet markeras som misslyckat och en bugg ska loggas.

Fördelar med dynamisk testning

  • Dynamisk testning kan avslöja de upptäckta defekter som anses vara för svåra eller komplicerade och som inte kan täckas genom statisk analys
  • I dynamisk testning kör vi programvaran från början till slut för att säkerställa felfri programvara som i sin tur ökar kvaliteten på en produkt och ett projekt.
  • Dynamisk testning blir ett viktigt verktyg för att upptäcka eventuella säkerhetshot

Nackdelar med dynamisk testning

  • Dynamisk testning är tidskrävande eftersom den kör applikationen/programvaran eller koden som kräver enorma resurser
  • Dynamisk testning ökar kostnaden för projekt/produkt eftersom den inte startar tidigt i programvarans livscykel och därför kan eventuella problem som åtgärdas i senare skeden resultera i en kostnadsökning.

Slutsats:

Inom programvaruteknik är verifiering och validering 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 kvalitetsprogramvara.

Denna artikel är av Radhika Renamala