Hvad er dynamisk test? Typer, teknikker og eksempler
Dynamisk test
Dynamisk test er en softwaretestmetode, der bruges til at teste softwarekodens dynamiske adfærd. Hovedformålet med dynamisk test er at teste softwareadfærd med dynamiske variabler eller variabler, som ikke er konstante og finde svage områder i software-runtime-miljøet. Koden skal udføres for at teste den dynamiske adfærd.
Vi ved alle, at test er verifikation og validering, og det tager 2 Vs at gøre testen komplet. Ud af de 2 V'er kaldes verifikation en statisk test, og den anden "V", validering er kendt som dynamisk test.
Eksempel på dynamisk test
Lad os forstå, hvordan man laver dynamisk test med et eksempel:
Antag, at vi tester en login-side, hvor vi har to felter, hvor der står "Brugernavn" og "Adgangskode", og brugernavnet er begrænset til alfanumerisk.
Når brugeren indtaster brugernavn som "Guru99", accepterer systemet det samme. Hvor som når brugeren indtaster som Guru99@123, så sender applikationen en fejlmeddelelse. Dette resultat viser, at koden virker dynamisk baseret på brugerens input.
Dynamisk test er, når du arbejder med det faktiske system ved at give input og sammenligne applikationens faktiske adfærd med den forventede adfærd. Med andre ord arbejde med systemet med den hensigt at finde fejl.
Så baseret på ovenstående udsagn kan vi sige eller konkludere, at dynamisk test er en proces med at validere softwareapplikationer som slutbruger under forskellige miljøer for at bygge den rigtige software.
Hvad gør dynamisk test?
Hovedformålet med de dynamiske tests er at sikre, at softwaren fungerer korrekt under og efter installationen af softwaren, hvilket sikrer en stabil applikation uden større fejl (denne erklæring er lavet, fordi ingen software er fejlfri, test kan kun vise tilstedeværelse af defekter og ikke fravær)
Hovedformålet med den dynamiske test er at sikre konsistens til softwaren; lad os diskutere dette med et eksempel.
I en bankapplikation finder vi forskellige skærmbilleder som f.eks. Mine konti, pengeoverførsel, Bill Betal osv.. Alle disse skærmbilleder indeholder beløbsfelter, som accepterer nogle tegn.
Lad os sige, at Mine konti-feltet viser beløb som 25,000 og pengeoverførsel som $25,000 og Bill betalingsskærm som $25000 Selvom beløbet er det samme, er måden, beløbet vises på, ikke det samme, hvilket gør softwaren uensartet.
Konsistens er ikke kun begrænset til funktionaliteten, den refererer også til forskellige standarder som ydeevne, brugervenlighed, kompatibilitet osv., derfor bliver det meget vigtigt at udføre dynamisk test.
Typer af dynamisk test
Dynamisk test er klassificeret i to kategorier
- Hvid Box Test
- Sort Box Test
Nedenstående billedgengivelse giver os en idé om typer af dynamisk testning, testniveauer osv.
Lad os kort diskutere hver type test og dets tilsigtede formål
Hvid Box Test - Hvid Box Test er en softwaretestmetode, hvor den interne struktur/design er kendt af testeren. Hovedformålet med White Box test er at kontrollere, hvordan systemet fungerer baseret på koden. Det udføres hovedsageligt af udviklerne eller White Box Testere, der har viden om programmering.
Sort Box Testning - Sort Box Test er en testmetode, hvor den interne struktur/kode/design er IKKE kendt af testeren. Hovedformålet med denne test for at verificere funktionaliteten af det system, der testes, og denne type test kræver at udføre hele testpakken og udføres hovedsageligt af testerne, og der er ikke behov for nogen programmeringsviden.
Sort Box Testning er igen klassificeret i to typer.
De er
- Funktionstest
- Ikke-funktionel test
Funktionel testning:
Funktionel test udføres for at verificere, at alle de udviklede funktioner er i overensstemmelse med de funktionelle specifikationer, og den udføres ved at udføre de funktionelle testcases skrevet af QA-teamet, i funktionstestfasen testes systemet ved at levere input, verificere output og sammenligne de faktiske resultater med de forventede resultater.
Der er forskellige niveauer af funktionel test, hvoraf de vigtigste er
- Enhedstest – Generelt er Unit et lille stykke kode, som kan testes, Enhedstest udføres på individuel softwareenhed og udføres af udviklere
- Integrationstest - Integrationstest er den test, som udføres efter Unit Testing og udføres ved at kombinere alle de individuelle enheder, som er testbare og udføres enten af udviklere eller testere
- Systemtest - Systemtest er en udført for at sikre, om systemet fungerer i henhold til kravene og udføres generelt, når hele systemet er klar, det udføres af testere, når Build eller koden frigives til QA-teamet
- Acceptantestning – Accepttest udføres for at verificere, om systemet har opfyldt forretningskravene og er klar til brug eller klar til implementering og udføres generelt af slutbrugerne.
Ikke-funktionel test: Ikke-funktionel test er en testteknik, som ikke fokuserer på funktionelle aspekter og hovedsageligt koncentrerer sig om systemets ikke-funktionelle egenskaber såsom hukommelseslækager, ydeevne eller robusthed af systemet. Ikke-funktionel test udføres på alle testniveauer.
Der er mange ikke-funktionelle testteknikker, hvoraf de vigtigste er
- Test af ydeevne - Test af ydeevne udføres for at kontrollere, om systemets responstid er normal i henhold til kravene under den ønskede netværksbelastning.
- Gendannelsestest – Gendannelsestest er en metode til at verificere, hvor godt et system er i stand til at genoprette efter nedbrud og hardwarefejl.
- Test af kompatibilitet – Kompatibilitetstest udføres for at verificere, hvordan systemet opfører sig på tværs af forskellige miljøer.
- Sikkerhedsprøvning - Sikkerhedsprøvning udføres for at verificere applikationens robusthed, dvs. for at sikre at kun de autoriserede brugere/roller får adgang til systemet
- Test af brugervenlighed - Test af brugervenlighed er en metode til at verificere systemets anvendelighed af slutbrugerne for at verificere, hvor komfortable brugerne er med systemet.
Dynamiske testteknikker
Dynamiske testteknikker in STLC består af forskellige opgaver som kravanalyse til testene, Testplanlægning, Testcase design og implementering, Testmiljø opsætning, Testcase eksekvering, Bug rapportering og til sidst Test lukning. Alle opgaverne i dynamiske testteknikker er afhængige af færdiggørelsen af den foregående opgave i testprocessen.
I STLC kan vi sige, at den faktiske dynamiske testproces starter fra Test Case Design, lad os diskutere hver aktivitet i detaljer.
Inden vi går ind i processen, lad os diskutere den strategi, der skal følges for dynamisk test.
Teststrategi bør hovedsageligt fokusere på de tilgængelige ressourcer og tidsrammen. Baseret på disse faktorer skal formålet med testen, omfanget af testen, faser eller cyklusser af test, type miljø, antagelser eller udfordringer, der kan stå over for, risici osv. dokumenteres.
Når strategien er defineret og accepteret af ledelsen, starter selve procestestcase-designet
Hvad er testdesign og -implementering
I denne fase identificerer vi,
- Funktioner, der skal testes
- Udled testbetingelserne
- Udled dækningselementerne
- Udled testcaserne
Test miljøopsætning
Vi skal sikre, at testmiljøet altid skal ligne produktionsmiljøet, i denne fase skal vi installere opbygningen og styre testmaskinerne.
Testeksekvering
I denne fase udføres testcases faktisk.
Fejlrapport fanget
Baseret på udførelsen, hvis de forventede og faktiske resultater ikke er de samme, skal testtilfældet markeres som mislykket, og en fejl skal logges.
Fordele ved dynamisk test
- Dynamisk test kan afsløre de afdækkede defekter, der anses for at være for vanskelige eller komplicerede, og som ikke kan dækkes gennem statisk analyse
- I Dynamic Testing udfører vi softwaren fra ende til anden, hvilket sikrer fejlfri software, som igen øger kvaliteten af et produkt og et projekt.
- Dynamisk test bliver et vigtigt værktøj til at opdage eventuelle sikkerhedstrusler
Ulemper ved dynamisk test
- Dynamisk test er tidskrævende, fordi det udfører applikationen/softwaren eller koden, som kræver enorme mængder ressourcer
- Dynamisk test øger omkostningerne ved projekt/produkt, fordi det ikke starter tidligt i softwarens livscyklus, og derfor kan eventuelle problemer, der er rettet i senere faser, resultere i en stigning i omkostningerne.
Konklusion
In Software Engineering, Verifikation og Validering er to foranstaltninger, der bruges til at kontrollere, at softwareproduktet opfylder kravspecifikationerne. Statisk test involverer verifikation, mens dynamisk test involverer validering. Sammen hjælper de med at levere en omkostningseffektiv kvalitetssoftware.