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.
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.
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.
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.


