Ikke-destruktiv softwaretestning (NDT): Hvad er teststrategi?
โก Smart opsummering
Ikke-destruktiv testning verificerer, at en applikation opfรธrer sig korrekt, nรฅr den modtager gyldigt input, hvilket er grunden til, at testere ogsรฅ kalder det positiv- eller happy path-testning. Det bekrรฆfter forventede resultater i forhold til dokumenterede krav.
Hvad er ikke-destruktiv softwaretest?
Ikke-destruktiv testning er en softwaretesttype, der involverer test og interaktion med softwareapplikationen korrekt. Med andre ord kan Non Destructive Software Testing (NDT) ogsรฅ kaldes Positiv Testing eller Happy path testing. Det giver de forventede resultater og beviser, at softwareapplikationen opfรธrer sig som forventet.
Navnet er lรฅnt fra ingeniรธrvidenskab, hvor ikke-destruktiv testning inspicerer en fysisk komponent uden at beskadige den. I software er ideen den samme: applikationen udfรธres pรฅ den mรฅde, den er designet til at blive brugt, og den overlever testen intakt.
Eksempel: Indtastning af de korrekte data i et loginmodul og kontrol af, om det accepterer legitimationsoplysningerne og navigerer til nรฆste side.
Skรฆrmbilledet nedenfor viser loginformularen med en gyldig vรฆrdi indtastet i brugernavnsfeltet, fรธr testen udfรธres.
For at udfรธre ikke-destruktiv testning pรฅ ovenstรฅende eksempel skal du indtaste et gyldigt brugernavn og en gyldig adgangskode i loginformularen. Da inputtet matcher kravene, er det รธnskede resultat positivt, og testeren bekrรฆfter blot, at applikationen gรฅr videre til nรฆste side.
Hvorfor udfรธrer ikke-destruktiv softwaretest (NDT)?
Ikke-destruktiv testning besvarer det fรธrste spรธrgsmรฅl, som enhver interessent stiller om et build: Gรธr funktionen rent faktisk det, den blev bedt om at gรธre? Dette er grundene til, at teams kรธrer den.
- Den stรธrste fordel ved NDT-metoden er, at den resulterer i forbedret softwarekvalitet, fordi fejl, der findes i hovedflowet, rettes tidligt.
- For at demonstrere, at softwarefunktioner fungerer i overensstemmelse med specifikationen.
- For at verificere, at prรฆstationskravene er opfyldt.
- For at verificere, at slutbrugernes krav er opfyldt.
- At kontrollere, at en lille del af koden eller funktionaliteten fungerer som forventet og ikke รธdelรฆgger den relaterede funktionalitet.
- At fremlรฆgge beviser, der kan fremvises pรฅ et test af brugeraccept godkendelse, hvor kunden รธnsker at se den tilsigtede adfรฆrd i stedet for fejltilstandene.
Nรฅr ikke-destruktiv testning (NDT) udfรธres?
Timing betyder mere her end for de fleste teknikker, fordi den lykkelige vej fรธrer alt nedstrรธms.
- Det er den fรธrste form for testning, som en tester udfรธrer pรฅ en applikation, dvs. i den indledende fase af SDLC.
- Ikke-destruktiv testning udfรธres normalt, nรฅr der ikke er tid nok til en fuld testcyklus, da det stadig beviser, at acceptkriterierne er opfyldt.
- Den kรธrer fรธr negative og destruktive scenarier. Hvis hovedflowet er afbrudt, rapporterer fejlhรฅndteringstests stรธj snarere end reelle defekter.
- Det gentages efter hver fejlrettelse, hvilket er hvor det overlapper med regressionstest.
Teststrategi for ikke-destruktiv testning
Strategien for ikke-destruktiv testning er bevidst enkel, og disciplinen ligger i at forblive positiv snarere end i at anvende vรฆrktรธjer.
- Tilgangen til ikke-destruktiv prรธvning bรธr vรฆre positiv.
- Formรฅlet med NDT-teknikken er at bevise, at en applikation vil fungere, nรฅr den fรฅr gyldige inputdata.
- Der er ingen sรฆrlige krav eller behov for at udfรธre ikke-destruktiv testning.
- Bedste praksis for ikke-destruktiv testning er at kontrollere, om systemet gรธr, hvad det skal.
Diagrammet nedenfor opsummerer, hvordan strategien normalt er organiseret pรฅ tvรฆrs af en testcyklus.
Sรฅdan skriver du ikke-destruktive (positive) testcases
En ikke-destruktiv testcase er kun nyttig, nรฅr dens input er beviseligt gyldigt, og dens forventede resultat kommer fra et krav snarere end fra testerens antagelse. De fรธlgende trin producerer den slags test sag.
Trin 1) Vรฆlg รฉt acceptkriterium. Lรฆs kravet, og gentag det som รฉn verificerbar erklรฆring, for eksempel "brugernavnsfeltet accepterer seks til tyve alfanumeriske tegn".
Trin 2) Vรฆlg gyldige inputdata. Vรฆlg vรฆrdier, der ligger komfortabelt inden for det tilladte omrรฅde. รkvivalensopdeling hjรฆlper her โ รฉn reprรฆsentativ vรฆrdi pr. gyldig partition er normalt nok.
Trin 3) Skriv det forventede resultat, fรธr du udfรธrer det. Det forventede resultat skal skrives ud fra specifikationen. At skrive det efter kรธrslen forvandler testen til en beskrivelse af, hvad buildet tilfรฆldigvis gjorde.
Trin 4) Hold trinnene i brugerens rรฆkkefรธlge. Sekvensen skal matche, hvordan en rigtig bruger ville udfรธre opgaven, fordi pointen med teknikken er at bekrรฆfte den tilsigtede rejse.
Trin 5) Registrer kravidentifikatoren. TracAt bringe sagen tilbage til dens kriterium er det, der gรธr det muligt for teamet at bevise dรฆkning under en gennemgang.
Et eksempel pรฅ et login-modul ser sรฅdan ud.
| Felt | Ikke-destruktiv testcase |
|---|---|
| Krav | Brugernavn accepterer 6-20 alfanumeriske tegn |
| Test data | Brugernavn guru99tester, gyldig matchende adgangskode |
| Steps | ร bn loginsiden, indtast legitimationsoplysningerne, og vรฆlg Log ind |
| Forventet resultat | Legitimationsoplysninger accepteres, og hjemmesiden vises |
| Type | Positiv/lykkelig vej |
Bemรฆrk, at intet i sagen forsรธger at bryde feltet. En sag, der indtaster fem tegn for at se fejlmeddelelsen, er en negativ test, ikke en ikke-destruktiv en.
Eksempler pรฅ ikke-destruktiv testning
Eksemplet nedenfor viser, hvordan ikke-destruktiv testning opfรธrer sig pรฅ tvรฆrs af en multimodulapplikation, efter at en fejl er blevet rettet.
- En applikation har fem moduler: loginside, startside, brugerdetaljeside, oprettelse af nye brugere og oprettelse af opgaver.
- Antag, at der er en fejl pรฅ login-siden: brugernavnsfeltet accepterer fรฆrre end seks alfanumeriske tegn. Dette er imod det fastsatte krav, som siger, at brugernavnet ikke mรฅ acceptere fรฆrre end seks tegn, sรฅ opfรธrslen er en defekt.
- Fejlen rapporteres til udviklingsteamet via den sรฆdvanlige metode. proces til hรฅndtering af fejl, det er rettet, og build'et sendes tilbage til testholdet.
- Testteamet tjekker ikke kun loginsiden, hvor fejlen blev rettet, men tester ogsรฅ de andre moduler. Mens de tester alle modulerne med gyldige data, udfรธrer de ikke-destruktiv testning, simpelthen for at bekrรฆfte, at hele applikationen stadig fungerer korrekt.
Ikke-destruktiv testning vs. destruktiv testning
De to teknikker undervises ofte sammen, fordi de besvarer modsatrettede spรธrgsmรฅl om den samme bygning. Destruktiv test ser efter det punkt, hvor softwaren giver efter, mens ikke-destruktiv testning bekrรฆfter, at den tilsigtede adfรฆrd holder.
| Aspect | Ikke-destruktiv testning | Destruktiv test |
|---|---|---|
| Intention | Interager korrekt med applikationen og verificer positive resultater | Angiv usรฆdvanligt eller ugyldigt input for at finde fejlpunktet |
| Indtast data | Gyldige data hentet fra kravet | Ugyldige, korrupte eller ude af rรฆkkefรธlge data |
| Nรธdvendige krav | Ja โ sager skrives i henhold til acceptkriterier | Ikke nรธdvendigvis; testere arbejder uden brugerhistoriebias |
| Hvad det afslรธrer | Svagheder i funktionaliteten i forhold til specifikationen | Svagheder i design, robusthed og genvindingsevne |
| Relaterede teknikker | Rรธgtest, funktionstest | Abetestning, udforskende testning |
De to er komplementรฆre snarere end alternativer. At kรธre ikke-destruktiv test alene efterlader fejlhรฅndtering ubekrรฆftet, og at kรธre destruktiv test alene beviser aldrig, at produktet fungerer.
Fordele og begrรฆnsninger ved ikke-destruktiv softwaretestning
At vide, hvor teknikken holder op med at vรฆre nyttig, er lige sรฅ vigtigt som at vide, hvad den dรฆkker.
Fordele
- Hurtig at designe og udfรธre, fordi testdataene kommer direkte fra specifikationen.
- Krรฆver intet sรฆrligt miljรธ, fejlinjektion eller beskadiget datasรฆt.
- Producerer dokumentation, der afspejler kravene รฉn-til-รฉn, hvilket passer til revisioner og godkendelser.
- Fungerer lige sรฅ godt som manuel test og som skrevet automatiseringstest, sรฅ de samme tilfรฆlde kan genbruges i en regressionssuite.
- Giver et tidligt, รฆrligt signal om bygningens tilstand pรฅ ethvert niveau, fra enhed til integrationstest til system test.
Begrรฆnsninger
- En fuld gennemgang siger intet om, hvordan applikationen opfรธrer sig med ugyldigt input, sรฅ alvorlige fejlhรฅndteringsfejl kan overleve den.
- Dรฆkningen er begrรฆnset af kravenes kvalitet. Alt, der ikke er specificeret, testes aldrig.
- Det kan skabe falsk selvtillid, nรฅr den lykkelige vej er den eneste vej, der praktiseres fรธr en frigรธrelse.
- Den mรฅler ikke robusthed, restitution eller ydeevne under stress, som krรฆver deres egne teknikker fra det bredere sรฆt af typer af softwaretest.
Betragt ikke-destruktiv testning som den grundlรฆggende metode, som alle andre teknikker bygger pรฅ, og planlรฆg den inden for den bredere ramme. livscyklus for softwaretest snarere end som en engangsaktivitet.


