Mis on tarkvaras destruktiivne testimine?
⚡ Nutikas kokkuvõte
Destruktiivne testimine surub tarkvararakendust tahtlikult seni, kuni see ebaõnnestub, paljastades täpsed punktid, kus töökindlus ebaõnnestub ebaõige kasutamise, sobimatu sisendi ja ettearvamatu käitumise tõttu, kuhu tavalised funktsionaalsed kontrollid kunagi ei jõua.

Mis on hävitav testimine?
Destruktiivne katsetamine on tarkvara testimise meetod, mida kasutatakse tarkvaraprogrammi tõrkekohtade leidmiseks. Selle tehnika puhul pannakse rakendus tahtlikult ebaõnnestuma, et saaks kontrollida selle töökindlust ja tuvastada tõrkekohti. Erinevalt testimismeetoditest, mis kontrollivad, mida rakendus peaks tegema, uurib destruktiivne testimine ettearvamatut kasutajakäitumist rakenduses.
Algsete nõuete tundmine ei ole purustava testimise jaoks vajalik. Mõningane teadmine on aga arendusprotsessis abiks.ping hea testimisstrateegia.
Allolev illustratsioon tabab idee – testija töötab toote vastu, mitte koos sellega.
Miks tehakse destruktiivset testimist?
- See aitab mõista tarkvara ennustatavat käitumist olukordades, kus seda kasutatakse valesti.
- See aitab kontrollida tarkvaratoote töökindlust.
- See toob esile haruldased defektid, mida tavakasutajad kunagi ei põhjusta, kuid mis ilmnevad hiljem tootmises.
Hävitav testimine vs mittepurustav testimine
Need kaks lähenemisviisi täiendavad teineteist, mitte ei ole konkurendid. Mittepurustav katsetamine – mida nimetatakse ka positiivseks või õnneliku tee testimiseks – suhtleb tarkvaraga korrektselt ja jätab versiooni puutumata. Destruktiivne testimine toimib vastupidiselt: see toidab vigaseid andmeid ja valesid järjestusi, kuni midagi katki läheb.
| Aspekt | Destruktiivne katsetamine | Mittepurustav katsetamine |
| Tahtlus | Rakenduse sundimine nurjuma | Veenduge, et rakendus töötab ettenähtud viisil |
| Kasutatud sisend | Kehtetu, vigane, vahemikust väljas, järjestusest väljas | Kehtivad andmed eeldatavas vahemikus |
| Küsimusele vastati | Kus ja kuidas see katki läheb? | Kas see teeb seda, mida peaks? |
| Nõuete tundmine | vabatahtlik | oluline |
| Tüüpiline maksumus | Kõrgem — uurimuslik ja avatud | Madalam — skriptitud ja korratav |
| Tulemus | Rikkepunktid, ulatuse piirid, taastumiskäitumine | Vastab spetsifikatsioonile või ei vasta sellele |
Mida kontrollitakse destruktiivse testimise käigus?
Destruktiivne testimine vaatleb käitumispiiri mõlemat poolt:
- Tarkvara õige käitumine
- Tarkvara vale käitumine
- Ebaõige kasutamine
- Valed sisendandmed
- Õiged väljundandmed
Kogu harjutuse vältel peavad kehtima kaks tingimust:
- Tarkvara ei tohi kunagi töödelda ega aktsepteerida sobimatuid sisendandmeid.
- Olenemata sisendandmete kehtivusest või õigsusest peaks tarkvara alati tootma korrektseid väljundandmeid.
Kuidas teha hävitavat testimist?
Destruktiivne testimine hõlmab paljusid tegevusi, näiteks testiskriptide komplekti kavandamist, nende käivitamist, vigade esiletõstmist, vigade parandamist ning iteratsiooni lõpus sidusrühmadele läbimise või mitteläbimise mõõdikute edastamist.
Selle käivitamiseks on palju võimalusi. Järgnevalt on toodud mõned näited.
- Rikkepunktide analüüsi meetod: süsteemi läbivaatus, mis hindab, mis võib eri punktides valesti minna. Abi a-lt ärianalüütik võib selle strateegia jaoks võtta.
- Testijate vastastikune hindamine: saada oma testjuhtumid analüüsitud või üle vaadatud kaastestija poolt, kes on süsteemi või funktsiooniga vähem tuttav.
- Testjuhtumite äriline ülevaade: Lõppkasutajad või eksperdid mõtlevad sageli välja sobivaid stsenaariume, mis testijatel kahe silma vahele jäävad, kuna testija keskendub esitatud nõuetele.
- Tehke uurimuslikke katseid, kasutades arvutustabeleid: uurimuslik testimine Testimise käigus kogutud andmed registreeritakse testide arvu, mis võimaldab teste korrata ja hoiab testide ulatuse kontrolli all.
- Kasutage teist allikat: paluge kellelgi teisel tarkvaratoode lahti võtta ja leitud stsenaariume analüüsida.
Destruktiivse testimise näide
Mõelge pangarakenduse sisselogimis- ja profiiliekraanidele. Hävitav parool toimiks sellistel juhtudel:
- Kleepige 5,000 tähemärgi pikkune string 50 tähemärgiga väljale ja veenduge, et väli lükkab selle tagasi, selle asemel et seda vaikselt kärpida.
- Sisestage numbrilise summa väljale tähed, sümbolid ja negatiivsed väärtused.
- Katkesta oodatud järjestus – ava makse kinnitusleht otse ilma eelnevat sammu lõpetamata.
- Vajutage korduvalt ja kiiresti järjest nuppu „Esita“, et näha, kas luuakse duplikaatkirjeid.
- Katkestage võrguühendus tehingu keskel ja kontrollige, kas rakendus taastub korrektselt või jätab alles vaid osalise kirje.
Igal juhul on määratletud ootus: selge valideerimissõnum, andmete rikkumise puudumine ja käsitlemata erandite puudumine. Kõik muu on rike, mida tasub defektina tõstatada.
Destruktiivsed testimismeetodid
Tarkvaratehnikas kasutatakse destruktiivse testimise eesmärkide saavutamiseks järgmisi meetodeid:
- Alfa-/beetatestimine
- Regressioonitestimine
- Liidese testimine
- Ekvivalentsuse jagamine
- Loop testimine
- Vastuvõtutestid ja nii edasi
Destruktiivsed testimismeetodid
Allpool toodud tehnikaid saab kasutada muudatustega:
- Valge kasti testimine
- Turvakontroll
- Defektide testimine
- Suitsu testimine, ja nii edasi
Kui eesmärk on vastupidavus, tasub lisada kõrvaltehnikaid, näiteks negatiivne test, stressitestimine, taastumise testimine ja hägustestimine.
Destruktiivse testimise eelised ja puudused
Enne tehnika väljalaskeks kavandamist tasub kompromiss selgelt välja öelda.
Eelised
- Revtuvastab tõrkepunktid, milleni spetsifikatsioonipõhine testimine kunagi ei jõua.
- Määrab kindlaks tegelikud ulatuse piirid, et toodet saaks nende sees enesekindlalt kasutada.
- Paljastab haruldased defektid, mis ilmnevad tootmises kaua pärast väljaandmist.
- Kontrollib vastupidavust, taastatavust ja veakäsitlust väärkasutuse korral.
Puudused
- Oma olemuselt avatud, seega ei ole katvust võimalik garanteerida ega kergesti mõõta.
- Aeganõudev ja sõltub testija kogemusest ja loovusest.
- Ilma kasutatud sammude hoolika logimiseta võib leidude taasesitamine olla keeruline.
- Halvasti kontrollitud testid võivad jagatud testandmeid rikkuda, seega on vaja isoleeritud keskkonda.

