Mis on dünaamiline testimine? Tüübid, tehnikad ja näited

⚡ Nutikas kokkuvõte

Dünaamiline testimine käivitab rakenduse ja jälgib, kuidas töötav kood reaalsete sisenditega käitub, et testijad saaksid valideerida funktsionaalsust, jõudlust ja stabiilsust, mida ükski dokumentide läbivaatamine ei suuda paljastada.

  • 🎯 Eesmärk: Valideeri reaalset käitusaegset käitumist, mitte dokumente, mis seda kirjeldavad.
  • 🔀 Kaks haru: Valge kast uurib koodi, must kast käitumist.
  • 🧱 Neli taset: Ühik-, integratsiooni-, süsteemi- ja vastuvõtutestid käivitavad kõik koodi.
  • ⚙️ Mittefunktsionaalne: Siin teostatakse jõudluse, taastamise, ühilduvuse, turvalisuse ja kasutatavuse kontrolle.
  • 🔄 Protsess: Strateegia, testide ülesehitus, keskkonna seadistamine, teostus ja defektide aruandlus.
  • 💰 Kompromiss: Põhjalikum defektide tuvastamine aja, keskkonna ja kulude eest.

Dünaamilise testimise tüübid, tehnikad ja näited

Mis on dünaamiline testimine?

Dünaamiline testimine on tarkvara testimise meetod, mida kasutatakse tarkvarakoodi dünaamilise käitumise testimiseks. Dünaamilise testimise peamine eesmärk on uurida tarkvara käitumist dünaamiliste muutujatega – muutujatega, mis ei ole konstantsed – ja leida tarkvara käituskeskkonnas nõrku kohti. Dünaamilise käitumise testimiseks tuleb kood käivitada.

Testimine on kontrollimine ja valideerimineja testimise lõpuleviimiseks on vaja mõlemat V-d. Verifitseerimine toimub staatilise testimise abil, mille käigus vaadatakse üle nõuded, disainidokumendid ja kood ilma neid käivitamata. Valideerimine toimub dünaamilise testimise abil, mille käigus käivitatakse ehitus ja võrreldakse rakenduse tegelikku tegevust sellega, mida see peaks tegema.

Allolev tabel eristab neid kahte lühidalt.

Aspekt Staatiline testimine (kontrollimine) Dünaamiline testimine (valideerimine)
Code täidetud Ei Jah
Tüüpilised tegevused Revülevaated, läbikäigud, ülevaatused, staatiline analüüs Testijuhtumite täitmine kõigil testimistasemetel
Küsimusele vastati Kas me ehitame toodet õigesti? Kas me ehitame õiget toodet?
Leitud defektid Ebamäärased nõuded, kodeerimisstandardite rikkumised, surnud kood Vale väljund, mälulekked, ajastusvead, integreerimisvead
Alustab Niipea kui artefakt on olemas Kui käivitatav järk on olemas
Paranduse suhteline maksumus Madalam, kuna defektid avastatakse varem Kõrgem, sest defektid ilmnevad hiljem

Dünaamilise testimise näide

Lühike näide illustreerib, kuidas dünaamiline testimine praktikas toimib.

Oletame, et testitakse sisselogimislehte. Sellel on kaks välja, kasutajanimi ja parool, ning kasutajanimi on piiratud tähtnumbriliste märkidega.

Kui kasutaja sisestab kasutajanime kujul „Guru99”, süsteem aktsepteerib selle. Kui kasutaja sisestab „Guru99@123” korral kuvab rakendus veateate. See tulemus näitab, et kood toimib dünaamiliselt vastavalt kasutaja sisendile.

Dünaamiline testimine tähendab seega töötamist tegeliku süsteemiga, sisendi andmist ja rakenduse tegeliku käitumise võrdlemist oodatava käitumisega – teisisõnu, süsteemiga töötamist vigade leidmise eesmärgil.

Dünaamiline testimine on seega tarkvararakenduse valideerimise protsess nii, nagu seda teeks lõppkasutaja erinevates keskkondades, et luua õige tarkvara.

Mida dünaamiline testimine teeb?

Dünaamiliste testide peamine eesmärk on tagada tarkvara korrektne toimimine installimise ajal ja pärast seda, pakkudes stabiilset rakendust ilma suuremate vigadeta. Ükski tarkvara pole täiesti veavaba ja testimine saab näidata defektide olemasolu, kuid mitte kunagi nende puudumist.

Nagu see näide näitab, tagavad dünaamilised testid ka tarkvara järjepidevuse.

Pangarakenduses on mitu ekraani, näiteks „Minu kontod”, „Rahaülekanded” ja Bill Maksa. Kõik need sisaldavad summavälja.

Oletame, et väljal „Minu kontod” kuvatakse summana 25 000, väljal „Rahaülekanne” kuvatakse 25 000 dollarit ja väljal „ Bill Makseekraanil kuvatakse 25 000 dollarit. Summa on sama, aga selle kuvamisviis on erinev, mis muudab tarkvara ebajärjekindlaks.

