Wat is dynamisch testen? Typen, technieken en voorbeelden

Dynamisch testen

Dynamisch testen is een softwaretestmethode die wordt gebruikt om het dynamische gedrag van softwarecode te testen. Het belangrijkste doel van dynamisch testen is het testen van softwaregedrag met dynamische variabelen of variabelen die niet constant zijn en het vinden van zwakke plekken in de softwareruntime-omgeving. De code moet worden uitgevoerd om het dynamische gedrag te testen.

We weten allemaal dat testen verificatie en validatie is, en er zijn 2 V's nodig om het testen compleet te maken. Van de 2 V's wordt verificatie een statische test genoemd en de andere 'V', validatie staat bekend als dynamische testen.

Dynamisch testvoorbeeld

Laten we begrijpen hoe u dynamisch testen kunt doen met een voorbeeld:

Stel dat we een inlogpagina testen waar we twee velden hebben, namelijk 'Gebruikersnaam' en 'Wachtwoord' en de gebruikersnaam is beperkt tot alfanumeriek.

Wanneer de gebruiker gebruikersnaam invoert als 'Guru99', accepteert het systeem hetzelfde. Waar als wanneer de gebruiker als Guru99@123 invoert, de toepassing een foutmelding geeft. Dit resultaat laat zien dat de code dynamisch werkt op basis van de input van de gebruiker.

Dynamisch testen is wanneer u met het daadwerkelijke systeem werkt door een invoer te geven en het daadwerkelijke gedrag van de applicatie te vergelijken met het verwachte gedrag. Met andere woorden, werken met het systeem met de bedoeling fouten te vinden.

Dus op basis van de bovenstaande uitspraken kunnen we zeggen of concluderen dat dynamisch testen een proces is van het valideren van softwareapplicaties als eindgebruiker onder verschillende omgevingen om de juiste software te bouwen.

Wat doet dynamisch testen?

Het belangrijkste doel van de Dynamic-tests is ervoor te zorgen dat de software goed werkt tijdens en na de installatie van de software om een ​​stabiele applicatie te garanderen zonder grote gebreken (deze verklaring is gemaakt omdat geen enkele software foutloos is, alleen testen kunnen de aanwezigheid van defecten aantonen en geen afwezigheid)

Het belangrijkste doel van de dynamische test is om consistentie met de software te waarborgen; laten we dit bespreken met een voorbeeld.

In een banktoepassing vinden we verschillende schermen, zoals de sectie Mijn rekeningen, overboeking, Bill Pay, enz. Al deze schermen bevatten een bedragveld dat enkele tekens accepteert.

Laten we zeggen dat het veld Mijn rekeningen het bedrag weergeeft als 25.000 en overboeking als $ 25.000 en Factuur betaalscherm als $ 25000 hoewel het bedrag hetzelfde is, is de manier waarop het bedrag wordt weergegeven niet hetzelfde, waardoor de software niet consistent is.

Consistentie is niet alleen beperkt tot de functionaliteit, het verwijst ook naar verschillende standaarden zoals prestaties, bruikbaarheid, compatibiliteit enz. Daarom wordt het erg belangrijk om Dynamic Testing uit te voeren.

Soorten dynamische tests

Dynamisch testen is ingedeeld in twee categorieën:

  • White Box-testen
  • Black Box-testen

De onderstaande afbeelding geeft ons een idee over soorten dynamisch testen, testniveaus, enz.

Laten we elk type testen kort bespreken en het beoogde doel ervan

White Box-testen - White Box Testing is een software testmethode waarbij de interne structuur/ontwerp bekend is bij de tester. Het belangrijkste doel van White Box-testen is om te controleren hoe het systeem presteert op basis van de code. Het wordt voornamelijk uitgevoerd door de ontwikkelaars of White Box-testers die kennis hebben van de programmering.

Black Box-testen - Black Box Testing is een testmethode waarbij de interne structuur/code/ontwerp NIET bekend bij de tester. Het belangrijkste doel van deze tests om de functionaliteit van het te testen systeem te verifiëren en dit type testen vereist het uitvoeren van de volledige testsuite en wordt voornamelijk uitgevoerd door de testers, en er is geen programmeerkennis nodig.

De Zwarte doos Testen wordt opnieuw ingedeeld in twee soorten.

Zij zijn

  • Functioneel testen
  • Niet-functioneel testen

Functioneel testen:

Functionele tests worden uitgevoerd om te controleren of alle ontwikkelde functies in overeenstemming zijn met de functionele specificaties, en het wordt uitgevoerd door de functionele testgevallen uit te voeren die zijn geschreven door het QA-team, in de functionele testfase wordt het systeem getest door input te leveren, de output te verifiëren en het vergelijken van de werkelijke resultaten met de verwachte resultaten.

