Unit bvunzo muDBMS - maitiro atinozviita muSportmaster, chikamu chechipiri

Chikamu chekutanga - pano.

Unit bvunzo muDBMS - maitiro atinozviita muSportmaster, chikamu chechipiri

Fungidzira mamiriro acho ezvinhu. Wakatarisana nebasa rekugadzira mashandiro matsva. Une budiriro kubva kune vakakutangira. Kana tikafunga kuti hauna zvaunosungirwa kuti uite, ungaitei?

Kazhinji, zvese zvakamboitika zvinokanganwika uye zvese zvinotanga zvakare. Hapana anofarira kuchera mukodhi yemumwe munhu, asi kana uine nguva, wadii kutanga kugadzira yako system? Iyi ndiyo nzira yakajairika, uye yakanyanya kunaka. Asi muchirongwa chedu takatadza. Isu takamisikidza remangwana otomatiki yekuyedza sisitimu pane zviri kuitika muyuniti bvunzo pa utPLSQL kubva kune vatinotungamira, tichibva taenda kunoshanda munzira dzinoverengeka dzakafanana.

  1. Kudzorera bvunzo dzekare dzeyuniti. Kudzoreredza kunoreva kugadzirisa bvunzo kune iripo mamiriro eiyo kuvimbika system uye kugadzirisa bvunzo kune utPLSQL zviyero.
  2. Kugadzirisa dambudziko nekunzwisisa kuti chii chaizvo, ndedzipi nzira uye maitiro akafukidzwa ne autotests. Iwe unofanirwa kuchengetedza ruzivo urwu mumusoro mako, kana kutora mhedziso zvichienderana neiyo autotest kodhi. Naizvozvo, takasarudza kugadzira catalog. Isu takapa yakasarudzika mnemonic kodhi kune yega yega yekuongorora, takagadzira tsananguro uye akarekodhwa marongero (semuenzaniso, pasi pemamiriro api paanofanira kutangwa, kana chii chinofanira kuitika kana bvunzo ikatadza). Chaizvoizvo, isu takazadza metadata nezve autotests uye takaisa iyo metadata mumatafura utPLSQL schema matafura.
  3. Kutsanangura nzira yekuwedzera, i.e. kusarudzwa kwekushanda kuri pasi pekuongororwa neautomated bvunzo. Isu takasarudza kutarisisa kune zvinhu zvitatu: kuvandudzwa kwehurongwa hutsva, zviitiko zvekugadzira, uye makiyi system maitiro. Nokudaro, isu tiri kuvandudza pamwe chete nekusunungurwa, kuve nechokwadi chepamusoro-soro, panguva imwe chete kuwedzera chiyero chekugadzirisa uye kuve nechokwadi chekuvimbika kwehurongwa munzvimbo dzakaoma. Chekutanga bhodhoro rakadaro raive hurongwa hwekugovera zvideredzwa uye mabhonasi pane cheki.
  4. Sezvingatarisirwa, takatanga kugadzira ma autotests matsva. Rimwe remabasa ekutanga ekuburitsa raive rekuongorora mashandiro eakafanotsanangurwa masampuli eiyo yekuvimbika system. Yedu purojekiti ine block yeyakaomesesa yakagadziriswa SQL mibvunzo inosarudza vatengi zvichienderana nemamiriro. Semuyenzaniso, tora runyoro rwevatengi vakapedzisira kutenga mune rimwe guta, kana rondedzero yevatengi vane avhareji yemari yekutenga iri pamusoro pehumwe kukosha. Tichinge tanyora ma autotests, takatarisa masampuli akafanotsanangurwa, akarekodhwa mabhenji ekuita ma paramita, uyezve takave nekuyedzwa kwemutoro.
  5. Kushanda ne autotests kunofanirwa kuve nyore. Zviito zviviri zvakajairika ndezvekumhanyisa otomatiki uye kugadzira bvunzo data. Aya ndiwo maitiro maviri ebetsero mamodule muhurongwa hwedu: yekutanga module uye data rekugadzira module.

    Iyo yekuvhura inomiririrwa seimwe nzira yepasirese ine imwechete mavara ekuisa parameter. Separameter, unogona kupfuudza iyo autotest mnemonic kodhi, zita repasuru, zita rekuyedza, autotest kuseta, kana yakachengetwa kiyi. Maitiro acho anosarudza uye anomhanyisa ese autotests anogutsa mamiriro.

    Iyo data yekugadzira module inounzwa muchimiro chepasuru umo kune chimwe nechimwe chinhu cheiyo system inoyedzwa (tafura mune dhatabhesi), yakakosha maitiro akagadzirwa anoisa data ipapo. Mune iyi maitiro, iyo yakasarudzika tsika inozadzwa zvakanyanya sezvinobvira, iyo inovimbisa kusikwa kwezvinhu chaizvo nekudzvanya kwemunwe. Uye kuti zvive nyore kushandisa, matemplate eiyo data yakagadzirwa akagadzirwa. Semuenzaniso, gadzira mutengi weimwe zera nefoni yekuyedza uye kutenga kwapera.

  6. Autotests inofanira kutanga uye kumhanya munguva inogamuchirwa kune yako system. Naizvozvo, hurongwa hwehusiku hwemazuva ese hwakarongwa, zvichibva pane zvakabuda mushumo wezvabuda uye unotumirwa kuboka rese rebudiriro kuburikidza netsamba dzekambani. Mushure mekudzorera ma autotests ekare uye kugadzira matsva, nguva yese yekushanda yaive maminetsi makumi matatu. Kuita uku kwaienderana nemunhu wese, sezvo kutangwa kwakaitika kunze kwemaawa ekushanda.

    Asi taifanira kushanda pakuwedzera kukurumidza kwebasa. Iyo yekuvimbika system mukugadzirwa inovandudzwa husiku. Sezvimwe zvezvimwe zvakabudiswa, taifanira kuita chinjo dzokukurumidzira usiku. Kumirira hafu yeawa nokuda kwemigumisiro ye autotests patatu mangwanani hakuna kuita kuti munhu ane mhosva yekusunungurwa afare (kukwazisa kwakasimba kuna Alexey Vasyukov!), Uye mangwanani akatevera mazwi akawanda emutsa akataurwa kune hurongwa hwedu. Asi semugumisiro, chiyero chemaminitsi mashanu chekushanda chakasimbiswa.

    Kuti tikurumidze kuita, takashandisa nzira mbiri: autotests yakatanga kumhanya mumatambo matatu akafanana, nerombo rakanaka izvi zviri nyore nekuda kwekuvaka kwehurongwa hwedu hwekuvimbika. Uye isu takasiya nzira iyo iyo autotest isingagadzirire data data pachayo, asi inoedza kutsvaga chinhu chakakodzera muhurongwa. Mushure mekuita shanduko, nguva yese yekushanda yakaderedzwa kusvika 3-4 maminitsi.

  7. Iyo purojekiti ine otomatiki bvunzo inofanirwa kukwanisa kuiswa munzvimbo dzakasiyana siyana. Pakutanga kwerwendo rwedu, pakanga paine kuyedza kunyora zvedu batch mafaera, asi zvakava pachena kuti yekuzvinyora yega yega yekumisikidza yaityisa chose, uye takatendeukira kumaindasitiri mhinduro. Nekuda kwekuti iyo purojekiti ine yakawanda yakananga kodhi (kutanga pane zvese, isu tinochengeta iyo autotest kodhi) uye data diki kwazvo (iyo huru data ndeye metadata nezve autotests), kuita muLiquibase purojekiti kwakava nyore.

    Iyo yakavhurika-sosi, dhatabhesi-yakazvimirira raibhurari yekutevera, kutonga, uye kumanikidza dhatabhesi schema shanduko. Inotungamirirwa kuburikidza nemutsara wekuraira kana masisitimu akadai seApache Maven. Nheyo yekushanda kweLiquibase iri nyore. Tine purojekiti yakarongeka neimwe nzira, iyo ine shanduko kana zvinyorwa zvinoda kuendeswa kune inotarirwa sevha, uye kudzora mafaera anoona mukutevedzana uye neapi maparamita shanduko idzi dzinofanira kuiswa.

    Padanho reDBMS, tafura yakakosha inogadzirwa umo Liquibase inochengeta rollover log. Shanduko imwe neimwe ine hashi yakaverengerwa, iyo inofananidzwa nguva imwe neimwe pakati peprojekiti uye nyika mune dhatabhesi. Kutenda kuLiquibase, isu tinogona nyore kuburitsa shanduko kune yedu system kune chero dunhu. Autotests ikozvino yakatangwa pabvunzo uye kuburitsa maseketi, pamwe nemidziyo (yevagadziri 'maseketi emunhu).

Unit bvunzo muDBMS - maitiro atinozviita muSportmaster, chikamu chechipiri

Saka, ngatitaure nezve mhedzisiro yekushandisa yedu unit test system.

  1. Ehe, chekutanga pane zvese, isu tine chokwadi chekuti takatanga kugadzira software iri nani. Autotests inotangwa zuva nezuva uye akawanda ezvikanganiso anowanikwa kuburitswa kwega kwega. Uyezve, zvimwe zvezvikanganiso izvi zvinongobatana zvisina kunanga nekushanda kwataida chaizvo kuchinja. Pane kusava nechokwadi kwakakomba kuti zvikanganiso izvi zvakawanikwa nekuongororwa kwemaoko.
  2. Dare racho zvino rine chivimbo chokuti kushanda kwakananga kuri kushanda zvakanaka ... Chokutanga pane zvose, izvi zvine chokuita nemaitiro edu anokosha. Semuyenzaniso, mumwedzi mitanhatu yapfuura hatina kumbova nedambudziko nekugovewa kwezvidzikisiro uye mabhonasi pamarisiti, kunyangwe shanduko yekuburitswa, kunyangwe munguva dzakapfuura zvikanganiso zvakaitika neimwe frequency.
  3. Isu takakwanisa kudzikisa huwandu hwekuyedzwa kwekudzokorora. Nekuda kwekuti ma autotests anonyorerwa mashandiro matsva, vaongorori uye vaongorori venguva-yenguva vanogashira kodhi yemhando yepamusoro, nekuti. yakatoongororwa.
  4. Zvimwe zvebudiriro mukuyedzwa otomatiki zvinoshandiswa nevagadziri. Semuenzaniso, bvunzo data pamidziyo inogadzirwa uchishandisa chinhu chizvarwa module.
  5. Izvo zvakakosha kuti isu takagadzira "kugamuchirwa" kweiyo otomatiki yekuyedza system kune vanogadzira. Pane kunzwisisa kuti izvi zvakakosha uye zvinobatsira. Asi kubva muruzivo rwangu ndinogona kutaura kuti izvi zviri kure nemhosva. Autotests inoda kunyorwa, inoda kutsigirwa uye kugadziridzwa, mibairo inofanirwa kuongororwa, uye kazhinji iyi nguva mitengo haina kukosha. Zviri nyore kuenda kunogadzira uye kugadzirisa matambudziko ikoko. Pano, vanogadzira mutsara uye vanotikumbira kuti tivhare mashandiro avo nema autotests.

Chii chinotevera

Unit bvunzo muDBMS - maitiro atinozviita muSportmaster, chikamu chechipiri

Ngatitaure nezve zvirongwa zvekusimudzira zveiyo otomatiki yekuyedza purojekiti.

Ehe, chero bedzi Sportmaster's kuvimbika system iri mupenyu uye ichiramba ichikura, zvinogoneka zvakare kugadzira autotests kanenge kusingaperi. Naizvozvo, kutungamira kukuru kwekusimudzira kuri kuwedzera nzvimbo yekuvhara.

Sezvo nhamba ye autotests inowedzera, nguva yavo yose yekushanda ichawedzera zvishoma nezvishoma, uye tichazofanira zvakare kudzokera kunyaya yekushanda. Zvingangodaro, mhinduro ichave yekuwedzera nhamba yetambo dzakafanana.

Asi idzi inzira dziri pachena dzebudiriro. Kana tikataura nezve chimwe chinhu chisiri chidiki, tinosimbisa zvinotevera:

  1. Parizvino, autotest manejimendi inoitwa padanho reDBMS, i.e. ruzivo rwePL/SQL runodiwa pakuita basa rinobudirira. Kana zvichidikanwa, manejimendi ehurongwa (semuenzaniso, kutanga kana kugadzira metadata), unogona kugadzira imwe mhando yepaneru ye admin uchishandisa Jenkins kana chimwe chinhu chakafanana.
  2. Wese munhu anoda huwandu uye hunhu zviratidzo. Kuyedza otomatiki, chiratidzo chepasirese chakadai iCode Coverage kana kodhi yekuvhara metric. Tichishandisa chiratidzo ichi, tinogona kuona kuti ndeipi muzana yekodhi yehurongwa hwedu pasi pekuedzwa inofukidzwa neautotests. Kutanga kubva muvhezheni 12.2, Oracle inopa kugona kuverenga metric iyi uye inopa kushandiswa kweyakajairwa DBMS_PLSQL_CODE_COVERAGE package.

    Yedu autotest system ichangopfuura gore uye pamwe ino ndiyo nguva yekuongorora kuvharika kwedu. Muchirongwa changu chekupedzisira (kwete chirongwa cheSportmaster) izvi ndizvo zvakaitika. Gore mushure mekushanda pa autotests, manejimendi akaisa basa rekuongorora kuti ndeapi muzana yekodhi yatinovhara. Nekuvhara kweinopfuura 1%, manejimendi angafara. Isu, vagadziri, takatarisira mhedzisiro ye10%. Isu takaisa kodhi yekuvhara, tikaiyera, uye tikawana 20%. Kupemberera takaenda kunotora mubairo, asi mafambiro atakaita uye kwatakazoenda pave paya inyaya yakasiyana zvachose.

  3. Autotests inogona kutarisa akafumurwa masevhisi ewebhu. Oracle inotibvumira kuita izvi nemazvo, uye hatichasangana nematambudziko akati wandei.
  4. Uye, chokwadi, yedu otomatiki yekuyedza system inogona kuiswa kune imwe chirongwa. Mhinduro yatakagamuchira ndeyese uye inoda chete kushandiswa kweOracle. Ndakanzwa kuti mamwe mapurojekiti eSportmaster anofarira kuyedza otomatiki uye pamwe tichaenda kwavari.

zvakawanikwa

Ngatipfupikisai. Pachirongwa chekuvimbika system muSportmaster, takakwanisa kuita otomatiki yekuyedza system. Iyo yakavakirwa pane utPLSQL mhinduro kubva kuna Stephen Feuerstein. Kutenderedza utPLSQL kune autotest kodhi uye anobatsira anozvinyora mamodule: yekutanga module, data yekugadzira module uye nevamwe. Autotests inotangwa zuva nezuva uye, zvakanyanya kukosha, inoshanda uye inobatsira. Tine chivimbo chekuti takatanga kuburitsa software yemhando yepamusoro. Panguva imwecheteyo, mhinduro inoguma ndeyepasi rose uye inogona kushandiswa zvakasununguka kune chero chirongwa pazvinenge zvakakodzera kuronga otomatiki bvunzo paOracle DBMS.

PS Ichi chinyorwa hachina kunyanya kujeka: kune akawanda mameseji uye hapana maitiro ehunyanzvi. Kana musoro wacho uchiwanzonakidza, saka takagadzirira kuenderera mberi uye kudzoka nekuenderera mberi, apo isu tichakuudza zvakachinja mumwedzi mitanhatu yapfuura uye kupa mienzaniso yekodhi.

Nyora tsinhiro kana pane mapfundo anofanira kusimbiswa munguva yemberi, kana kuti mibvunzo inoda kuziviswa.

Vashandisi vakanyoresa chete ndivo vanogona kutora chikamu muongororo. Nyorera mu, Munogamuchirwa.

Tonyora zvimwe pamusoro peizvi here?

  • Hongu chokwadi

  • Kwete ndatenda

12 vashandisi vakavhota. 4 vashandisi vakaramba.

Source: www.habr.com

Voeg