Järjepidevus ei piirdu ainult funktsionaalsusega. See hõlmab ka standardeid nagu jõudlus, kasutatavus ja ühilduvus, mistõttu on dünaamiline testimine nii oluline.

Dünaamilise testimise tüübid

Dünaamiline testimine jaguneb kahte kategooriasse.

  • Valge Box Testimine
  • Must Box Testimine

Allolev diagramm kaardistab need kaks kategooriat nende all asuvate testimistasemete suhtes.

Dünaamiline testimine jaotatakse valgeks ja mustaks kastiks funktsionaalsete ja mittefunktsionaalsete tasemetega

Iga tüüpi ja selle eesmärki kirjeldatakse allpool.

Valge Box Testimine — tarkvara testimise meetod, mille puhul testijale on teada sisemine struktuur ja disain. Selle peamine eesmärk on kontrollida süsteemi toimivust koodi põhjal. Seda teostavad peamiselt arendajad või valge kasti testijad, kellel on programmeerimisalased teadmised.

Must Box Testimine — testimismeetod, mille puhul testija EI tea sisemist struktuuri, koodi ja disaini. Selle peamine eesmärk on testitava süsteemi funktsionaalsuse kontrollimine. Seda tüüpi testimine nõuab kogu testikomplekti käivitamist, seda teevad peamiselt testijad ja see ei vaja programmeerimisalaseid teadmisi.

Musta kasti testimine liigitatakse taas kahte tüüpi.

  • Funktsionaalne testimine
  • Mittefunktsionaalne testimine

Funktsionaalne testimine

Funktsionaalne testimine tehakse selleks, et kontrollida, kas kõik väljatöötatud funktsioonid vastavad funktsionaalsetele spetsifikatsioonidele. See viiakse läbi funktsionaalse testjuhtumid kvaliteedikontrolli meeskonna kirjutatud. Selles etapis testitakse süsteemi sisendi esitamise, väljundi kontrollimise ja tegelike tulemuste ootavate tulemustega võrdlemise teel.

Funktsionaalsel testimisel on erinevaid tasemeid, millest kõige olulisemad on allpool toodud neli.

  • Üksuse testimine — ühiktestimine on väike, testitav kooditükk. Ühiktestimist teostatakse individuaalsel tarkvaraüksusel ja seda teevad arendajad.
  • Integratsiooni testimine — teostatakse pärast ühiktestimist, kombineerides üksikuid testitavaid üksusi. Seda teevad kas arendajad või testijad.
  • Süsteemi testimine — teostatakse tagamaks, et süsteem käitub vastavalt nõuetele. Üldiselt teostatakse seda testijate poolt siis, kui kogu süsteem on valmis ja järguversioon on kvaliteedikontrolli meeskonnale avaldatud.
  • Vastuvõtu testimine — teostatakse selleks, et kontrollida, kas süsteem vastab ärinõuetele ja on kasutus- või juurutamisvalmis. Seda teevad üldiselt lõppkasutajad.

Mittefunktsionaalne testimine

Mittefunktsionaalne testimine on testimistehnika, mis ei keskendu funktsionaalsetele aspektidele, vaid keskendub süsteemi mittefunktsionaalsetele omadustele, nagu mälulekked, jõudlus või töökindlus. Mittefunktsionaalset testimist tehakse kõigil testimistasemetel.

On palju mittefunktsionaalseid testimistehnikaid, millest olulisemad on allpool toodud viis.

  • Jõudluse testimine — kontrollib, kas süsteemi reageerimisaeg on soovitud võrgukoormuse korral normaalne ja vastab nõuetele.
  • Taastamise testimine — kontrollib, kui hästi süsteem taastub krahhidest ja riistvaratõrgetest.
  • Ühilduvuse testimine — kontrollib, kuidas süsteem erinevates keskkondades käitub.
  • Turvalisuse testimine — kontrollib rakenduse töökindlust, tagades, et süsteemile pääsevad ligi ainult volitatud kasutajad ja rollid.
  • Kasutatavuse testimine — kontrollib süsteemi kasutatavust lõppkasutajate poolt ja seda, kui mugavalt nad sellega tunnevad.

Dünaamilised testimistehnikad

Kui tüübid on paika pandud, on järgmine küsimus, kuidas dünaamilist katsetsüklit tegelikult läbi viiakse.

Dünaamilised testimistehnikad STLC koosneda sellistest ülesannetest nagu testide nõuete analüüs, testi planeerimine, testijuhtumite kavandamine ja rakendamine, testikeskkonna seadistamine, testijuhtumite käivitamine, vigadest teatamine ja lõpuks testi sulgemine. Iga dünaamilise testimise ülesanne sõltub eelmise testimisprotsessi ülesande lõpuleviimisest.

STLC-s algab tegelik dünaamilise testimise protsess testjuhtumi kavandamisest. Allolev diagramm näitab tegevuste järjestust, millest igaüks on kirjeldatud.

Dünaamiline testimisprotsess alates testi kavandamisest ja teostamisest kuni vigade teatamiseni

