Mis on ühikutestimine?
Mis on ühikutestimine?
Üksuse testimine on tarkvara testimise tüüp, mille käigus testitakse tarkvara üksikuid üksusi või komponente. Eesmärk on kinnitada, et iga tarkvarakoodi üksus toimib ootuspäraselt. Ühiktestimine toimub rakenduse arendamise (kodeerimisetapi) ajal arendajate poolt. Ühiktestid eraldavad koodi osa ja kontrollivad selle õigsust. Üksus võib olla individuaalne funktsioon, meetod, protseduur, moodul või objekt.
SDLC, STLC, V mudeli puhul on üksuse testimine esimene testimise tase, mis tehakse enne integratsiooni testimist. Ühiku testimine on valgeBox testimistehnika, mida tavaliselt teostab arendaja. Kuigi praktilises maailmas ajapuuduse või arendajate vastumeelsuse tõttu testimise suhtes teevad kvaliteedikontrolli insenerid ka ühikuteste.
Üksuse testimise video selgitus
Miks teha ühikutesti?
Üksuse testimine on oluline, sest tarkvaraarendajad püüavad mõnikord minimaalse ühikutestimisega aega säästa ja see on müüt, sest sobimatu ühikutestimine põhjustab suuri kulusid Defekt fikseerimine ajal Süsteemi testimine, Integratsiooni testimine ja isegi beetatestimine pärast rakenduse loomist. Kui varajases arenduses tehakse korralik ühikutestimine, säästab see kokkuvõttes aega ja raha.
Siin on peamised põhjused, miks tarkvaratehnikas ühikutesti teha.
- Ühikutestid aitavad vead parandada arendustsükli alguses ja säästa kulusid.
- See aitab arendajatel mõista testimiskoodi baasi ja võimaldab neil kiiresti muudatusi teha
- Head ühikutestid toimivad projekti dokumentatsioonina
- Ühikutestid aitavad koodi taaskasutada. Migreerige mõlemad oma koodid ja testid oma uuele projektile. Muutke koodi, kuni testid uuesti käivituvad.
Kuidas üksuse testimist läbi viia
Ühiktestide käivitamiseks kirjutavad arendajad koodiosa, et testida tarkvararakenduses konkreetset funktsiooni. Arendajad saavad selle funktsiooni ka isoleerida, et testida rangemalt, mis paljastab mittevajalikud sõltuvused testitava funktsiooni ja muude üksuste vahel, nii et sõltuvusi saab kõrvaldada. Arendajad kasutavad üldiselt UnitTesti raamistik üksuse testimise automatiseeritud testjuhtumite väljatöötamiseks.
Ühiku testimist on kahte tüüpi
- Käsitsi
- Automatiseeritud
Ühiku testimine on tavaliselt automatiseeritud, kuid seda võib siiski teha käsitsi. Tarkvaratehnika ei eelista üht teisele, kuid eelistatakse automatiseerimist. Manuaalne lähenemine ühikutestimisele võib kasutada samm-sammult juhisdokumenti.
Automatiseeritud lähenemise korral
- Arendaja kirjutab rakenduses koodilõigu lihtsalt funktsiooni testimiseks. Hiljem kommenteerisid nad rakenduse juurutamisel ja lõpuks eemaldavad testkoodi.
- Arendaja võib funktsiooni ka isoleerida, et seda rangemalt testida. See on põhjalikum üksuse testimise praktika, mis hõlmab koodi kopeerimist ja kleepimist oma testimiskeskkonda kui selle loomulikku keskkonda. Koodi eraldamine aitab paljastada mittevajalikud sõltuvused testitava koodi ja muude üksuste või andmeruumide vahel tootes. Seejärel saab need sõltuvused kõrvaldada.
- Kodeerija kasutab automatiseeritud testjuhtumite väljatöötamiseks tavaliselt UnitTest Frameworki. Automatiseerimisraamistiku abil kodeerib arendaja testi kriteeriumid, et kontrollida koodi õigsust. Testjuhtumite täitmise ajal logib raamistik ebaõnnestunud testjuhtumid. Paljud raamistikud märgistavad need ka automaatselt ja esitavad need kokkuvõttes ebaõnnestunud testjuhtumid. Olenevalt tõrke tõsidusest võib raamistik edasise testimise peatada.
- Üksustestimise töövoog on 1) testjuhtumite loomine 2) Revvaade/Ümbertöötamine 3) Algtase 4) Käivitage testjuhtumid.
Üksuse testimise tehnikad
. Üksuse testimise tehnikad jagunevad peamiselt kolme ossa, milleks on musta kasti testimine, mis hõlmab kasutajaliidese testimist koos sisendi ja väljundiga, valge kasti testimine, mis hõlmab tarkvararakenduse funktsionaalse käitumise testimist ja hallkasti testimine, mida kasutatakse testkomplektide käivitamiseks, testimismeetodid , testjuhtumid ja riskianalüüsi tegemine.
Üksuse testimisel kasutatavad koodikatvuse tehnikad on loetletud allpool.
- Väljavõtte katvus
- Otsuste katvus
- Filiaalide katvus
- Seisundi katvus
- Piiratud olekuga masina katvus
Lisateabe saamiseks vaadake https://www.guru99.com/code-coverage.html
Üksuse testimise näide: Mock Objects
Üksuse testimine tugineb näidisobjektide loomisele, et testida koodiosi, mis ei ole veel täieliku rakenduse osad. Näidisobjektid täidavad programmi puuduvaid osi.
Näiteks võib teil olla funktsioon, mis vajab muutujaid või objekte, mida pole veel loodud. Üksuse testimisel võetakse neid arvesse näidisobjektide kujul, mis on loodud ainult selles koodilõigu ühikutestimise eesmärgil.
Ühiku testimise tööriistad
Saadaval on mitu automatiseeritud seadmetesti tarkvara, mis aitavad tarkvara testimisel üksuse testimist. Toome allpool mõned näited:
- Junit: Junit on tasuta kasutatav testimistööriist Java programmeerimiskeel. See sisaldab väiteid katsemeetodi tuvastamiseks. See tööriist testib esmalt andmeid ja seejärel sisestatakse kooditükki.
- NUnit: NUnit on laialdaselt kasutatav üksuse testimise raamistik kõigi .net keelte jaoks. See on avatud lähtekoodiga tööriist, mis võimaldab skripte käsitsi kirjutada. See toetab andmepõhiseid teste, mis võivad töötada paralleelselt.
- JMockit: JMockit on avatud lähtekoodiga üksuste testimise tööriist. See on joon- ja teemõõdikutega koodikatte tööriist. See võimaldab pilkamist API-d salvestamise ja kinnitamise süntaksiga. See tööriist pakub liini katvust, tee katvust ja andmekatet.
- EMMA: EMMA on avatud lähtekoodiga tööriistakomplekt sisse kirjutatud koodi analüüsimiseks ja aruandluseks Java keel. Emma toetab katvuse tüüpe, nagu meetod, rida, põhiplokk. On küll Java-põhine, nii et see on ilma väliste teegi sõltuvusteta ja pääseb juurde lähtekoodile.
- PHPUnit: PHPUnit on üksuse testimise tööriist PHP programmeerijale. See võtab väikesed osad koodist, mida nimetatakse ühikuteks, ja testib neid kõiki eraldi. Tööriist võimaldab ka arendajatel kasutada eelnevalt määratletud kinnitusmeetodeid, et kinnitada, et süsteem käitub teatud viisil.
Need on vaid mõned saadaolevatest üksuste testimise tööriistadest. Neid on palju rohkem, eriti C keeled ja Java, kuid kindlasti leiate oma programmeerimisvajaduste jaoks ühikutestimise tööriista, olenemata kasutatavast keelest.
Testipõhine arendus (TDD) ja üksuse testimine
Üksuse testimine TDD-s hõlmab laialdast testimisraamistike kasutamist. Üksuse testimise raamistikku kasutatakse automatiseeritud ühikutestide loomiseks. Üksuse testimise raamistikud ei ole TDD jaoks ainulaadsed, kuid on selle jaoks olulised. Allpool vaatleme, mida TDD ühikutestimise maailma toob:
- Testid kirjutatakse enne koodi
- Toetuge suuresti testimisraamistikele
- Kõiki rakendustes olevaid klasse testitakse
- Võimalik on kiire ja lihtne integreerimine
Ühiku testimise müüt
Müüt: See nõuab aega ja mul on alati ülegraafik
Minu kood on kivikindel! Ma ei vaja ühikuteste.
Müüdid on oma olemuselt valed oletused. Need eeldused viivad nõiaringini järgmiselt:
Tõde on üksuse testimine, mis kiirendab arengut.
Programmeerijad arvavad, et integratsioonitestimine tabab kõik vead ja ei teosta üksuse testi. Kui üksused on integreeritud, kulub väga lihtsate vigade jälgimiseks ja parandamiseks, mida oleks võinud testitud seadmes väga kergesti leida ja parandada.
Üksuse testimise eelis
- Arendajad, kes soovivad teada saada, milliseid funktsioone üksus pakub ja kuidas seda kasutada, saavad vaadata üksuse teste, et saada üksuse API-st põhiteadmised.
- Ühiku testimine võimaldab programmeerijal koodi hiljem uuesti faktoreerida ja veenduda, et moodul ikka korralikult töötab (st Regressioonitestimine). Protseduur on kõigi funktsioonide ja meetodite testjuhtumite kirjutamine, nii et kui muudatus põhjustab tõrke, saab selle kiiresti tuvastada ja parandada.
- Seadmetestimise modulaarse olemuse tõttu saame testida projekti osi, ootamata teiste valmimist.
Üksuse testimise puudused
- Ühiku testimisel ei saa eeldada, et kõik programmi vead tabavad. Isegi kõige triviaalsemates programmides pole võimalik kõiki täitmisteid hinnata
- Ühiktestimine keskendub oma olemuselt koodiühikule. Seetõttu ei suuda see tuvastada integratsioonivigu ega laiaulatuslikke süsteemitaseme vigu.
Ühiktestimist on soovitatav kasutada koos muude testimistoimingutega.
Üksuse testimise parimad tavad
- Üksustesti juhtumid peaksid olema sõltumatud. Mis tahes täiustuste või nõuete muutmise korral ei tohiks see ühikutesti juhtumeid mõjutada.
- Testige korraga ainult ühte koodi.
- Järgige oma ühikutestide puhul selgeid ja järjepidevaid nimetamistavasid
- Koodimuutuste korral mis tahes moodulis veenduge, et oleks olemas vastav üksus Testjuhtum mooduli jaoks ja moodul läbib testid enne juurutuse muutmist
- Seadme testimise käigus tuvastatud vead tuleb enne SDLC järgmisse faasi minekut parandada
- Kasutage lähenemist "testi oma koodina". Mida rohkem koodi ilma testimiseta kirjutate, seda rohkem teid peate vigade kontrollimiseks.
kokkuvõte
- ÜHIKUTE TESTIMINE on määratletud kui tarkvara testimise tüüp, mille käigus testitakse tarkvara üksikuid üksusi või komponente.
- Nagu näete, võib üksuse testimisega olla palju seotud. See võib olenevalt testitavast rakendusest ja testimisstrateegiatest, tööriistadest ja filosoofiast olla keeruline või pigem lihtne. Üksuse testimine on alati mingil tasemel vajalik. See on kindlus.