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.

  • ???? Pรตhiidee: Rakendus on meelega ebaรตnnestuma pandud, et selle tรตrkekohad oleksid nรคhtavad ja mรตรตdetavad.
  • ๐Ÿ”Ž Nรตudeid pole vaja: Spetsifikatsiooni eelnev tundmine on valikuline, kuigi see teravdab testimisstrateegiat.
  • ๐Ÿ‡ง๐Ÿ‡ท Vastaspaar: Mittepurustav testimine kรคib รตnnelikku rada; destruktiivne testimine rรผndab seda igast vale nurga alt.
  • ๐Ÿงฐ Lรคhenemised: Veapunktide analรผรผs, testijate vastastikune hindamine, รคriรผlevaade ja uurimuslikud katsetused koos katselehtedega.
  • ๐Ÿงช Taaskasutatud meetodid: Regressioon, liidestestimine, ekvivalentsusjaotus, tsรผkli- ja vastuvรตtutestimine teenivad kรตik destruktiivseid eesmรคrke.
  • ๐Ÿ“‰ Ausad piirid: Katvust on raske garanteerida, pingutus on suur ja leide vรตib olla raske korrata.

Mis on tarkvaras destruktiivne testimine koos meetodite ja tehnikatega

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.

Destruktiivse testimise kontseptsioon: rakendus, mida tahtlikult surutakse rikkepunkti.

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:

Destruktiivsed testimismeetodid

Allpool toodud tehnikaid saab kasutada muudatustega:

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.

KKK

Need kattuvad, kuid erinevad ulatuse poolest. Negatiivne test kontrollib mรครคratletud sobimatuid sisendeid oodatava veakรคsitluse suhtes. Destruktiivne testimine on laiem ja avatud, otsides mis tahes tingimust, mis pรตhjustab rakenduse ebaรตnnestumise.

Tavaliselt kogenud kvaliteedikontrolli insenerid, keda toetavad mooduliga mitte tuttavad kolleegid ja รคrikasutajad. Vรคline pilk on oluline, sest funktsiooni loonud inimesed kipuvad seda testima nii, nagu see oli kavandatud.

Pรคrast seda, kui funktsionaalne komplekt on stabiilne, viitavad tรตrked pigem vastupidavusele kui lรตpetamata funktsioonidele. Paljud meeskonnad planeerivad selle sรผsteemi testimise ajal ja kordavad seda enne suuremaid vรคljaandeid. testimise elutsรผkkel.

Mudelid genereerivad vigaseid kasulikke koormusi, piirvรครคrtusi ja ebatavalisi toimingujadasid mahus, millega รผkski testija ei suuda sammu pidada, ning seejรคrel jรคrjestavad need, mis tekitasid anomaaliaid. Masinรตpe varasemate defektide andmete pรตhjal ennustab ka, millised moodulid vรครคrivad kรตige karmimat kohtlemist.

GitHubi koopia koostab kiiresti sisendgeneraatorid, piirjuhtumid ja lahtivรตtmise rutiinid. Testija otsustab ikkagi, millised rikkeviisid on olulised ja kas vaadeldav kรคitumine loetakse vastuvรตetavaks tulemuseks.

Tรคpne kasutatud sisend vรตi jรคrjestus, tรคheldatud tรตrge, logid ja ekraanipildid, keskkond ja mรตju raskusaste. Iteratsiooni lรคbimise vรตi lรคbikukkumise mรตรตdikud edastatakse sidusrรผhmadele koos defektide andmed.

See ei tohiks kunagi tootmiskeskkonda puutuda. Kรคitage seda isoleeritud keskkonnas taastatavate andmetega, sest tahtlikult vale sisend ja sunnitud krahhid vรตivad jรคtta osalisi kirjeid, mille puhastamine on kulukas.

Seansi ajal pidage jooksvat tabelit, kuhu salvestate kรตik toimingud ja sisendid รตiges jรคrjekorras. Esitage tabelit uuesti puhtalt olekust ja seejรคrel lรผhendage see lรผhima jรคrjestuseni, mis ikka veel tรตrke kรคivitab.

Vรตta see postitus kokku jรคrgmiselt: