{"id":37495,"date":"2019-10-31T22:17:57","date_gmt":"2019-10-31T19:17:57","guid":{"rendered":"https:\/\/prohoster.info\/blog\/unit-testy-v-subd-kak-my-delaem-eto-v-sportmastere-chast-pervaya\/"},"modified":"2019-10-31T22:17:57","modified_gmt":"2019-10-31T19:17:57","slug":"unit-testy-v-subd-kak-my-delaem-eto-v-sportmastere-chast-pervaya","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/unit-testy-v-subd-kak-my-delaem-eto-v-sportmastere-chast-pervaya","title":{"rendered":"Testet e Nj\u00ebsive n\u00eb DB \u2014 si e b\u00ebjm\u00eb k\u00ebt\u00eb n\u00eb Sportmaster, pjesa e par\u00eb","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>P\u00ebrsh\u00ebndetje, Habr!<\/p>\n<p>M\u00eb quaj Maxim Ponomarenko dhe un\u00eb jam zhvillues n\u00eb Sportmaster. Kam nj\u00eb p\u00ebrvoj\u00eb 10-vje\u00e7are n\u00eb fush\u00ebn e IT. E fillova karrier\u00ebn n\u00eb testimin manual, pastaj kalova n\u00eb zhvillimin e bazave t\u00eb t\u00eb dh\u00ebnave. Gjat\u00eb kat\u00ebr viteve t\u00eb fundit, duke grumbulluar njohurit\u00eb e fituara n\u00eb testim dhe zhvillim, merrem me automatizimin e testimit n\u00eb nivelin e DB.<\/p>\n<p>Kam qen\u00eb n\u00eb ekipin e Sportmaster p\u00ebr pak m\u00eb shum\u00eb se nj\u00eb vit dhe n\u00eb nj\u00eb nga projektet e m\u00ebdha po zhvilloj testimin automatizues. N\u00eb prill, un\u00eb dhe djemt\u00eb nga Sportmaster Lab paraqit\u00ebm n\u00eb konferenc\u00ebn n\u00eb Krasnodar, ligj\u00ebrata ime kishte titullin \u00abTestet e Nj\u00ebsive n\u00eb DB\u00bb, dhe tani dua ta ndaj at\u00eb me ju. Do t\u00eb ket\u00eb shum\u00eb tekst, prandaj vendosa ta ndaj ligj\u00ebrat\u00ebn n\u00eb dy posta. N\u00eb t\u00eb parin do t\u00eb flasim p\u00ebr testet automatike dhe testimin n\u00eb p\u00ebrgjith\u00ebsi, nd\u00ebrsa n\u00eb t\u00eb dytin do t\u00eb ndalem m\u00eb gjat\u00eb mbi sistemin ton\u00eb t\u00eb testimit t\u00eb nj\u00ebsive dhe rezultatet e aplikimit t\u00eb saj.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/sportmaster_lab\/blog\/464335\/\"><img decoding=\"async\" alt=\"Testet e Nj\u00ebsive n\u00eb DB \u2014 si e b\u00ebjm\u00eb k\u00ebt\u00eb n\u00eb Sportmaster, pjesa e par\u00eb\" src=\"\/wp-content\/uploads\/2019\/08\/4e521cc85eb3a3806860a40ab2e4050f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Fillimisht pak teori t\u00eb m\u00ebrzitshme. \u00c7far\u00eb \u00ebsht\u00eb testimi automatizuar? Ky \u00ebsht\u00eb nj\u00eb testim q\u00eb realizohet me mjete software dhe n\u00eb IT-n\u00eb bashk\u00ebkohore p\u00ebrdoret gjithnj\u00eb e m\u00eb shum\u00eb gjat\u00eb zhvillimit t\u00eb softuerit. Kjo vjen si rezultat i rritjes s\u00eb kompanive, rritjes s\u00eb sistemeve t\u00eb tyre informative dhe p\u00ebr pasoj\u00eb, rritjes s\u00eb funksionaliteteve q\u00eb duhet t\u00eb testohen. T\u00eb realizosh testim manual po b\u00ebhet gjithnj\u00eb e m\u00eb i kushtuesh\u00ebm.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nKam punuar n\u00eb nj\u00eb kompani t\u00eb madhe, ku publikuar nj\u00eb version t\u00eb ri ndodhte \u00e7do dy muaj. K\u00ebshtu q\u00eb nj\u00eb muaj shpenzohej p\u00ebr nj\u00eb grup testuesish q\u00eb kontrollonin funksionalitetet me duar. Fal\u00eb implementimit t\u00eb automatizimit nga nj\u00eb ekip i vog\u00ebl zhvilluesish, arrit\u00ebm t\u00eb zvog\u00eblojm\u00eb koh\u00ebn e testimit n\u00eb 2 jav\u00eb p\u00ebr nj\u00eb periudh\u00eb 1.5 vje\u00e7are. Jo vet\u00ebm q\u00eb rrit\u00ebm shbrenditjen e testimit, por gjithashtu e p\u00ebrmir\u00ebsuam cil\u00ebsin\u00eb e tij. Testet automatike ekzekutohen rregullisht dhe ato gjithmon\u00eb realizojn\u00eb t\u00eb gjith\u00eb serin\u00eb e kontrollimeve q\u00eb jan\u00eb vendosur, dometh\u00ebn\u00eb, ne eliminojm\u00eb faktor\u00ebt njer\u00ebzor. <\/p>\n<p>P\u00ebr IT-n\u00eb e sot\u00ebm \u00ebsht\u00eb karakteristik\u00eb q\u00eb nga zhvilluesi k\u00ebrkohet jo vet\u00ebm t\u00eb shkruaj kodin e produktit, por gjithashtu t\u00eb shkruaj teste unitare q\u00eb verifikojn\u00eb k\u00ebt\u00eb kod. <\/p>\n<p>Por \u00e7far\u00eb t\u00eb b\u00ebni n\u00ebse sistemi juaj bazohet kryesisht n\u00eb logjik\u00ebn server-side? Nuk ka nj\u00eb zgjidhje universale dhe praktikat m\u00eb t\u00eb mira n\u00eb treg. Zakonisht, kompanit\u00eb e zgjidhin k\u00ebt\u00eb problem p\u00ebrmes krijimit t\u00eb nj\u00eb sistemi t\u00eb vet\u00eb-shkruar testimi. Nj\u00eb sistem t\u00eb till\u00eb t\u00eb automatizuar t\u00eb testimit \u00ebsht\u00eb krijuar n\u00eb projektin ton\u00eb dhe p\u00ebr t\u00eb do t\u00eb flas n\u00eb prezantimin tim. <\/p>\n<p><img decoding=\"async\" alt=\"Testet e Nj\u00ebsive n\u00eb DB \u2014 si e b\u00ebjm\u00eb k\u00ebt\u00eb n\u00eb Sportmaster, pjesa e par\u00eb\" src=\"\/wp-content\/uploads\/2019\/08\/fee34f7214fb2075ee50fa0f4af14a44.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Testojm\u00eb besnik\u00ebrin\u00eb<\/h2>\n<p>\nLe t\u00eb fillojm\u00eb me projektin ku kemi vendosur sistemin e automatizuar t\u00eb testimit. Projekti yn\u00eb \u00ebsht\u00eb sistemi i besnik\u00ebris\u00eb s\u00eb Sportmaster (p\u00ebr m\u00eb shum\u00eb, kemi shkruar tashm\u00eb p\u00ebr t\u00eb n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/sportmaster_lab\/blog\/453252\/\">k\u00ebt\u00eb postim<\/a><\/noindex>).<\/p>\n<p>N\u00ebse kompania juaj \u00ebsht\u00eb mjaft e madhe, sistemi juaj i besnik\u00ebris\u00eb do t\u00eb ket\u00eb tri karakteristika standarde: <\/p>\n<ul>\n<li>Sistemi juaj do t\u00eb jet\u00eb me ngarkes\u00eb t\u00eb lart\u00eb<\/li>\n<li>Sistemi juaj do t\u00eb p\u00ebrmbaj\u00eb procese t\u00eb komplikuara llogarit\u00ebse<\/li>\n<li>Sistemi juaj do t\u00eb p\u00ebrmir\u00ebsohet vazhdimisht. <\/li>\n<\/ul>\n<p>\nLe t\u00eb shohim me radh\u00eb... N\u00eb total, n\u00ebse shqyrtojm\u00eb t\u00eb gjitha markat e Sportmaster, n\u00eb territorin e Rusis\u00eb, Ukrain\u00ebs, Kin\u00ebs, Kazakistanit dhe Bjellorusis\u00eb, kemi m\u00eb shum\u00eb se 1000 dyqane. N\u00eb k\u00ebto dyqane kryhen rreth 300,000 blerje \u00e7do dit\u00eb. Kjo do t\u00eb thot\u00eb se \u00e7do sekond n\u00eb sistemin ton\u00eb hyjn\u00eb 3-4 \u00e7ek\u00eb. Sigurisht, sistemi yn\u00eb i besnik\u00ebris\u00eb \u00ebsht\u00eb shum\u00eb i ngarkuar. Dhe pasi q\u00eb p\u00ebrdoret aktivisht, ne duhet t\u00eb ofrojm\u00eb standardet m\u00eb t\u00eb larta t\u00eb cil\u00ebsis\u00eb s\u00eb tij, sepse \u00e7do gabim n\u00eb softuer do t\u00eb sjell\u00eb humbje t\u00eb m\u00ebdha financiare, reputacioni dhe humbje t\u00eb tjera. <\/p>\n<p>Nj\u00ebkoh\u00ebsisht, n\u00eb Sportmaster punojn\u00eb m\u00eb shum\u00eb se nj\u00ebqind lloje t\u00eb ndryshme t\u00eb promocioneve. Promocionet jan\u00eb shum\u00eb t\u00eb ndryshme: ka nga ato t\u00eb produkteve, ka q\u00eb lidhen me dit\u00ebn e jav\u00ebs, ka t\u00eb lidhura me nj\u00eb dyqan t\u00eb caktuar, ka promocione q\u00eb varen nga shuma e \u00e7ekut, ka p\u00ebr numrin e produkteve. N\u00eb thelb, jo pak. Klient\u00ebt kan\u00eb bonuset e tyre, kan\u00eb kodet promocionale q\u00eb p\u00ebrdoren gjat\u00eb blerjeve. T\u00eb gjitha k\u00ebto e b\u00ebjn\u00eb kalkulimin e \u00e7do porosie nj\u00eb detyr\u00eb mjaft t\u00eb komplikuar. <\/p>\n<p>Algoritmi q\u00eb zbatohet p\u00ebr p\u00ebrpunimin e porosis\u00eb \u00ebsht\u00eb v\u00ebrtet i tmerrsh\u00ebm dhe i komplikuar. Nj\u00eb ndryshim n\u00eb k\u00ebt\u00eb algorit\u00ebm \u00ebsht\u00eb nj\u00eb gj\u00eb mjaft e rrezikshme. Madje, ndryshime q\u00eb duken mjaft t\u00eb vogla mund t\u00eb sjellin efekte mjaft t\u00eb paparashikueshme. Proceset e tilla shum\u00eb t\u00eb komplikuara, sidomos ato q\u00eb realizojn\u00eb funksionalitete kritike, jan\u00eb kandidat\u00ebt m\u00eb t\u00eb mir\u00eb p\u00ebr automatizim. T\u00eb kontrollosh me dor\u00eb dhjet\u00ebra raste t\u00eb ngjashme k\u00ebrkon shum\u00eb koh\u00eb. Dhe, duke qen\u00eb se pika e hyrjes n\u00eb proces mbetet e pandryshuar, nj\u00eb her\u00eb eart\u00eb e p\u00ebrshkruar, mund t\u00eb krijosh shpejt testet automatike dhe t\u00eb jesh i sigurt p\u00ebr funksionimin e funksionalitetit.<\/p>\n<p>Pasi sistemi yn\u00eb p\u00ebrdoret aktivisht, bizneset do t\u00eb k\u00ebrkojn\u00eb nga ju di\u00e7ka t\u00eb re, t\u00eb q\u00ebndrojn\u00eb n\u00eb hap me koh\u00ebn dhe t\u00eb jen\u00eb orientuar drejt klientit. N\u00eb sistemin ton\u00eb t\u00eb besnik\u00ebris\u00eb, l\u00ebshimet dalin \u00e7do dy muaj. Kjo do t\u00eb thot\u00eb se \u00e7do dy muaj duhet t\u00eb kryejm\u00eb nj\u00eb testim t\u00eb plot\u00eb regres i gjith\u00eb sistemit. Natyrisht, si n\u00eb \u00e7do IT modern, zhvillimi nuk kalon menj\u00ebher\u00eb nga zhvilluesi n\u00eb prodhim. Ai fillon n\u00eb konturin e zhvilluesit, pastaj kalon gradualisht p\u00ebrmes mjedisit testues, atij t\u00eb l\u00ebshimit, pranimit dhe vet\u00ebm pastaj arrin n\u00eb prodhim. T\u00eb pakt\u00ebn n\u00eb mjediset testuese dhe t\u00eb l\u00ebshimit, duhet t\u00eb kryejm\u00eb nj\u00eb testim t\u00eb plot\u00eb regres i gjith\u00eb sistemit. <\/p>\n<p>Aft\u00ebsit\u00eb e p\u00ebrshkruara jan\u00eb standarde p\u00ebr pothuajse \u00e7do sistem besnik\u00ebrie. Le t\u00eb flasim p\u00ebr ve\u00e7orit\u00eb e projektit ton\u00eb.<\/p>\n<p>Logjika jon\u00eb e sistemit t\u00eb besnik\u00ebris\u00eb \u00ebsht\u00eb 90% teknologjike dhe \u00ebsht\u00eb realizuar n\u00eb Oracle. Ka nj\u00eb klient t\u00eb implementuar n\u00eb Delphi, i cili kryen funksionin e administratorit. Jan\u00eb ekspozuar sh\u00ebrbime web p\u00ebr aplikacione t\u00eb jashtme (p\u00ebr shembull, faqja e internetit). Prandaj, \u00ebsht\u00eb e arsyeshme q\u00eb po t\u00eb zhvillojm\u00eb nj\u00eb sistem automatizimi t\u00eb testimit, do ta b\u00ebjm\u00eb k\u00ebt\u00eb n\u00eb Oracle.<\/p>\n<p>Sistema e besnik\u00ebris\u00eb n\u00eb Sportmaster ekziston prej m\u00eb shum\u00eb se 7 vjet\u00ebsh dhe \u00ebsht\u00eb krijuar nga zhvillues t\u00eb vet\u00ebm... Numri mesatar i zhvilluesve n\u00eb projektin ton\u00eb gjat\u00eb k\u00ebtyre 7 viteve ka qen\u00eb 3-4 persona. Por n\u00eb vitin e fundit ekipi yn\u00eb \u00ebsht\u00eb rritur ndjesh\u00ebm dhe tani n\u00eb projekt punojn\u00eb 10 persona. Dometh\u00ebn\u00eb, shum\u00eb njer\u00ebz po hyjn\u00eb n\u00eb projekt q\u00eb nuk jan\u00eb t\u00eb njohur me detyrat tipike, proceset, arkitektur\u00ebn. K\u00ebshtu, ka nj\u00eb rrezik t\u00eb rritur q\u00eb do t\u00eb l\u00ebm\u00eb pas gabime.<\/p>\n<p>Ky\u00e7i i projektit \u00ebsht\u00eb se nuk ka tester\u00eb t\u00eb dedikuar si nj\u00ebsi t\u00eb p\u00ebrhershme. Testimi, pa dyshim, ekziston, por ai merret nga analist\u00ebt, p\u00ebrve\u00e7 detyrave t\u00eb tjera t\u00eb tyre kryesore, si komunikimi me porosit\u00ebsit e biznesit, p\u00ebrdoruesit, zhvillimi i k\u00ebrkesave p\u00ebr sistemin etj. Megjith\u00ebse testimi kryhet me shum\u00eb cil\u00ebsi (ve\u00e7an\u00ebrisht \u00ebsht\u00eb e r\u00ebnd\u00ebsishme t\u00eb p\u00ebrmendet, sepse ndonj\u00eb analist mund ta lexoj\u00eb k\u00ebt\u00eb raport), efektiviteti i specializimit dhe p\u00ebrqendrimit n\u00eb nj\u00eb gj\u00eb nuk \u00ebsht\u00eb hequr nga diskutimi.<\/p>\n<p>Duke t\u00eb gjitha k\u00ebto, p\u00ebr t\u00eb rritur cil\u00ebsin\u00eb e produktit t\u00eb l\u00ebshuar dhe p\u00ebr t\u00eb reduktuar koh\u00ebn e zhvillimit, ideja e automatizimit t\u00eb testeve n\u00eb projekt duket mjaft logjike. N\u00eb etapa t\u00eb ndryshme t\u00eb ekzistenc\u00ebs s\u00eb sistemit t\u00eb besnik\u00ebris\u00eb, programues t\u00eb ve\u00e7ant\u00eb kan\u00eb b\u00ebr\u00eb p\u00ebrpjekje p\u00ebr t\u00eb mbuluar kodin e tyre me teste nj\u00ebsish. Ky ishte nj\u00eb proces mjaft i \u00e7ar\u00eb, ku \u00e7do individ p\u00ebrdorte arkitektur\u00ebn dhe metodat e tij. Rezultatet p\u00ebrfundimtare t\u00eb testeve nj\u00ebsish ishin t\u00eb p\u00ebrbashk\u00ebta: testet zhvilloheshin, p\u00ebrdorej nj\u00ebfar\u00eb kohe, mblidheshin n\u00eb nj\u00eb depo versionesh t\u00eb skedar\u00ebve, por n\u00eb nj\u00eb moment t\u00eb caktuar ndalonin s\u00eb funksionuari dhe harroheshin. Kjo ndodhte kryesisht sepse testet ishin lidhur m\u00eb tep\u00ebr me ekzekutuesin konkret sesa me projektin.<\/p>\n<h2>utPLSQL vjen n\u00eb ndihm\u00eb<\/h2>\n<p>\n<img decoding=\"async\" alt=\"Testet e Nj\u00ebsive n\u00eb DB \u2014 si e b\u00ebjm\u00eb k\u00ebt\u00eb n\u00eb Sportmaster, pjesa e par\u00eb\" src=\"\/wp-content\/uploads\/2019\/08\/f21dfcb085aace687566dc51cb9b5613.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDini ndonj\u00eb gj\u00eb p\u00ebr Steven Feuerstein? <\/p>\n<p>Ky \u00ebsht\u00eb nj\u00eb njeri i men\u00e7ur, i cili nj\u00eb pjes\u00eb t\u00eb gjat\u00eb t\u00eb karrier\u00ebs s\u00eb tij e ka kushtuar pun\u00ebs me Oracle dhe me PL\/SQL, ka shkruar nj\u00eb num\u00ebr t\u00eb madh punimesh n\u00eb k\u00ebt\u00eb fush\u00eb. Nj\u00eb nga librat e tij t\u00eb njohur quhet: \u00abOracle PL\/SQL. P\u00ebr profesionist\u00ebt\u00bb. Pik\u00ebrisht Stephen i p\u00ebrket zhvillimi i zgjidhjes utPLSQL, ose, si\u00e7 e dekriptivon, framework i testimit t\u00eb nj\u00ebsive p\u00ebr Oracle PL\/SQL. Zgjidhja utPLSQL u krijua n\u00eb vitin 2016, por vazhdohet t\u00eb punohet aktivisht mbi t\u00eb dhe t\u00eb l\u00ebshohen versione t\u00eb reja. N\u00eb momentin e raportit, versione m\u00eb e fundit \u00ebsht\u00eb datuar 24 mars 2019.<br \/>\n\u00c7far\u00eb \u00ebsht\u00eb kjo? Ky \u00ebsht\u00eb nj\u00eb projekt i ve\u00e7ant\u00eb open-source. Peshon disa megabajt duke p\u00ebrfshir\u00eb shembuj dhe dokumentacion. Fizikisht paraqet nj\u00eb skem\u00eb t\u00eb ve\u00e7ant\u00eb n\u00eb databaz\u00ebn ORACLE me nj\u00eb grup paketash dhe tabelash p\u00ebr organizimin e testimit t\u00eb nj\u00ebsive. Instalimi zgjat disa sekonda. Karakteristika e ve\u00e7ant\u00eb e utPLSQL \u00ebsht\u00eb thjesht\u00ebsia e shfryt\u00ebzimit. <br \/>\nGlobalisht, utPLSQL paraqet nj\u00eb mekaniz\u00ebm p\u00ebr ekzekutimin e testeve unit, ku testi unit p\u00ebrfshin procedurat standarde t\u00eb paketave Oracle, organizimi i t\u00eb cilave p\u00ebrputhet me disa rregulla. P\u00ebrve\u00e7 ekzekutimit, utPLSQL ruan nj\u00eb log t\u00eb t\u00eb gjith\u00eb ekzekutimeve t\u00eb testeve tuaja, dhe po ashtu ka nj\u00eb sistem t\u00eb brendsh\u00ebm raportimi.<\/p>\n<p>Le t\u00eb shohim nj\u00eb shembull se si duket kodi i nj\u00eb testi unit i realizuar sipas k\u00ebsaj metodologjie.<\/p>\n<p><img decoding=\"async\" alt=\"Testet e Nj\u00ebsive n\u00eb DB \u2014 si e b\u00ebjm\u00eb k\u00ebt\u00eb n\u00eb Sportmaster, pjesa e par\u00eb\" src=\"\/wp-content\/uploads\/2019\/08\/6fc8cc2d84c6c32a8b5269ebad1d2381.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPra, n\u00eb ekran shfaqet kodi i nj\u00eb specifikimi tipik t\u00eb paket\u00ebs me teste unit. Cilat jan\u00eb k\u00ebrkesat e domosdoshme? Paketa duhet t\u00eb ket\u00eb nj\u00eb prefiks \"utp_\". T\u00eb gjitha procedurat me teste duhet t\u00eb ken\u00eb t\u00eb nj\u00ebjtin prefiks. N\u00eb paket\u00eb duhet t\u00eb jen\u00eb t\u00eb pranishme dy procedura standarde: \"utp_setup\" dhe \"utp_teardown\". Procedura e par\u00eb thirret para \u00e7do testi unit, nd\u00ebrsa e dyta pas ekzekutimit.<\/p>\n<p>\"utp_setup\", zakonisht, p\u00ebrgatit sistemin ton\u00eb p\u00ebr ekzekutimin e testit unit, p\u00ebr shembull, krijon t\u00eb dh\u00ebna testuese. \"utp_teardown\", nga ana tjet\u00ebr, rikthen gjith\u00e7ka n\u00eb cil\u00ebsimet e origjin\u00ebs dhe anulon rezultatet e ekzekutimit.<\/p>\n<p>Ja \u00ebsht\u00eb nj\u00eb shembull i testit m\u00eb t\u00eb thjesht\u00eb unit, i cili kontrollon normalizimin e numrit t\u00eb telefonit t\u00eb dh\u00ebn\u00eb nga klienti n\u00eb formatin standard t\u00eb sistemit ton\u00eb t\u00eb besnik\u00ebris\u00eb. Nuk ka standarde t\u00eb detyrueshme, si t\u00eb shkruhen procedurat me teste unit. Zakonisht, thirret nj\u00eb metod\u00eb e sistemit q\u00eb po testohet, dhe rezultati i kthyer nga kjo metod\u00eb krahasohet me referenc\u00ebn. \u00cbsht\u00eb e r\u00ebnd\u00ebsishme q\u00eb krahasimi i rezultatit referenc\u00eb dhe atij t\u00eb marr\u00eb t\u00eb b\u00ebhet p\u00ebrmes metodave standarde t\u00eb utPLSQL.<\/p>\n<p>N\u00eb testin unit mund t\u00eb ket\u00eb \u00e7do num\u00ebr verifikimesh. Si\u00e7 shihet nga shembulli, ne kryejm\u00eb kat\u00ebr thirrje t\u00eb nd\u00ebrlidhura t\u00eb metod\u00ebs s\u00eb testuar p\u00ebr normalizimin e numrit t\u00eb telefonit dhe pas \u00e7do thirrje vler\u00ebsojm\u00eb rezultatin. Kur zhvilloni nj\u00eb test unit, duhet t\u00eb keni parasysh q\u00eb ekzistojn\u00eb verifikime q\u00eb nuk ndikojn\u00eb n\u00eb sistem, dhe pas disa prej tyre duhet t\u00eb kthehemi n\u00eb gjendjen fillestare t\u00eb sistemit. <br \/>\nP\u00ebr shembull, n\u00eb testin e paraqitur, ne thjesht formatizojm\u00eb numrin e hyrjes s\u00eb telefonit, q\u00eb nuk ndikon fare n\u00eb sistemin e besnik\u00ebris\u00eb. <\/p>\n<p>N\u00ebse shkruajm\u00eb teste unike p\u00ebr metod\u00ebn e krijimit t\u00eb nj\u00eb klienti t\u00eb ri, pas \u00e7do kontrolli n\u00eb sistem do t\u00eb krijohet nj\u00eb klient i ri, q\u00eb mund t\u00eb ndikoj\u00eb n\u00eb ekzekutimin e m\u00ebpassh\u00ebm t\u00eb testit.<\/p>\n<p><img decoding=\"async\" alt=\"Testet e Nj\u00ebsive n\u00eb DB \u2014 si e b\u00ebjm\u00eb k\u00ebt\u00eb n\u00eb Sportmaster, pjesa e par\u00eb\" src=\"\/wp-content\/uploads\/2019\/08\/7d649b354776c15d8a70a0d9a05363b4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nK\u00ebshtu fillohen testet unike. Dy varianta t\u00eb ekzekutimit jan\u00eb t\u00eb pranueshme: ekzekutimi i t\u00eb gjith\u00eb testeve unike nga nj\u00eb paket\u00eb specifike ose ekzekutimi i nj\u00eb testi unik specifik n\u00eb nj\u00eb paket\u00eb t\u00eb ve\u00e7ant\u00eb.<\/p>\n<p><img decoding=\"async\" alt=\"Testet e Nj\u00ebsive n\u00eb DB \u2014 si e b\u00ebjm\u00eb k\u00ebt\u00eb n\u00eb Sportmaster, pjesa e par\u00eb\" src=\"\/wp-content\/uploads\/2019\/08\/46628b60eb0fe0d20df822ddca914947.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nK\u00ebtu shihni nj\u00eb shembull t\u00eb sistemit t\u00eb brendsh\u00ebm t\u00eb raportimit. Bazuar n\u00eb rezultatet e pun\u00ebs s\u00eb testit unik, utPLSQL ndan nj\u00eb raport t\u00eb vog\u00ebl. N\u00eb t\u00eb shohim rezultatet p\u00ebr \u00e7do kontroll t\u00eb ve\u00e7ant\u00eb dhe rezultatin e p\u00ebrgjithsh\u00ebm t\u00eb ekzekutimit t\u00eb testit unik. <\/p>\n<h2>6 rregulla p\u00ebr testet automatike<\/h2>\n<p>\nPara se t\u00eb fillonim krijimin e nj\u00eb sistemi t\u00eb ri t\u00eb automatizuar t\u00eb testimit p\u00ebr sistemin e besnik\u00ebris\u00eb, s\u00eb bashku me drejtuesit identifikuam parimet, t\u00eb cilave testet tona t\u00eb ardhshme automatike duhet t'u p\u00ebrmbahen.<\/p>\n<p><img decoding=\"async\" alt=\"Testet e Nj\u00ebsive n\u00eb DB \u2014 si e b\u00ebjm\u00eb k\u00ebt\u00eb n\u00eb Sportmaster, pjesa e par\u00eb\" src=\"\/wp-content\/uploads\/2019\/08\/84be59663203abb373e7074b9a6cd4e4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<ol>\n<li>Testet automatike duhet t\u00eb jen\u00eb efikase dhe t\u00eb sjellin dobi. Ne kemi zhvillues t\u00eb shk\u00eblqyer, t\u00eb cil\u00ebt duhen p\u00ebrmendur, sepse ndonj\u00eb nga ta ndoshta do ta lexoj\u00eb k\u00ebt\u00eb dokument, dhe ata shkruajn\u00eb kod t\u00eb mrekulluesh\u00ebm. Por edhe kodi i tyre i shk\u00eblqyer nuk \u00ebsht\u00eb perfekt dhe p\u00ebrmbante, p\u00ebrmban dhe do t\u00eb p\u00ebrmbaj\u00eb gabime. Testet automatike duhet t\u00eb gjejn\u00eb k\u00ebto gabime. Ndryshe, ne ose po shkruajm\u00eb teste automatike t\u00eb k\u00ebqija, ose jemi n\u00eb nj\u00eb zon\u00eb t\u00eb vdekur q\u00eb n\u00eb fakt nuk zhvillohet. N\u00eb t\u00eb dy rastet, ne po b\u00ebjm\u00eb di\u00e7ka t\u00eb gabuar dhe qasja jon\u00eb \u00ebsht\u00eb e pafrytshme.<\/li>\n<li>Testet automatike duhet t\u00eb p\u00ebrdoren. \u00cbsht\u00eb pa kuptim t\u00eb kalosh nj\u00eb mori koh\u00eb dhe energjie n\u00eb shkrimin e nj\u00eb produkti softuerik, ta vendos\u00ebsh n\u00eb nj\u00eb depo dhe ta harrosh. Testet duhet t\u00eb ekzekutohen dhe sa m\u00eb shpesh t\u00eb jet\u00eb e mundur.<\/li>\n<li>Testet automatike duhet t\u00eb punojn\u00eb me stabilitet. Pavar\u00ebsisht nga ora e dit\u00ebs, ambienti i ekzekutimit dhe cil\u00ebsit\u00eb e tjera t\u00eb sistemit, ekzekutimet e testeve duhet t\u00eb \u00e7ojn\u00eb n\u00eb t\u00eb nj\u00ebjtin rezultat. Si rregull, kjo sigurohet nga fakti q\u00eb testet automatike punojn\u00eb me t\u00eb dh\u00ebna speciale testimi me cil\u00ebsime t\u00eb fiksuara t\u00eb sistemit.<\/li>\n<li>Testet automatik duhet t\u00eb funksionojn\u00eb me nj\u00eb shpejt\u00ebsi t\u00eb pranueshme p\u00ebr projektin tuaj. Ky koh\u00eb p\u00ebrcaktohet individualisht p\u00ebr \u00e7do sistem. Disa mund t\u00eb lejojn\u00eb pun\u00eb gjat\u00eb gjith\u00eb dit\u00ebs, nd\u00ebrsa t\u00eb tjer\u00ebt jan\u00eb t\u00eb detyruar t\u00eb p\u00ebrfundojn\u00eb brenda sekondash. Cilat standarde shpejt\u00ebsie kemi arritur n\u00eb projektin ton\u00eb, do t'ju tregoj pak m\u00eb von\u00eb.<\/li>\n<li>Zhvillimi i testeve automatike duhet t\u00eb jet\u00eb fleksib\u00ebl. Nuk \u00ebsht\u00eb e d\u00ebshirueshme t\u00eb heq\u00ebsh dor\u00eb nga kontrolli i ndonj\u00eb funksionaliteti thjesht sepse nuk e kemi b\u00ebr\u00eb m\u00eb par\u00eb ose p\u00ebr ndonj\u00eb bindje tjet\u00ebr. utPLSQL nuk ngre asnj\u00eb kufizim n\u00eb zhvillim, nd\u00ebrsa Oracle n\u00eb p\u00ebrgjith\u00ebsi lejon realizimin e gj\u00ebrave t\u00eb ndryshme. Shumica e problemeve kan\u00eb zgjidhje, pyetja \u00ebsht\u00eb vet\u00ebm p\u00ebr koh\u00ebn dhe p\u00ebrpjekjet e shpenzuara.<\/li>\n<li>Deployability. Ne kemi disa blloqe, ku nevojitet ekzekutimi i testeve. N\u00eb \u00e7do moment, dumpi i t\u00eb dh\u00ebnave mund t\u00eb p\u00ebrdit\u00ebsohet n\u00eb \u00e7do bllok. Duhet t\u00eb menaxhojm\u00eb projektin me teste automatike n\u00eb nj\u00eb m\u00ebnyr\u00eb q\u00eb t\u00eb kemi mund\u00ebsi t\u00eb kryejm\u00eb instalimin e tij t\u00eb plot\u00eb ose t\u00eb pjessh\u00ebm pa probleme.<\/li>\n<\/ol>\n<p>Dhe n\u00eb postimin e dyt\u00eb pas pak dit\u00ebsh do t'ju tregoj \u00e7far\u00eb kemi b\u00ebr\u00eb dhe cilat rezultate kemi arritur.<br \/>\n<br \/>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/sportmaster_lab\/blog\/464335\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0430\u043a\u0441\u0438\u043c \u041f\u043e\u043d\u043e\u043c\u0430\u0440\u0435\u043d\u043a\u043e \u0438 \u044f \u2014 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0432 \u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440\u0435. \u0418\u043c\u0435\u044e 10-\u043b\u0435\u0442\u043d\u0438\u0439 \u043e\u043f\u044b\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0432 IT-\u0441\u0444\u0435\u0440\u0435. \u041d\u0430\u0447\u0438\u043d\u0430\u043b \u043a\u0430\u0440\u044c\u0435\u0440\u0443 \u0432 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0437\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u043b\u0441\u044f \u043d\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 4 \u0433\u043e\u0434\u0430, \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u0438\u0440\u0443\u044f \u0437\u043d\u0430\u043d\u0438\u044f, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0432 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435, \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0421\u0423\u0411\u0414. \u0412 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440\u0430 \u044f \u0441\u043e\u0441\u0442\u043e\u044e \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0433\u043e\u0434\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28136,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37495","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0430\u043a\u0441\u0438\u043c \u041f\u043e\u043d\u043e\u043c\u0430\u0440\u0435\u043d\u043a\u043e \u0438 \u044f \u2014 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0432 \u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440\u0435. \u0418\u043c\u0435\u044e 10-\u043b\u0435\u0442\u043d\u0438\u0439 \u043e\u043f\u044b\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0432 IT-\u0441\u0444\u0435\u0440\u0435. \u041d\u0430\u0447\u0438\u043d\u0430\u043b \u043a\u0430\u0440\u044c\u0435\u0440\u0443 \u0432 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0437\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u043b\u0441\u044f \u043d\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 4 \u0433\u043e\u0434\u0430, \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u0438\u0440\u0443\u044f \u0437\u043d\u0430\u043d\u0438\u044f, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0432 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435, \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0421\u0423\u0411\u0414. \u0412 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440\u0430 \u044f \u0441\u043e\u0441\u0442\u043e\u044e \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0433\u043e\u0434\u0430\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/unit-testy-v-subd-kak-my-delaem-eto-v-sportmastere-chast-pervaya\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Unit-\u0442\u0435\u0441\u0442\u044b \u0432 \u0421\u0423\u0411\u0414 \u2014 \u043a\u0430\u043a \u043c\u044b \u0434\u0435\u043b\u0430\u0435\u043c \u044d\u0442\u043e \u0432 \u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440\u0435, \u0447\u0430\u0441\u0442\u044c \u043f\u0435\u0440\u0432\u0430\u044f | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0430\u043a\u0441\u0438\u043c \u041f\u043e\u043d\u043e\u043c\u0430\u0440\u0435\u043d\u043a\u043e \u0438 \u044f \u2014 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0432 \u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440\u0435. \u0418\u043c\u0435\u044e 10-\u043b\u0435\u0442\u043d\u0438\u0439 \u043e\u043f\u044b\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0432 IT-\u0441\u0444\u0435\u0440\u0435. \u041d\u0430\u0447\u0438\u043d\u0430\u043b \u043a\u0430\u0440\u044c\u0435\u0440\u0443 \u0432 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0437\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u043b\u0441\u044f \u043d\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 4 \u0433\u043e\u0434\u0430, \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u0438\u0440\u0443\u044f \u0437\u043d\u0430\u043d\u0438\u044f, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0432 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435, \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0421\u0423\u0411\u0414. \u0412 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440\u0430 \u044f \u0441\u043e\u0441\u0442\u043e\u044e \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0433\u043e\u0434\u0430\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/unit-testy-v-subd-kak-my-delaem-eto-v-sportmastere-chast-pervaya\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:17:57+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:17:57+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Testet unitare n\u00eb DBMS \u2014 si e b\u00ebjm\u00eb k\u00ebt\u00eb n\u00eb Sportmaster, pjesa e par\u00eb | ProHoster","description":"P\u00ebrsh\u00ebndetje, Habr! Un\u00eb quhem Maksim Ponomarenko dhe jam zhvillues n\u00eb Sportmaster. Kam 10 vjet p\u00ebrvoj\u00eb n\u00eb fush\u00ebn e IT-s\u00eb. Kam filluar karrier\u00ebn time n\u00eb testimin manual, pastaj kalova n\u00eb zhvillimin e bazave t\u00eb t\u00eb dh\u00ebnave. N\u00eb kat\u00ebr vitet e fundit, duke akumuluar njohurit\u00eb e marra n\u00eb testim dhe zhvillim, jam marr\u00eb me automatizimin e testimit n\u00eb nivelin e DBMS. Kam qen\u00eb n\u00eb ekipin e Sportmaster p\u00ebr pak m\u00eb shum\u00eb se nj\u00eb vit.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/unit-testy-v-subd-kak-my-delaem-eto-v-sportmastere-chast-pervaya","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Unit-\u0442\u0435\u0441\u0442\u044b \u0432 \u0421\u0423\u0411\u0414 \u2014 \u043a\u0430\u043a \u043c\u044b \u0434\u0435\u043b\u0430\u0435\u043c \u044d\u0442\u043e \u0432 \u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440\u0435, \u0447\u0430\u0441\u0442\u044c \u043f\u0435\u0440\u0432\u0430\u044f | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0430\u043a\u0441\u0438\u043c \u041f\u043e\u043d\u043e\u043c\u0430\u0440\u0435\u043d\u043a\u043e \u0438 \u044f \u2014 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0432 \u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440\u0435. \u0418\u043c\u0435\u044e 10-\u043b\u0435\u0442\u043d\u0438\u0439 \u043e\u043f\u044b\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0432 IT-\u0441\u0444\u0435\u0440\u0435. \u041d\u0430\u0447\u0438\u043d\u0430\u043b \u043a\u0430\u0440\u044c\u0435\u0440\u0443 \u0432 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0437\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u043b\u0441\u044f \u043d\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 4 \u0433\u043e\u0434\u0430, \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u0438\u0440\u0443\u044f \u0437\u043d\u0430\u043d\u0438\u044f, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0432 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435, \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0421\u0423\u0411\u0414. \u0412 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440\u0430 \u044f \u0441\u043e\u0441\u0442\u043e\u044e \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0433\u043e\u0434\u0430","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/unit-testy-v-subd-kak-my-delaem-eto-v-sportmastere-chast-pervaya","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:17:57+00:00","article:modified_time":"2019-10-31T19:17:57+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37495","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 18:06:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:25:27","updated":"2026-01-23 18:06:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/37495","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=37495"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/37495\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/28136"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=37495"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=37495"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=37495"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}