Enne protsessi alustamist tuleb kokku leppida dünaamilise testimise strateegia.

Testimisstrateegia peaks keskenduma peamiselt olemasolevatele ressurssidele ja ajaraamile. Nende kahe teguri põhjal tuleb dokumenteerida testimise eesmärk, testimise ulatus, testimise etapid või tsüklid, keskkonna tüüp, eeldused või väljakutsed, millega võidakse kokku puutuda, ja riskid.

Kui strateegia on määratletud ja juhtkond on selle heaks kiitnud, algab tegelik testjuhtumi kavandamise protsess.

Testide kavandamine ja rakendamine

Selles etapis tuvastab meeskond järgmise.

  • Testitavad omadused
  • Nendest omadustest tuletatud katsetingimused
  • Testitingimustest tuletatud katvusüksused
  • Katvusüksustest tuletatud testijuhtumid

Must kast testide kavandamise tehnikad näiteks ekvivalentsusjaotus, ääreväärtuste analüüs, otsustustabeli testimine ja oleku ülemineku testimine on need, mis muudavad testitingimuse konkreetseks täidetavate juhtumite kogumiks.

Testikeskkonna seadistamine

. testimiskeskkond peaks alati olema sarnane tootmiskeskkonnaga. Selles etapis installitakse versioon ning hallatakse ja konfigureeritakse testmasinaid.

Testi täitmine

Selle etapi jooksul testid tegelikult käivitatakse, kas käsitsi või automaatikaja tegelikud tulemused registreeritakse oodatavate tulemuste taustal.

Veaaruanne on jäädvustatud

Kui eeldatavad ja tegelikud tulemused ei ole teostuse põhjal samad, tuleb test märkida ebaõnnestunuks ja logida viga. defektide haldamine protsessi.

Dünaamilise testimise eelised

  • Dünaamiline testimine paljastab defekte, mida peetakse liiga raskeks või keeruliseks tabada ning mida staatiline analüüs üldse katta ei suuda.
  • Tarkvara teostatakse otsast lõpuni, mis tõstab nii toote kui ka projekti kvaliteeti.
  • Dünaamiline testimine on oluline vahend töötava süsteemi turvaohtude tuvastamiseks.
  • Ainult käitusaja vead, näiteks mälulekked, ajastusprobleemid ja integreerimisvead, ilmnevad siin ja mitte kusagil mujal.

Dünaamilise testimise puudused

  • Dünaamiline testimine on aeganõudev, kuna rakenduse või koodi käivitamine nõuab palju ressursse.
  • See suurendab projekti maksumust, kuna see ei alga tarkvara elutsükli alguses ja hilisemates etappides lahendatud probleemide parandamine on kallim.
  • Tootmiskeskkonnale sarnane keskkond ja realistlikud testiandmed on eelduseks ning mõlema loomine ja hooldamine nõuab pingutust.

KKK

Arendajad vastutavad valge kasti poole eest, käivitades üksuste ja komponentide kontrollid. Kvaliteedikontrollijad vastutavad musta kasti poole eest alates süsteemi testimisest. Lõppkasutajad lõpetavad tsükli vastuvõtutestimisega.

Mudelid loevad nõudeid ja olemasolevaid juhtumeid ning pakuvad seejärel välja piirväärtused, sobimatud sisendid ja olekujärjestused, mida inimlik ülesannete kogum tavaliselt vahele jätab. Testija kinnitab enne käivitamist ikkagi iga oodatava tulemuse.

Jah. Väidete koostamine, leheobjektid ja kinnitusdetailide seadistamine on korduv kood, millega assistent hästi hakkama saab. Õige käitumise otsustamine jääb inimlikuks otsustuseks, mis põhineb nõuetel.

Ühikuraamistikud, näiteks JUnit, TestNG ja pytest, lisaks UI ja API käivitajad, näiteks Selenium, Cypress ja PostmanLaadige tööriistu, näiteks JMeter katta mittefunktsionaalne külg automaatika.

Valge kasti tööaruannete aruanne, harude ja radade katvus instrumenteeritud tsüklite põhjal. Musta kasti tööaruannete nõuete ja testitingimuste katvus. Kumbki number üksi ei tõesta, et ehitust on piisavalt testitud.

Ei. Dünaamiline testimine kirjeldab koodi käivitamist, olenemata sellest, kes või mis seda juhib. käsiraamat run ja automatiseeritud regressioonikomplekt on mõlemad dünaamilised testid.

Jah. Dünaamiline rakenduste turvalisuse testimine uurib töötavat rakendust väljastpoolt, täpselt nagu musta kasti. turvalisuse testimine teeb ja annab teada haavatavustest, mis ilmnevad ainult käitusajal.

See on ühe selgroog. Üksuse ja API komplektid kontrollivad iga commit'i, samas kui pikema aja jooksul... regressioon ja jõudlustestid käivitatakse igal õhtul juurutatud järgu suhtes.

Võta see postitus kokku järgmiselt: