Tarkvara Testimine

Üksuse testimise õpetus algajatele

30. oktoober 2021

Ühiktestimine on viis, kuidas testida programmi väikseima võimaliku mooduliga, et tagada selle kasutuskõlblikkus. Koodiosa kujul olevat ühikut testitakse, et näha, kas seda saab kasutada koos koodi muude osadega (nt funktsioonid, meetodid ja muutujad).

Üksuse testimine on tarkvara testimisprotsess, mille käigus testitakse üksikuid plokke või üksusi isoleeritult, mille ainus eesmärk on üksuse testimine isoleerida kirjalik kood, et testida ja kontrollida, kas seade töötab ettenähtud viisil.

Üksuse testimise oluline eesmärk on pakkuda tarkvara üksikule seadmele või komponendile, näiteks funktsioonile, testikomplekti. Testid koosnevad tavaliselt standardse järjepidevuse testide seeriast iga komponendi jaoks, mille on (eelistatavalt) kirjutanud arendaja, kes on projektiga töötanud või selle lähedal.

Üksus on arvutitarkvara väikseim testitav osa. Protsessi abistamiseks kasutavad arendajad selliseid tööriistu nagu üksuse testimise raamistikud, draiverid, tünnid, pilkupüüdvad/võltsobjektid.

Kui ühiktest ebaõnnestub, loetakse see veaks või testi enda muudetud koodiks.

Ühiku testimine

Sisukord

Testimise tasemed:

Üksuse testimine on ilmselt esimene test, mis tuleb teha ja seejärel tuleb kõik moodulid või plokid integreerida ja seejärel integratsiooni testimine tuleb läbi viia. Arendaja peaks läbi viima süsteemi testimise, et hinnata süsteemi vastavust ja funktsionaalsuse nõudeid täielikult integreeritud süsteemis. Ja lõpuks kontrollib vastuvõtutest, kas programm vastab kliendi spetsifikatsioonidele ja lepingutele. Nii saab arendaja täiusliku koodi.

Miks on ühikutestimine oluline?

Kiirem ja tõhusam testimisviis:

Ühiktestimine on koodi kirjutamise, selle testimise ja seejärel muude testide automaatse sooritamise protsess. See on kiirem viis programmiloogika testimiseks, kuna ühikutestide sooritamine võtab vähem aega kui käsitsi testid või QA meeskonna poolt läbi viidud integreeritud testid.

Kvaliteedi kontroll:

Standarditestide kogumik tagab, et tulevased muudatused ei halvenda kvaliteeti. Üks või mitu ühikutesti dokumenteerivad üksuse koodi eeldatavat käitumist ja selle rakendamist. Oma üksuste testi arendamise distsiplineerimiseks peaksid programmeerijad üksuste jaoks kasutusele võtma testide seeria.

Muudab koodi hallatavaks ja redigeerimise mugavamaks:

Ühiktestide kirjutamise võimalus muudab suure sidususega süsteemide kavandamise hädavajalikuks ja parimad ühikutestid tulevad arendajatelt, kes on projektile väga lähedal. Koodi võib olla võimatu või raske testida, kui see on halvasti kirjutatud, sundides arendajaid funktsioone ja objekte paremini struktureerima. Ühikutestid muudavad süsteemi paremini juhitavaks.

Loomulikum on probleemi täpselt kindlaks teha:

Üksustestimise teine ​​oluline eesmärk on anda ülevaade arendusprotsessi muudatuste, näiteks kasutajaliidese muudatuste või uute funktsioonide rakendamise mõjust. Testjuhtumite ebaõnnestumise põhjal aitab Unit Test Framework peatada ka seotud testid.

Ühiku testimise eelised:

  • Isegi kõige kogenumad arendajad nõustuvad, et ühikutestimist on hea mõte harjutada. Ühiku testimine võimaldab programmeerijatel koodi hiljem ümber arvutada ja mooduli tööle panna.
  • Üksustestimise üks olulisemaid eeliseid on see, et arendaja saab kasutada testimistööriistu ja -raamistikke.
  • Ühiku testimine muudab koodi värskendamise turvalisemaks ja mugavamaks, kuna see tutvustab teste, mis tagavad, et ümberkujundamine töötab sujuvalt või katkestusteta.
  • Ühiku testimise tulemuseks on ka tarkvara, mida on kogu tarkvara elutsükli jooksul lihtsam hooldada ja mis on uute funktsioonide või värskenduste lisamisel vähem tõrgeteta.
  • Üksustestimine annab toote või teenuse disaini ja spetsifikatsioonide selge ja kokkuvõtliku kirjelduse teostuse vormis. Kasutades disaini spetsifikatsioonide jaoks ühikteste, saame paremini aru, mida kontrollida ja mida testimiseks kasutada.
  • Ühiktestid võtavad testitava koodiga võrreldes ebaproportsionaalselt palju aega. Näiteks kui ühiktesti kirjutamise hind on 2 minutit, kuid selle käitamise hind on praktiliselt null või koodi käsitsi testimise hind on 1 minut, siis katke kasumiläve, kui arendaja testi käivitab. kaks korda. Üksustestide kasutamine kogu koodibaasi käsitsi kontrollimise asemel tähendab, et arendaja vähendab projekti üldkulusid.
  • Halvasti kirjutatud koodi võib olla võimatu või raske ühiktestida ja seetõttu võib ühiktestimine sundida arendajaid funktsioone ja objekte paremini struktureerima. Ühiku testimine muudab koodi nii täiuslikuks kui võimalik. Arendaja kirjutab esmalt seadmetesti, jälgib selle ebaõnnestumist, seejärel kirjutab selle läbimiseks teise testi ja tsükkel kordub, kuni kavandatud funktsionaalsus on tarnitud.

