Üksuse testimise õpetus: mis on, tüübid, tööriistad ja Test NÄIDE

Lang L: none (table-of-contents):

Anonim

Mis on üksuse testimine?

UNIT TESTING on tarkvara testimise tüüp, kus testitakse tarkvara üksikuid üksusi või komponente. Selle eesmärk on kontrollida, kas tarkvarakoodi iga üksus toimib ootuspäraselt. Ühikute testimine toimub arendajate poolt rakenduse väljatöötamise (kodeerimise etapis) ajal. Ühikutestid eraldavad koodiosa ja kontrollivad selle õigsust. Üksus võib olla üksikfunktsioon, meetod, protseduur, moodul või objekt.

SDLC, STLC, V mudeli korral on üksuse testimine enne integreerimise testimist tehtud esimese taseme testimine. Ühikutestimine on WhiteBoxi testimistehnika, mida tavaliselt teeb arendaja. Praktilises maailmas teevad QA insenerid aja testimise või testijate vastumeelsuse tõttu ka testimist.

Selles õpetuses saate teada

  • Miks üksuste testimine?
  • Kuidas teha üksuste testimist
  • Üksuse testimise tehnikad
  • Üksuse testimise tööriistad
  • Testpõhine arendus (TDD) ja üksuste testimine
  • Üksuse müüti katsetav
  • Üksuse testimise eelis
  • Üksuse testimise puudused
  • Parimate tavade testimise üksus

Miks üksuste testimine?

Üksuste testimine on oluline, kuna tarkvaraarendajad üritavad mõnikord säästa aega, tehes minimaalselt üksuste testimist, ja see on müüt, sest üksuse sobimatu testimine toob süsteemi rakendamise, integreerimise testimise ja isegi beetatestimise ajal pärast rakenduse loomist kõrge defekti parandamise. Kui varases arenduses tehakse korralik üksuste testimine, säästab see lõpuks aega ja raha.

Siin on peamised põhjused tarkvaratehnikas üksuste testimiseks:

Üksuse testimise tasemed
  1. Ühikutestid aitavad vigu parandada juba arendustsükli alguses ja säästavad kulusid.
  2. See aitab arendajatel mõista testimiskoodi ja võimaldab neil kiiresti muudatusi teha
  3. Hea ühikutest on projekti dokumentatsioon
  4. Ühikute testid aitavad koodi uuesti kasutada. Migreerige nii oma kood kui ka testid uude projekti. Muutke koodi, kuni testid uuesti käivitatakse.

Kuidas teha üksuste testimist

Selleks , et teha Unit Testing , arendajad kirjutada koodi osa testida konkreetse funktsiooni tarkvara rakendus. Arendajad saavad selle funktsiooni rangemaks testimiseks isoleerida ka, mis näitab tarbetuid sõltuvusi testitava funktsiooni ja teiste üksuste vahel, nii et sõltuvused saab kõrvaldada. Arendajad kasutavad tavaliselt UnitTesti raamistikku ühikute testimiseks automatiseeritud testijuhtumite väljatöötamiseks.

Ühikute testimine on kahte tüüpi

  • Käsitsi
  • Automatiseeritud

Ühikute testimine on tavaliselt automatiseeritud, kuid võib siiski toimuda käsitsi. Tarkvaratehnika ei soosi üht teist, kuid eelistatud on automatiseerimine. Üksuse katsetamise käsitsi käsitlemisel võib kasutada järkjärgulist juhenddokumenti.

