www.wikidata.uk-ua.nina.az
Modulne testuvannya angl Unit testing ce metod testuvannya programnogo zabezpechennya yakij polyagaye v okremomu testuvanni kozhnogo modulya kodu programi Modulem nazivayut najmenshu chastinu programi yaka mozhe buti protestovanoyu U procedurnomu programuvanni modulem vvazhayut okremu funkciyu abo proceduru V ob yektno oriyentovanomu programuvanni metod dzherelo Modulni testi abo unit testi rozroblyayut v procesi rozrobki programisti ta inodi testuvalniki biloyi skrinki white box testers Zazvichaj unit testi zastosovuyut dlya togo shob upevnitisya sho kod vidpovidaye vimogam arhitekturi ta maye ochikuvanu povedinku Zmist 1 Perevagi 1 1 Legkij refaktoring 1 2 Sproshene integracijne testuvannya 1 3 Dokumentuvannya 1 4 Rozrobka 2 Vidokremlennya interfejsu vid realizaciyi 3 Obmezhennya 4 Zastosuvannya 4 1 Ekstremalne programuvannya 4 2 Tehnologiya 4 3 Frejmvorki 4 4 Pidtrimka modulnogo testuvannya na rivni movi 5 Div takozh 6 Primitki 7 PosilannyaPerevagi RedaguvatiMetoyu modulnogo testuvannya ye izolyaciya kozhnoyi chastini programi ta vpevnenist u tomu sho kozhna okrema chastina ye korektnoyu 1 Modulnij test zabezpechuye zhorstkij kontrakt za yakim maye pracyuvati testovanij kod Yak rezultat ce nadaye deyaki perevagi Modulne testuvannya dopomagaye znajti pomilki ranishe v cikli rozrobki PZ sho robit rozrobku deshevshoyu ta shvidshoyu Legkij refaktoring Redaguvati Modulne testuvannya dozvolyaye programistu koli vin bude zminyuvati kod provoditi refaktoring buti vpevnenim sho modul pracyuye virno ce regresivne testuvannya Oskilki modulne testuvannya vimagaye napisannya testiv dlya vsih funkcij ta metodiv u programi pomilki shvidko lokalizuyutsya ta vipravlyayutsya Sproshene integracijne testuvannya Redaguvati Modulne testuvannya mozhe buti zastosovane v integracijnomu testuvanni testuvannya okremih moduliv ta sukupnosti cih moduliv robit integracijne testuvannya legshim Odnak modulne testuvannya znizu vgoru ne ye integracijnim testuvannyam Integraciya z zovnishnimi modulyami maye vklyuchatisya do integracijnih testiv a ne do modulnih Dokumentuvannya Redaguvati Modulni testi yavlyayut soboyu specifichnij vid dokumentaciyi do sistemi Rozrobniki mozhut podivitisya na modulnij test shob diznatisya pro funkciyi sho vikonuye modul ta yak jogo zastosovuvati Unit test pereviryaye kritichni harakteristiki modulyu Vidpovidnist chi nevidpovidnist cim harakteristikam demonstruye korektnist modulya Modulnij test dokumentuye ci kritichni harakteristiki ale ne treba pokladatisya lishe na kod v dokumentuvanni PZ pid chas rozrobki Slid vidznachiti sho zvichajna pismova dokumentaciya duzhe povilno reaguye na zmini v kodi todi yak modulni testi zavzhdi vidobrazhayut potochnij stan modulya Rozrobka Redaguvati Pid chas rozrobki programnogo zabezpechennya metodom TDD Test driven development modulnij test staye chastinoyu rozrobki PZ Kozhen test viznachaye potribni klasi ta metodi yih ochikuvanu povedinku Navedenij nizhche priklad na movi Java dobre demonstruye vikoristannya unit testiv pid chas rozrobki metodom TDD Test klas za nazvoyu TestAdder viznachaye dekilka programnih elementiv sho povinni buti realizovani Po pershe u programi maye buti interfejs z nazvoyu Adder ta klas z nazvoyu AdderImpl sho jogo realizuye takozh maye buti konstruktor bez parametriv Interfejs Adder povinen mati metod add yakij prijmaye 2 parametri cili chisla i povertaye nazad takozh cile chislo Takozh cej kod viznachaye povedinku metodu add na nevelikomu nabori znachen public class TestAdder public void testSum Adder adder new AdderImpl assert adder add 1 1 2 assert adder add 1 2 3 assert adder add 2 2 4 assert adder add 0 0 0 assert adder add 1 2 3 assert adder add 1 1 0 assert adder add 1234 988 2222 U comu vipadku spochatku buv napisanij modulnij test a potim vzhe funkcionalnist yaku vin viznachaye Cej test viznachaye lishe povedinku majbutnogo metodu zalishayuchi tehnichni detali realizaciyi programistu Os metod sho vidpovidaye vimogam yaki postavleno testom interface Adder int add int a int b class AdderImpl implements Adder int add int a int b return a b Vazhlivoyu perevagoyu modulnogo testuvannya ye te sho testi odrazu demonstruyut vidpovidaye chi ne vidpovidaye realizaciya vimogam rozrobki Realizaciya z pomilkami skorishe za vse ne zmozhe projti modulni testi Vidokremlennya interfejsu vid realizaciyi RedaguvatiPriznachennya modulnogo testu testuvannya yedinogo programnogo modulyu Ale chasto rozrobniki ta testuvalniki stvoryuyut testi sho ne vidpovidayut cij umovi U vipadku yaksho klas A mistit posilannya na klas V testuvannya klasu A peretikaye v testuvannya klasu V Rozglyanemo priklad Ye klas sho zalezhit vid bazi danih Modulni testi yaki pishutsya dlya nogo mozhut vzayemodiyati z BD shob viznachiti korektnist povedinki klasu Takij pidhid ye nekorektnim U takomu vipadku modulnij test vihodit za mezhi svoyeyi vidpovidalnosti za mezhi testovanogo klasu ta peretinaye mezhu inshogo klasu procesu komp yuternoyi merezhi Modulni testi sho napisani takim chinom peretvoryuyutsya na integracijni testi Koli ci testi perestayut pracyuvati vazhko lokalizuvati pomilku Pravilnim pidhodom mozhna vvazhati stvorennya abstraktnih interfejsiv dlya zapitiv do BD a realizuyutsya ci interfejsi za dopomogoyu mock ob yektiv fiktivnih ob yektiv Vzayemodiya unit testiv lishe z abstraktnimi interfejsami zabezpechuye retelnishe testuvannya Yak rezultat legshe ta deshevshe suprovodzhennya Obmezhennya RedaguvatiTestuvannya programnogo zabezpechennya ne mozhe znajti vsih pomilok u programi U bilshosti program nemozhlivo prorahuvati kozhen variant vikonannya Ce takozh virno dlya modulnogo testuvannya Krim togo modulne testuvannya vlasne povinne testuvati tilki moduli Tak sho cej vid testuvannya ne zmozhe znajti integracijni pomilki ta inshi pomilki arhitekturi problemi z vitrimkoyu navantazhen na PZ Unit testuvannya maye provoditis razom z inshimi vidami testuvannya programnogo zabezpechennya Yak i bud yakij vid testuvannya modulne testuvannya mozhe viznachiti lishe nayavnist pomilok a ne yih vidsutnist Testuvannya PZ ce kombinatorna zadacha Napriklad kozhne logichne sudzhennya povinno mati ne mensh dvoh testiv odin pereviryaye rezultat istinno a drugij hibno Vnaslidok cogo chasto na kozhnij ryadok kodu dovoditsya napisati vid 3 do 5 ryadkiv testu 2 Ce vimagaye bagato chasu ta groshej yaki chasto ne varti rezultatu Zastosuvannya RedaguvatiEkstremalne programuvannya Redaguvati Modulne testuvannya ce narizhnij kamin ekstremalnogo programuvannya yake pokladayetsya na avtomatichne stvorennya testiv Avtomatichna generaciya testiv mozhe zdijsnyuvatis storonnimi bibliotekami yak to jUnit abo vlasnimi produktami kompaniyi rozrobnika Ekstremalne programuvannya vikoristovuye stvorennya modulnih testiv dlya test driven development Rozrobniki pishut modulni testi yaki viznachayut usi vimogi do programi Ci testi budut neuspishnimi yaksho potribni vimogi she ne realizovano abo yaksho realizaciya maye defekti Ekstremalne programuvannya dotrimuyetsya strategiyi testujte vse sho potencijno mozhe viklikati pomilku zamist tradicijnoyi testujte usi mozhlivi shlyahi vikonannya Tomu bilsha chastina kodu pokrita unit testami ale ne ves kod Vazhlivo vidznachiti sho kod testiv vvazhayetsya odnim z najvazhlivishih artefaktiv proektu bo suprovodzhuyetsya tak samo yakisno i v takomu zh obsyazi yak i funkcionalnij kod Rozrobniki vidpravlyayut kod testiv do repozitoriyu razom iz tim kodom sho voni testuyut Retelne testuvannya v ekstremalnomu programuvanni dozvolyaye legshe suprovodzhuvati kod provoditi jogo refaktoring integraciyu vesti dobru dokumentaciyu Ci modulni testi takozh pracyuyut yak forma regresivnogo testuvannya Tehnologiya Redaguvati Modulne testuvannya zazvichaj avtomatizuyut ale jogo mozhna provoditi j vruchnu IEEE ne nadaye perevagu yakomus z cih metodiv 3 Meta modulnogo testuvannya izolyuvati modul ta viznachiti jogo korektnist Avtomatizovane testuvannya dozvolyaye zrobiti ce efektivno ta maye bagato perevag Yaksho testuvannya bulo pogano zaplanovano to neoberezhne ruchne testuvannya mozhe stati she j integracijnim testuvannyam sho pogano Shob povnistyu realizuvati efekt izolyaciyi modulya pid chas avtomatizovanogo testuvannya jogo kod vikonuyut u mezhah osoblivogo frejmvorku bez zv yazku z prirodnim seredovishem Inshimi slovami kod zapuskayut poza produktom abo kontekstom vikliku dlya yakogo jogo bulo napisano Takij sposib testuvannya pokazuye nevazhlivi zalezhnosti mizh kodom sho testuyetsya ta inshimi modulyami sistemi Vikoristovuyuchi frejmvork dlya modulnogo testuvannya rozrobnik zadaye kriteriyi za yakimi viznachayetsya uspishnist testu Pid chas vikonannya testuvannya frejmvork povidomlyaye pro testi sho ne zadovolnyayut kriteriyam Zalezhno vid vazhlivosti nevikonanogo testu frejmvork mozhe zupiniti podalshe testuvannya Yak naslidok modulne testuvannya tradicijno motivuye programistiv pisati kod iz menshoyu zv yaznistyu angl Coupling ta bilshoyu pov yazanistyu angl Cohesion Frejmvorki Redaguvati Frejmvorki dlya modulnogo testuvannya zazvichaj ne rozpovsyudzhuyutsya v komplekti z kompilyatorami ce programne zabezpechennya pishut okremo Voni rozrobleni dlya bagatoh mov programuvannya j dopomagayut sprostiti proces testuvannya Sered vidomih frejmvorkiv ye proekti open source napriklad ti sho zazvichaj nazivayut xUnit ta komercijni rishennya taki yak TBrun Testwell CTA and VectorCAST C Takozh mozhlivo vikonuvati modulne testuvannya bez dodatkovih bibliotek stvoryuyuchi kod sho zastosovuye mehanizmi assertion vinyatkovih situacij angl exception ta inshi mehanizmi kontrolyu vikonannya programi yaki mozhut signalizuvati pro neuspih Velikij perelik riznih frejmvorkiv ta yih harakteristik narazi dostupnij v anglomovnomu rozdili Vikipediyi List of unit testing frameworks en Pidtrimka modulnogo testuvannya na rivni movi Redaguvati Deyaki movi programuvannya pidtrimuyut modulne testuvannya bezposeredno Yih gramatika dozvolyaye vikoristannya modulnogo testuvannya bez importu dodatkovih bibliotek Movi sho pidtrimuyut modulne testuvannya Cobra D JavaPriklad movoyu D class ABC this val 2 private int val public func val 2 unittest ABC a a func assert a val gt 0 amp amp a val lt 555 Mozhna zvernutisya do zakritoyi zminnoyi vseredini modulya Div takozh RedaguvatiEkstremalne programuvannya Testuvannya programnogo zabezpechennya Test driven development jUnit frejmvork dlya Java z simejstva xUnit Primitki Redaguvati Kolawa Adam Huizinga Dorota 2007 Automated Defect Prevention Best Practices in Software Management Wiley IEEE Computer Society Press s 75 s 426 ISBN 0470042125 Arhiv originalu za 25 kvitnya 2012 Procitovano 23 zhovtnya 2011 Cramblitt Bob 20 veresnya 2007 Alberto Savoia sings the praises of software testing Arhiv originalu za 16 lipnya 2013 Procitovano 29 listopada 2007 IEEE Standards Board IEEE Standard for Software Unit Testing An American National Standard ANSI IEEE Std 1008 1987 Arhivovano 30 zhovtnya 2007 u Wayback Machine in IEEE Standards Software Engineering Volume Two Process Standards 1999 Edition published by The Institute of Electrical and Electronics Engineers Inc Software Engineering Technical Committee of the IEEE Computer Society Posilannya RedaguvatiUnit Testing Guidelines from GeoSoft Arhivovano 10 kvitnya 2009 u Wayback Machine Test Driven Development Ward Cunningham s Wiki Arhivovano 12 travnya 2011 u Wayback Machine Unit Testing 101 for the Non Programmer Arhivovano 19 sichnya 2022 u Wayback Machine Step by Step Guide to JPA Enabled Unit Testing Java EE nbsp Ce nezavershena stattya pro programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Otrimano z https uk wikipedia org w index php title Modulne testuvannya amp oldid 36418118