Vienības testēšanas apmācība: kas ir, veidi, rīki un pārbaudes PIEMĒRS

Kas ir vienības pārbaude?

VIENĪBAS TESTĒŠANA ir programmatūras testēšanas veids, kurā tiek pārbaudītas atsevišķas programmatūras vienības vai komponenti. Mērķis ir pārbaudīt, vai katra programmatūras koda vienība darbojas, kā paredzēts. Vienību testēšana tiek veikta lietojumprogrammas izstrādes (kodēšanas fāzes) laikā, ko veic izstrādātāji. Vienības testi izolē koda sadaļu un pārbauda tā pareizību. Vienība var būt atsevišķa funkcija, metode, procedūra, modulis vai objekts.

SDLC, STLC, V modelī vienības pārbaude ir pirmais testēšanas līmenis, kas veikts pirms integrācijas pārbaudes. Vienības pārbaude ir WhiteBox testēšanas tehnika, ko parasti veic izstrādātājs. Lai gan praktiskajā pasaulē laika trūkuma vai izstrādātāju nevēlēšanās dēļ veikt testus, kvalitātes nodrošināšanas inženieri veic arī vienību testēšanu.

Šajā apmācībā jūs uzzināsit-

Kāpēc vienības pārbaude?

Vienības pārbaude tas ir svarīgi, jo programmatūras izstrādātāji dažreiz cenšas ietaupīt laiku, veicot minimālu vienību testēšanu, un tas ir mīts, jo neatbilstoša vienību pārbaude rada lielas izmaksas Defekts fiksēšana laikā Sistēmas pārbaude , Integrācijas pārbaude un pat beta testēšana pēc lietojumprogrammas izveidošanas. Ja agrīnā izstrādes laikā tiek veikta pareiza vienību pārbaude, tas galu galā ietaupa laiku un naudu.

Šeit ir galvenie iemesli, kāpēc programmatūras inženierijā jāveic vienību pārbaude:

Vienību pārbaudes līmeņi



oracle pl sql cilpas piemēram
  1. Vienības testi palīdz novērst kļūdas izstrādes cikla sākumā un ietaupīt izmaksas.
  2. Tas palīdz izstrādātājiem izprast testēšanas koda bāzi un ļauj ātri veikt izmaiņas
  3. Labi vienības testi kalpo kā projekta dokumentācija
  4. Vienības testi palīdz atkārtoti izmantot kodu. Migrējiet gan savu kodu un jūsu testi jaunajam projektam. Pielāgojiet kodu, līdz testi atkal sākas.

Kā veikt vienības pārbaudi

Kārtībā veikt vienību pārbaudi , izstrādātāji raksta koda sadaļu, lai pārbaudītu noteiktu funkciju lietojumprogrammā. Izstrādātāji var arī izolēt šo funkciju, lai veiktu stingrāku pārbaudi, kas atklāj nevajadzīgu atkarību starp pārbaudāmo funkciju un citām vienībām, lai atkarības varētu novērst. Izstrādātāji parasti izmanto UnitTest ietvars izstrādāt automatizētus testa gadījumus vienību testēšanai.

Vienības pārbaude ir divu veidu

  • Rokasgrāmata
  • Automatizēts

Vienību pārbaude parasti ir automatizēta, taču to joprojām var veikt manuāli. Programmatūras inženierija nedod priekšroku vienam pret otru, bet priekšroka tiek dota automatizācijai. Manuāla pieeja vienību testēšanai var izmantot pakāpenisku instrukciju dokumentu.

Saskaņā ar automatizētu pieeju-

  • Izstrādātājs lietojumprogrammā raksta koda sadaļu, lai pārbaudītu funkciju. Viņi vēlāk komentēs un visbeidzot noņems testa kodu, kad lietojumprogramma tiks izlaista.
  • Izstrādātājs varētu arī izolēt funkciju, lai to stingrāk pārbaudītu. Šī ir rūpīgāka vienību pārbaudes prakse, kas ietver koda kopēšanu un ielīmēšanu savā testēšanas vidē, nevis dabiskajā vidē. Koda izolēšana palīdz atklāt nevajadzīgas atkarības starp pārbaudāmo kodu un citām vienībām vai datu telpām produktā. Pēc tam šīs atkarības var novērst.
  • Kodētājs parasti izmanto UnitTest Framework, lai izstrādātu automatizētus testa gadījumus. Izmantojot automatizācijas sistēmu, izstrādātājs testā iekļauj kritērijus, lai pārbaudītu koda pareizību. Pārbaudes gadījumu izpildes laikā sistēma reģistrē neveiksmīgus testa gadījumus. Daudzas sistēmas arī automātiski atzīmēs un ziņos par tām neveiksmīgi testa gadījumi . Atkarībā no neveiksmes smaguma ietvars var apturēt turpmāko testēšanu.
  • Vienības testēšanas darbplūsma ir 1) Izveidot pārbaudes gadījumus 2) Pārskatīt/pārstrādāt 3) Pamatlīnija 4) Izpildīt pārbaudes gadījumus.