Ühiku testimise puudused:

  • Üksustestimise peamine puudus on see, et kõiki täitmisteid pole võimalik kontrollida ja see ei suuda absorbeerida olulisi süsteemivigu ega integreerimisvigu.
  • Üksusetestide kirjutamine võib olla keeruline ja protsess võib olla aeganõudev.
  • Inimlikud vead ühikutestides võivad mõjutada kogu süsteemi.
  • See ei ole täielik tõend, nagu paljud on öelnud; Kui moodulid on integreeritud, võib esineda uusi vigu, mida üksuse testimine ei avasta.

Üksuse testimise tehnikad:

    Musta kasti tehnika: Must Kast Tehnika on ühikutestimise meetod, mille puhul SUT (testitav tarkvara) on rakenduse funktsionaalsus ilma juurutamist, sisemist struktuuri või koodi uurimata. Musta kasti tehnika keskendub sisendile ja väljundile, mitte sisemisele koodile või teadmistele.Valge kasti tehnika:sisse Valge kast Tehnika järgi on testija teadlik koodi sisemustest, selle meetodi struktuurist, sisemisest struktuurist ja koodi tööst, mitte funktsionaalsusest. Eelistatavalt peaks testijal olema suurepärane programmeerimisoskus, kuna mooduli sisemine vaatenurk ja programmeerimisoskused pannakse proovile.Halli kasti tehnika: Hall kast Tehnika tunneb koodi osaliselt. See test täpsustab ebaõiget koodistruktuuri või rakenduse ebaõiget töötamist. See on segu nii musta kui valge kasti tehnikast. See on võimas viis seadme testimiseks.

Ühiku testimise tööriistad:

  • Nunit : Üks xuniti perekonna perekondadest, Nunit on avatud lähtekoodiga üksuste testimine, mis on loodud jaoks. NET ja Mono raamistik on enimkasutatav tööriist üksuse testkorpuse kirjutamiseks.
  • Jmockit : JMockit on veel üks avatud lähtekoodiga tarkvara raamatukogu. See sisaldab API-sid pilkamiseks, võltsimiseks ja integratsiooni testimiseks ning koodi katmise tööriista. Teeki tuleb kasutada koos testimisraamistikuga, nagu JUnit või Nunit.
  • Junit: Nii nagu Nunit, on see avatud lähtekoodiga üksuse testimine, kuid mõeldud Java jaoks. See on ka Xuniti perekonnast. Kasutatakse arendajate jaoks korratavate testide kirjutamiseks. Sellel on tugev alus üksuste testimiseks.
  • Kirjapilt : TypeMock saab liideste kaudu mõnitada peaaegu kõike. Lisaks on võimalik mõnitada staatilisi meetodeid ja klasse, mida tavaline avatud lähtekoodiga tööriist ei saa mõnitada. Rakendatakse korraldamise, tegutsemise, kinnitamise ja testimise mustreid ning neist valmistatakse isolaatoreid.
  • Embunit : Embedded Unit Test Framework Embunit on uus raamistik manussüsteemidele. See on loodud C-keeles kirjutatud tarkvararakenduste testraamistikuna /C++ ja toetab kõiki võrgu keeli. See raamistik teenib sama eesmärki kui JUnit Javas, kuid erineva eesmärgiga: toimida avatud lähtekoodiga platvormideülese testimisraamistikuna.

Ühiku testimise näpunäited:

  • Kui üksuse test ebaõnnestub, kaaluge, kas tegemist on vea või testi enda muudetud koodiga. Vastuvõtutesti täiustamine on ülioluline, kui arendaja leiab vastuvõtutesti käigus vea, kuid enamik defekte tuleks tuvastada seadmetestide abil.
  • Algaja testimise alustaja peaks otsima antimustreid ja need kõrvaldama ning see muudab koodi tõhusaks ja korduvkasutatavaks.
  • Kirjutage targalt; Võimaluse korral on kood, mis keskendub süsteemi käitumisele, ideaalne kood.
  • Tõhusaks testimiseks kasutage pilkavaid või valeobjekte. Tegeliku süsteemi kasutamine on riskantne, kuna see seab andmed ohtu.
  • Ärge testige kasutajaliidese komponente, välja arvatud juhul, kui hetktõmmis testib.

Seotud teemad

Integratsiooni testimine Süsteemi testimine Vastuvõtu testimine