Wat is dynamisch testen? Typen, technieken & Voorbeeld

Inhoudsopgave:

Anonim

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 software runtime-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 Vs nodig om het testen te voltooien. Van de 2 V's wordt verificatie een statische test genoemd en de andere "V" validatie wordt dynamisch testen genoemd.

Dynamisch testvoorbeeld

Laten we begrijpen hoe u dynamische tests kunt uitvoeren met een voorbeeld:

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

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

Dynamisch testen is wanneer u met het daadwerkelijke systeem werkt door input te leveren en het daadwerkelijke gedrag van de applicatie te vergelijken met het verwachte gedrag. Met andere woorden, werken met het systeem met de bedoeling fouten op te sporen.

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 dynamische tests is om ervoor te zorgen dat de software correct werkt tijdens en na de installatie van de software, zodat een stabiele applicatie zonder grote gebreken wordt gegarandeerd (deze verklaring is gemaakt omdat geen enkele software foutloos is, alleen testen kan de aanwezigheid van defecten aantonen en geen afwezigheid)

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

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

Laten we zeggen dat in het veld Mijn rekeningen een bedrag wordt weergegeven als 25.000 en overboeking als $ 25.000 en het scherm Factuurbetaling als $ 25.000, hoewel het bedrag hetzelfde is, de manier waarop het bedrag wordt weergegeven niet hetzelfde is, waardoor de software niet consistent is.

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

Soorten dynamische tests

Dynamisch testen is onderverdeeld in twee categorieën

  • White Box-testen
  • Black Box-testen

De onderstaande afbeelding geeft ons een idee over soorten dynamische tests, testniveaus, enz.

Laten we kort elk type test en het beoogde doel bespreken

White Box Testing - White Box Testing is een softwaretestmethode waarbij de interne structuur / het 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 Developers of White Box Testers die kennis hebben van de programmering.

Black Box Testing - Black Box Testing is een testmethode waarbij de interne structuur / code / ontwerp NIET bekend is bij de tester. Het belangrijkste doel van deze tests is 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 Black Box Testing is opnieuw ingedeeld in twee typen.

Zij zijn

  • Functioneel testen
  • Niet-functionele tests

Functioneel testen:

Functionele tests worden uitgevoerd om te verifiëren dat alle ontwikkelde functies in overeenstemming zijn met de functionele specificaties, en worden uitgevoerd door de functionele testcases uit te voeren die zijn geschreven door het QA-team, in 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

  • Unit Testing - Over het algemeen is Unit een klein stukje code dat testbaar is, Unit Testing wordt uitgevoerd op individuele software-eenheden en wordt uitgevoerd door ontwikkelaars
  • Integratietests - Integratietests zijn de tests die worden uitgevoerd na het testen van eenheden en worden uitgevoerd door alle afzonderlijke eenheden te combineren die testbaar zijn en die worden uitgevoerd door ontwikkelaars of testers
  • Systeemtest - Systeemtest wordt uitgevoerd om ervoor te zorgen dat het systeem presteert volgens de vereisten en wordt over het algemeen uitgevoerd wanneer het complete systeem gereed is, het wordt uitgevoerd door testers wanneer de build of code wordt vrijgegeven aan het QA-team
  • Acceptatietests - Acceptatietests worden uitgevoerd om te verifiëren of het systeem aan de zakelijke vereisten voldoet en klaar is voor gebruik of klaar voor implementatie en wordt doorgaans uitgevoerd door de eindgebruikers.

Niet-functionele tests : niet-functionele tests zijn een testtechniek die zich niet richt op functionele aspecten en zich voornamelijk concentreert op de niet-functionele kenmerken van het systeem, zoals geheugenlekken, prestaties of robuustheid van het systeem. Op alle testniveaus worden niet-functionele tests uitgevoerd.

Er zijn veel niet-functionele testtechnieken waarvan de belangrijkste zijn

  • Prestatietests - Prestatietests worden uitgevoerd om te controleren of de responstijd van het systeem normaal is volgens de vereisten onder de gewenste netwerkbelasting.
  • Hersteltests - Hersteltests zijn een methode om te controleren hoe goed een systeem kan herstellen van crashes en hardwarefouten.
  • Compatibiliteitstests - 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, dwz om ervoor te zorgen dat alleen de geautoriseerde gebruikers / rollen toegang hebben tot het systeem
  • Bruikbaarheidstesten - Bruikbaarheidstesten zijn 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 bestaan ​​uit verschillende taken zoals Requirements Analyse voor de tests, Testplanning, Testcaseontwerp en -implementatie, Testomgeving instellen, Testcase-uitvoering, Bugrapportage 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 ontwerp van een testcase, laten we elke activiteit in detail bespreken.

Voordat we met het proces beginnen, bespreken we de strategie die moet worden gevolgd voor dynamisch testen.

Teststrategie moet vooral gericht zijn op de beschikbare middelen en het tijdsbestek. Op basis van deze factoren moeten het doel van de tests, de reikwijdte van de tests, de testfasen of -cycli, het type omgeving, de aannames of uitdagingen waarmee u te maken kunt krijgen, risico's, enz. Worden gedocumenteerd.

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 om te testen
  • Leid de testcondities af
  • Leid de dekkingsitems af
  • Leid de testcases af

Testomgeving instellen

We moeten ervoor zorgen dat de testomgeving altijd vergelijkbaar is met de productieomgeving, in deze fase moeten we de build installeren en de testmachines beheren.

Testuitvoering

Tijdens deze fase worden daadwerkelijk testcases 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 gelogd.

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 die een enorme hoeveelheid middelen vereist
  • Dynamisch testen verhoogt de kosten van een project / product omdat het niet vroeg in de levenscyclus van de software begint en daarom kunnen problemen die in latere fasen worden opgelost, leiden tot hogere kosten.

Gevolgtrekking:

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

Dit artikel is bijgedragen door Radhika Renamala