Vienību pārbaudes metodes

The Vienību pārbaudes metodes galvenokārt tiek iedalīti trīs daļās, kas ir melnās kastes pārbaude, kas ietver lietotāja saskarnes un ievades un izvades testēšanu, baltās kastes pārbaude, kas ietver programmatūras lietojumprogrammas funkcionālās darbības pārbaudi, un pelēkās kastes pārbaude, kas tiek izmantota testa komplektu izpildei, testēšanas metodes , testa gadījumi un riska analīzes veikšana.

Vienību testēšanā izmantotie koda pārklājuma paņēmieni ir uzskaitīti zemāk:

  • Pārskata pārklājums
  • Lēmumu pārklājums
  • Nozares pārklājums
  • Stāvokļa pārklājums
  • Galīgs mašīnu pārklājums

Plašāku informāciju skatiet https://on2vhf.be/code-coverage.html

Vienības pārbaudes piemērs: izspēles objekti

Vienības pārbaude balstās uz izspēles objektiem, kas tiek izveidoti, lai pārbaudītu koda sadaļas, kas vēl nav iekļautas pilnā lietojumprogrammā. Izspēles objekti aizpilda trūkstošās programmas daļas.

Piemēram, jums var būt funkcija, kurai nepieciešami mainīgie vai objekti, kas vēl nav izveidoti. Veicot vienību testēšanu, tie tiks uzskaitīti kā izspēlēti objekti, kas izveidoti tikai vienības testēšanai, kas veikta šajā koda sadaļā.

Vienību pārbaudes rīki

Ir pieejamas vairākas automatizētas vienību pārbaudes programmatūras, kas palīdz veikt vienību testēšanu. Tālāk mēs sniegsim dažus piemērus:

  1. Junit : Junit ir bezmaksas testēšanas rīks, ko izmanto Java programmēšanas valodai. Tas sniedz apgalvojumus, lai noteiktu testa metodi. Šis rīks vispirms pārbauda datus un pēc tam ievieto koda gabalā.
  2. NUnit : NUnit plaši izmanto vienību testēšanas ietvara izmantošanu visām .net valodām. Tas ir atvērtā koda rīks, kas ļauj rakstīt skriptus manuāli. Tas atbalsta uz datiem balstītus testus, kas var darboties paralēli.
  3. JMockit : JMockit ir atvērtā pirmkoda vienību pārbaudes rīks. Tas ir koda pārklājuma rīks ar līnijas un ceļa metriku. Tas ļauj izsmiet API ar ierakstīšanas un verifikācijas sintaksi. Šis rīks piedāvā līnijas pārklājumu, ceļa pārklājumu un datu pārklājumu.
  4. EMMA : EMMA ir atvērtā koda rīkkopa Java valodā rakstīta koda analīzei un ziņošanai. Emma atbalsta pārklājuma veidi, piemēram, metode, līnija, pamata bloks. Tā ir balstīta uz Java, tāpēc tai nav ārēju bibliotēku atkarību un tā var piekļūt avota kodam.
  5. PHPUnit : PHPUnit ir vienību pārbaudes rīks PHP programmētājam. Tas aizņem nelielas koda daļas, ko sauc par vienībām, un pārbaudiet katru no tām atsevišķi. Šis rīks arī ļauj izstrādātājiem izmantot iepriekš noteiktas apgalvojuma metodes, lai apgalvotu, ka sistēma darbojas noteiktā veidā.

Šie ir tikai daži no pieejamajiem vienību pārbaudes rīkiem. Ir daudz vairāk, īpaši C valodām un Java, taču jūs noteikti atradīsit vienības pārbaudes rīku savām programmēšanas vajadzībām neatkarīgi no izmantotās valodas.