Er zijn verschillende niveaus van functioneel testen waarvan de belangrijkste zijn:

  • Testen van een eenheid – Over het algemeen is Unit een klein stukje code dat testbaar is, Testen van een eenheid wordt uitgevoerd op een individuele software-eenheid en wordt uitgevoerd door ontwikkelaars
  • Integratie testen - Integratietesten is het testen dat wordt uitgevoerd na het testen van eenheden en wordt uitgevoerd door alle afzonderlijke eenheden te combineren die testbaar zijn en wordt uitgevoerd door ontwikkelaars of testers
  • Systeem testen - Systeem testen wordt uitgevoerd om te controleren of het systeem voldoet aan de vereisten en wordt over het algemeen uitgevoerd wanneer het volledige systeem gereed is, het wordt uitgevoerd door testers wanneer de build of code wordt vrijgegeven aan het QA-team
  • Acceptatie testen - Acceptatietesten worden uitgevoerd om te verifiëren of het systeem voldoet aan de zakelijke vereisten en klaar is voor gebruik of klaar voor implementatie en wordt over het algemeen uitgevoerd door de eindgebruikers.

Niet-functioneel testen : Niet-functioneel testen is een testtechniek die zich niet richt op functionele aspecten en zich voornamelijk concentreert op de niet-functionele attributen van het systeem, zoals geheugenlekken, prestaties of robuustheid van het systeem. Niet-functionele testen worden op alle testniveaus uitgevoerd.

Er zijn veel niet-functionele testtechnieken waarvan de belangrijkste zijn:

  • Prestatietests - Prestatietests wordt uitgevoerd om te controleren of de responstijd van het systeem normaal is volgens de vereisten onder de gewenste netwerkbelasting.
  • Herstel testen - Hersteltesten is een methode om na te gaan hoe goed een systeem kan herstellen van crashes en hardwarestoringen.
  • Compatibiliteitstesten - Compatibiliteitstests worden uitgevoerd om te controleren hoe het systeem zich in verschillende omgevingen gedraagt.
  • Beveiligingstests - Beveiligingstests worden uitgevoerd om de robuustheid van de applicatie te verifiëren, d.w.z. om ervoor te zorgen dat alleen de geautoriseerde gebruikers/rollen toegang hebben tot het systeem
  • Bruikbaarheidstesten - Bruikbaarheidstesten is een methode om de bruikbaarheid van het systeem door de eindgebruikers te verifiëren om te verifiëren hoe comfortabel de gebruikers zijn met het systeem.

Dynamische testtechnieken

Dynamische testtechnieken in STLC bestaat uit verschillende taken zoals Requirements Analyse voor de testen, Test Planning, Testcase ontwerp en implementatie, Testomgeving setup, Testcase uitvoering, Bug rapportage en tot slot Testafsluiting. Alle taken in dynamische testtechnieken zijn afhankelijk van de voltooiing van de vorige taak in het testproces.

In STLC kunnen we zeggen dat het daadwerkelijke dynamische testproces begint bij het ontwerpen van testcases, laten we elke activiteit in detail bespreken.

Laten we, voordat we aan het proces beginnen, de strategie bespreken die moet worden gevolgd voor dynamisch testen.

Teststrategie moet zich vooral richten op de beschikbare middelen en het tijdsbestek. Op basis van deze factoren moeten het doel van het testen, de reikwijdte van het testen, de testfasen of -cycli, het type omgeving, de aannames of uitdagingen waarmee men te maken kan krijgen, de risico's, enz. gedocumenteerd worden.

Zodra de strategie is gedefinieerd en door het management is geaccepteerd, begint het daadwerkelijke ontwerp van de procestestcase

Wat is testontwerp en -implementatie?

In deze fase identificeren we de,

  • Functies die moeten worden getest
  • Leid de testcondities af
  • Leid de dekkingsposten af
  • Leid de testgevallen af

Testomgeving instellen

We moeten ervoor zorgen dat de Testomgeving altijd gelijk moet zijn aan de Productieomgeving, in deze fase moeten we de bouw en het beheer van de testmachines installeren.

Testuitvoering

Tijdens deze fase worden testgevallen ook daadwerkelijk uitgevoerd.

Bugrapport vastgelegd

Op basis van de uitvoering als de verwachte en werkelijke resultaten niet hetzelfde zijn, moet de testcase worden gemarkeerd als mislukt en moet een bug worden geregistreerd.

Voordelen van dynamisch testen

  • Dynamisch testen kan de ongedekte defecten aan het licht brengen die als te moeilijk of gecompliceerd worden beschouwd en die niet kunnen worden gedekt door statische analyse
  • Bij Dynamic Testing voeren we de software end-to-end uit en zorgen we voor foutloze software die op zijn beurt de kwaliteit van een product en project verhoogt.
  • Dynamisch testen wordt een essentieel hulpmiddel voor het detecteren van beveiligingsbedreigingen

Nadelen van dynamisch testen

  • Dynamisch testen is tijdrovend omdat het de applicatie/software of code uitvoert waarvoor een enorme hoeveelheid resources nodig is
  • Dynamisch testen verhoogt de kosten van project/product omdat het niet vroeg in de softwarelevenscyclus begint en daarom kunnen problemen die in latere stadia worden opgelost, leiden tot hogere kosten.

Conclusie:

In Software Engineering zijn verificatie en validatie twee maatregelen die worden gebruikt om te controleren of het softwareproduct voldoet aan de vereistenspecificaties. Statisch testen omvat verificatie, terwijl dynamisch testen validatie omvat. Samen helpen ze om een ​​kosteneffectieve kwaliteitssoftware te leveren.

Dit artikel is een bijdrage van Radhika Renamala