Automatiseeritud lähenemisviisi

  • Arendaja kirjutab rakenduses koodijao lihtsalt funktsiooni testimiseks. Hiljem kommenteerivad nad ja eemaldavad testkoodi rakenduse juurutamisel.
  • Arendaja võib funktsiooni rangemaks testimiseks ka isoleerida. See on põhjalikum ühikute testimise tava, mis hõlmab koodi kopeerimist ja kleepimist oma testimiskeskkonda kui looduslikku keskkonda. Koodi eraldamine aitab paljastada tarbetuid sõltuvusi testitava koodi ja toote muude üksuste või andmeruumide vahel. Seejärel saab need sõltuvused kõrvaldada.
  • Kooder kasutab automatiseeritud testjuhtumite väljatöötamiseks tavaliselt UnitTest Framework'i. Automaatikaraamistiku abil kodeerib arendaja testi õigsuse kontrollimiseks kriteeriumid. Testjuhtumite käivitamise ajal logib raamistik ebaõnnestunud testjuhtumeid. Paljud raamistikud märgistavad ja kokkuvõtlikult teatavad ka nendest ebaõnnestunud testijuhtumitest. Sõltuvalt rikke tõsidusest võib raamistik järgmise testimise peatada.
  • Üksuste testimise töövoog on 1) testjuhtumite loomine 2) ülevaade / ümbertöötamine 3) lähteülesanne 4) testjuhtumite käivitamine.

Üksuse testimise tehnikad

Unit Testing tehnikat on peamiselt liigitada kolme ossa, mis on must kast katsetamine, mis hõlmab testimine kasutajaliidese koos sisend ja väljund, valge karbi katsetamine, mis hõlmab testimist funktsionaalne toimimine tarkvararakenduse ja hall kast testimine, mida kasutatakse täita test komplektid, katsemeetodid, testjuhtumid ja riskianalüüsi läbiviimine.

Üksuste testimisel kasutatud koodide katvuse tehnikad on loetletud allpool:

  • Avalduse katvus
  • Otsuse katvus
  • Filiaali katvus
  • Seisundi katvus
  • Lõppseisundi masina katvus

Lisateavet leiate aadressilt https://www.guru99.com/code-coverage.html

Ühikutesti näide: mõnitatavad objektid

Üksuse testimine tugineb loodavatele võltsobjektidele, et testida koodilõike, mis pole veel täieliku rakenduse osa. Mock-objektid täidavad programmi puuduvad osad.

Näiteks võib teil olla funktsioon, mis vajab muutujaid või objekte, mis pole veel loodud. Ühikutestimisel arvestatakse neid pilkobjektidena, mis on loodud ainult selle koodijaotise jaoks tehtud ühikutestimise eesmärgil.

Üksuse testimise tööriistad

Üksuste testimise hõlbustamiseks on saadaval mitu automatiseeritud ühikutestimise tarkvara. Anname mõned näited allpool:

  1. Junit: Junit on Java programmeerimiskeele jaoks tasuta kasutatav testimisvahend. See annab väiteid katsemeetodi tuvastamiseks. See tööriist testib kõigepealt andmeid ja seejärel sisestatakse koodijuppi.
  2. NUnit: NUnit on laialt kasutatav üksuste testimise raamistiku kasutamine 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.
  3. JMockit: JMockit on avatud lähtekoodiga üksuse testimise tööriist. See on koodide katvuse tööriist, millel on joone ja tee mõõdikud. See võimaldab pilkata API-d salvestamise ja kinnitamise süntaksiga. See tööriist pakub liinilevi, teekatet ja andmekatet.
  4. EMMA: EMMA on avatud lähtekoodiga tööriistakomplekt Java keeles kirjutatud koodi analüüsimiseks ja aruandluseks. Emma toetavad levitüüpe nagu meetod, joon, põhiplokk. See on Java-põhine, nii et see ei sisalda väliseid raamatukogu sõltuvusi ja pääseb juurde lähtekoodile.
  5. PHPUnit: PHPUnit on üksuse testimise tööriist PHP programmeerija jaoks. Selleks on vaja väikeseid koodiosasid, mida nimetatakse ühikuteks, ja testige neid kõiki eraldi. Samuti võimaldab tööriist arendajatel kasutada eelnevalt määratletud väitemeetodeid, et väita, et süsteem käitub teatud viisil.