Testa vadīta attīstība (TDD) un vienību pārbaude

Vienību testēšana TDD ietver plašu testēšanas sistēmu izmantošanu. Vienību pārbaudes ietvars tiek izmantots, lai izveidotu automatizētus vienības testus. Vienību testēšanas ietvari nav raksturīgi tikai TDD, taču tie ir būtiski tam. Zemāk mēs aplūkojam dažus no tiem, ko TDD sniedz vienību testēšanas pasaulē:

  • Testi tiek rakstīti pirms koda
  • Lielā mērā paļaujieties uz testēšanas ietvariem
  • Visas lietojumprogrammu klases tiek pārbaudītas
  • Ir iespējama ātra un vienkārša integrācija

Vienības pārbaudes mīts

Mīts: Tas prasa laiku, un es vienmēr esmu pārplānots
Mans kods ir stingrs! Man nav nepieciešami vienības testi.

Mīti pēc savas būtības ir kļūdaini pieņēmumi. Šie pieņēmumi noved pie apburtā loka:

Patiesība ir tāda, ka vienību testēšana palielina attīstības ātrumu.

Programmētāji domā, ka integrācijas pārbaude uztvers visas kļūdas un neveic vienības pārbaudi. Kad vienības ir integrētas, ļoti vienkāršu kļūdu atrašana un labošana var būt ļoti ilga, lai tās varētu izsekot un novērst.

Vienību pārbaudes priekšrocība

  • Izstrādātāji, kuri vēlas uzzināt, kādu funkcionalitāti nodrošina vienība un kā to izmantot, var apskatīt vienību testus, lai iegūtu pamatzināšanas par vienības API.
  • Vienības pārbaude ļauj programmētājam vēlāk pārveidot kodu un pārliecināties, vai modulis joprojām darbojas pareizi (t.i., regresijas pārbaude). Procedūra ir visu lietu un metožu testa gadījumu uzrakstīšana, lai ikreiz, kad izmaiņas izraisītu kļūdu, tās varētu ātri identificēt un novērst.
  • Sakarā ar vienību testēšanas modulāro raksturu, mēs varam pārbaudīt projekta daļas, negaidot, kad citas tiks pabeigtas.

Vienību pārbaudes trūkumi

  • Nevar gaidīt, ka vienības pārbaude pamanīs visas programmas kļūdas. Pat visnopietnākajās programmās nav iespējams novērtēt visus izpildes ceļus
  • Vienību pārbaude pēc savas būtības ir vērsta uz koda vienību. Tādējādi tas nevar noķert integrācijas kļūdas vai plašas sistēmas līmeņa kļūdas.

Vienības testēšanu ieteicams izmantot kopā ar citām testēšanas darbībām.

Vienību pārbaudes paraugprakse

  • Vienības pārbaudes gadījumiem jābūt neatkarīgiem. Jebkuru uzlabojumu vai prasību izmaiņu gadījumā vienības pārbaudes gadījumus nevajadzētu ietekmēt.
  • Pārbaudiet tikai vienu kodu vienlaikus.
  • Vienību testos ievērojiet skaidras un konsekventas nosaukumu piešķiršanas konvencijas
  • Ja kādā modulī tiek mainīts kods, pārliecinieties, vai ir atbilstoša vienība Testa korpuss modulim, un modulis nokārto testus pirms ieviešanas maiņas
  • Vienības testēšanas laikā atklātās kļūdas ir jānovērš pirms pāriešanas uz nākamo SDLC posmu
  • Pieņemiet pieeju “tests kā kods”. Jo vairāk kodu rakstāt bez pārbaudes, jo vairāk ceļu jums ir jāpārbauda, ​​vai nav kļūdu.
Kopsavilkums
  • VIENĪBAS TESTĒŠANA ir definēta kā programmatūras testēšanas veids, kurā tiek pārbaudītas atsevišķas programmatūras vienības vai komponenti.
  • Kā redzat, vienību testēšanā var būt daudz. Tas var būt sarežģīts vai diezgan vienkāršs atkarībā no testējamās lietojumprogrammas un izmantotajām testēšanas stratēģijām, rīkiem un filozofijas. Vienības pārbaude vienmēr ir nepieciešama kādā līmenī. Tā ir pārliecība.