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 softwareruntimeomgeving. De code moet worden uitgevoerd om het dynamische gedrag te testen.
We weten allemaal dat testen verificatie en validatie is, en dat er 2 V's nodig zijn om het testen te voltooien. Van de 2 V's wordt verificatie een statisch testen genoemd en de andere "V", validatie, staat bekend als dynamisch testen.
Dynamisch testvoorbeeld
Laten we begrijpen hoe u dynamisch testen kunt uitvoeren met een voorbeeld:
Stel dat we een inlogpagina testen met twee velden: 'Gebruikersnaam' en 'Wachtwoord' en de gebruikersnaam is beperkt tot alfanumeriek.
Wanneer de gebruiker gebruikersnaam invoert als “Guru99”, accepteert het systeem hetzelfde. Waar wanneer de gebruiker binnenkomt als Guru99@123, de applicatie een foutmelding geeft. Dit resultaat laat zien dat de code dynamisch werkt op basis van de gebruikersinvoer.
Bij dynamisch testen werkt u met het daadwerkelijke systeem door input 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.
Op basis van bovenstaande uitspraken kunnen we dus zeggen of concluderen dat dynamisch testen een proces is waarbij softwareapplicaties als eindgebruiker onder verschillende omgevingen worden gevalideerd om de juiste software te bouwen.
Wat doet dynamisch testen?
Het belangrijkste doel van de dynamische tests is om ervoor te zorgen dat software goed werkt tijdens en na de installatie van de software, waardoor een stabiele applicatie zonder grote fouten wordt gegarandeerd (deze verklaring wordt gedaan omdat geen enkele software foutvrij is, testen kan alleen de aanwezigheid van defecten aantonen en niet afwezigheid)
Het belangrijkste doel van de dynamische test is om consistentie met de software te garanderen; laten we dit bespreken met een voorbeeld.
In een bankapplicatie vinden we verschillende schermen zoals Mijn Rekeningen, Overboeking, Bill Betalen, enz.. Al deze schermen bevatten een bedragveld dat enkele tekens accepteert.
Stel dat het veld Mijn rekeningen het bedrag weergeeft als 25,000 en geldoverboeking als $25,000 en Bill 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 dynamisch testen uit te voeren.
Soorten dynamisch testen
Dynamisch testen is onderverdeeld in twee categorieën
- Wit Box Testen
- Zwart Box Testen
De onderstaande afbeelding geeft ons een idee over soorten dynamisch testen, testniveaus, enz.
Laten we elk type test kort bespreken en het beoogde doel ervan
Wit Box Testen - Wit Box Testen is een softwaretestmethode waarbij de interne structuur/ontwerp bekend is bij de tester. Het hoofddoel van wit 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.
Zwart Box Testen - Zwart Box Testen is een testmethode waarbij de interne structuur/code/ontwerp is NIET bekend bij de tester. Het hoofddoel van dit testen is het verifiëren van de functionaliteit van het te testen systeem. 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 typen.
Deze heten
- Functioneel testen
- Niet-functioneel testen
Functioneel testen:
Functioneel testen wordt uitgevoerd om te verifiëren dat alle ontwikkelde functies in overeenstemming zijn met de functionele specificaties, en het wordt uitgevoerd door het uitvoeren van de functionele testgevallen 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 individuele software-eenheden en wordt uitgevoerd door ontwikkelaars
- Integratietesten - Integratietesten is het testen dat wordt uitgevoerd na Unit Testing en wordt uitgevoerd door alle individuele eenheden te combineren die testbaar zijn en wordt uitgevoerd door ontwikkelaars of testers
- Systeem testen - Systeem testen wordt uitgevoerd om ervoor te zorgen dat het systeem presteert volgens 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
- Acceptatietesten – Acceptatietests worden uitgevoerd om te verifiëren of het systeem aan de bedrijfsvereisten voldoet en gereed is voor gebruik of gereed is voor implementatie, en wordt doorgaans uitgevoerd door de eindgebruikers.
Niet-functioneel testen: Niet-functioneel testen is een testtechniek die zich niet richt op functionele aspecten en zich vooral concentreert op de niet-functionele kenmerken van het systeem, zoals geheugenlekken, prestaties of robuustheid van het systeem. Niet-functioneel testen wordt op alle testniveaus uitgevoerd.
Er zijn veel niet-functionele testtechnieken, waarvan de belangrijkste zijn
- Performance Testing - Performance Testing wordt uitgevoerd om te controleren of de responstijd van het systeem normaal is volgens de vereisten onder de gewenste netwerkbelasting.
- Herstel testen – Hersteltesten zijn een methode om te verifiëren hoe goed een systeem kan herstellen van crashes en hardwarefouten.
- Compatibiliteitstesten – Er worden compatibiliteitstests uitgevoerd om te verifiëren hoe het systeem zich in verschillende omgevingen gedraagt.
- Beveiligingstests - Beveiligingstests wordt 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 is een methode om de bruikbaarheid van het systeem door de eindgebruikers te verifiëren om na te gaan hoe comfortabel de gebruikers zijn met het systeem.
Dynamische testtechnieken
Dynamische testtechnieken in STLC bestaat uit verschillende taken, zoals de analyse van de vereisten voor de tests, de testplanning, het ontwerp en de implementatie van de testcase, het opzetten van de testomgeving, de uitvoering van de testcase, het rapporteren van bugs en ten slotte het afsluiten van de test. Alle taken bij 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 de testcase. Laten we elke activiteit in detail bespreken.
Voordat we aan het proces beginnen, bespreken we eerst de strategie 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, aannames of uitdagingen waarmee we te maken kunnen 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 die getest moeten worden
- Leid de testomstandigheden af
- Leid de dekkingsitems af
- Leid de testgevallen 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 de testgevallen daadwerkelijk uitgevoerd.
Bugrapport vastgelegd
Als op basis van de uitvoering de verwachte en werkelijke resultaten niet hetzelfde zijn, moet de testcase als mislukt worden gemarkeerd en moet er een bug worden geregistreerd.
Voordelen van dynamisch testen
- Dynamisch testen kan de ontdekte defecten aan het licht brengen die als te moeilijk of ingewikkeld worden beschouwd en die niet door statische analyse kunnen worden gedekt
- Bij Dynamic Testing voeren we de software end-to-end uit, waardoor we zorgen voor foutloze software, wat 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 bronnen nodig is
- Dynamisch testen verhoogt de kosten van een project/product, omdat het niet vroeg in de softwarelevenscyclus begint. Eventuele problemen die later worden opgelost, kunnen leiden tot hogere kosten.
Conclusie
In Software EngineeringVerificatie en validatie zijn 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 kosteneffectieve kwaliteitssoftware te leveren.