Need on vaid mõned pakutavad üksuste testimise tööriistad. Neid on palju rohkem, eriti C-keelte ja Java puhul, kuid leiate kindlasti oma programmeerimisvajaduste jaoks üksuse testimise tööriista, olenemata kasutatavast keelest.

Testpõhine arendus (TDD) ja üksuste testimine

Ühikute testimine TDD-s hõlmab testimisraamistike laialdast kasutamist. Ühikute testimise loomiseks kasutatakse ühikute testimise raamistikku. Ühikute testimise raamistikud pole TDD-le ainuomased, kuid on selle jaoks hädavajalikud. Allpool vaatame mõningaid asju, mida TDD toob üksuste testimise maailma:

  • Testid kirjutatakse enne koodi
  • Tugineda suuresti raamistike testimisele
  • Kõik rakenduste klassid on testitud
  • Kiire ja lihtne integreerimine on võimalik

Üksuse müüti katsetav

Müüt: See nõuab aega ja ma olen alati üle kavandatud. Minu kood on kaljukindel! Ma ei vaja ühikuteste.

Müütid on oma olemuselt valed eeldused. Need eeldused viivad nõiaringi järgmiselt -

Tõde on ühikutestimine, mis kiirendab arengut.

Programmeerijad arvavad, et integreerimise testimine tabab kõik vead ja ei soorita ühikutesti. Kui üksused on integreeritud, võtavad väga lihtsad vead, mida testitud üksustes oleks hõlpsasti võimalik leida ja parandada, jälitamiseks ja parandamiseks väga kaua aega.

Üksuse testimise eelis

  • Arendajad, kes soovivad õppida, millist funktsionaalsust üksus pakub ja kuidas seda kasutada, saavad vaadata üksuse teste, et saada elementaarset mõistet üksuse API-st.
  • Ühikute testimine võimaldab programmeerijal hiljem koodi refrakteerida ja veenduda, et moodul töötab ikka õigesti (st regressioonitestimine). Protseduur on kõigi funktsioonide ja meetodite testjuhtumite kirjutamine, nii et alati, kui muudatus põhjustab rikke, saab selle kiiresti tuvastada ja fikseerida.
  • Üksuse testimise modulaarse olemuse tõttu saame projekti osi testida, ootamata teiste valmimist.

Üksuse testimise puudused

  • Ei saa eeldada, et üksuse testimine tabab kõiki programmi tõrkeid. Isegi kõige tühisemates programmides ei ole võimalik kõiki täitmisviise hinnata
  • Ühikutestimine keskendub oma olemuselt koodiühikule. Seetõttu ei suuda see tuvastada integreerimisvigu ega süsteemset taset.

Ühikutestimist on soovitatav kasutada koos muude testimistoimingutega.

Parimate tavade testimise üksus

  • Üksuse testi juhtumid peaksid olema sõltumatud. Mis tahes täiustuste või nõuete muutmise korral ei tohiks see mõjutada ühikutestide juhtumeid.
  • Testige ainult ühte koodi korraga.
  • Järgige oma seadme testimisel selgeid ja järjepidevaid nimetamiskorda
  • Kui mis tahes moodulis muudetakse koodi, veenduge, et moodulil oleks vastav üksus Test Case ja moodul läbiks testid enne rakenduse muutmist
  • Üksuse testimisel tuvastatud vead tuleb enne SDLC järgmisse etappi siirdamist parandada
  • Kasutage lähenemist "test koodina". Mida rohkem koodi kirjutate ilma testimiseta, seda rohkem peate vigu kontrollima.

Kokkuvõte

  • UNIT TESTING on defineeritud kui tarkvara testimise tüüp, kus testitakse tarkvara üksuseid või komponente.
  • Nagu näete, võib üksuste testimisega tegeleda palju. See võib olla keeruline või üsna lihtne, olenevalt testitavast rakendusest ning kasutatavatest testimisstrateegiatest, tööriistadest ja filosoofiatest. Ühikute testimine on alati mingil tasandil vajalik. See on kindel.