Mayeso a unit mu DBMS - momwe timachitira mu Sportmaster, gawo loyamba

Pa Habr!

Dzina langa ndine Maxim Ponomarenko ndipo ndine wopanga ku Sportmaster. Ndili ndi zaka 10 zazaka zambiri pantchito ya IT. Anayamba ntchito yake yoyeserera pamanja, kenako adasinthiratu chitukuko cha database. Kwa zaka zapitazi za 4, ndikusonkhanitsa chidziwitso chomwe ndapeza poyesa ndi chitukuko, ndakhala ndikuyesa kuyesa pamlingo wa DBMS.

Ndakhala m'gulu la Sportmaster kwa chaka chopitilira ndipo ndikupanga zoyeserera pa imodzi mwazinthu zazikulu. Mu April, anyamata ochokera ku Sportmaster Lab ndi ine tinayankhula pamsonkhano ku Krasnodar, lipoti langa linatchedwa "Unit test mu DBMS," ndipo tsopano ndikufuna kugawana nanu. Padzakhala malemba ambiri, choncho ndinaganiza zogawa lipotilo kukhala zolemba ziwiri. Choyamba, tikambirana za autotests ndi kuyezetsa pafupipafupi, ndipo chachiwiri, ndikhala mwatsatanetsatane pamakina athu oyesera mayunitsi ndi zotsatira zake.

Mayeso a unit mu DBMS - momwe timachitira mu Sportmaster, gawo loyamba

Choyamba, chiphunzitso pang'ono wotopetsa. Kodi kuyezetsa makina ndi chiyani? Uku ndikuyesa komwe kumachitika pogwiritsa ntchito mapulogalamu, ndipo mu IT yamakono ikugwiritsidwa ntchito kwambiri pakupanga mapulogalamu. Izi ndichifukwa choti makampani akukula, machitidwe awo azidziwitso akukula ndipo, motero, kuchuluka kwa magwiridwe antchito omwe akuyenera kuyesedwa akukula. Kuchita kuyezetsa pamanja kukukulirakulira.

Ndinkagwira ntchito kukampani ina yaikulu imene zotulutsa zake zimatuluka miyezi iwiri iliyonse. Nthawi yomweyo, mwezi wathunthu udatha pakupanga oyesa khumi ndi awiri pamanja kuti ayang'ane magwiridwe antchito. Chifukwa cha kukhazikitsidwa kwa automation ndi gulu laling'ono la omanga, tinatha kuchepetsa nthawi yoyesera mpaka masabata a 2 pachaka ndi theka. Sitinangowonjezera kuthamanga kwa kuyesa, komanso kupititsa patsogolo ubwino wake. Mayesero odzichitira okha amayambitsidwa pafupipafupi ndipo nthawi zonse amachita macheke onse omwe akuphatikizidwamo, ndiye kuti, timapatula zomwe anthu amachita.

Masiku ano IT imadziwika kuti wopanga mapulogalamu angafunikire kuti alembe kachidindo kazinthu, komanso kulemba mayeso a unit omwe amayang'ana code iyi.

Koma bwanji ngati dongosolo lanu likukhazikika pamalingaliro a seva? Palibe yankho lachilengedwe chonse kapena machitidwe abwino pamsika. Monga lamulo, makampani amathetsa vutoli popanga njira yawo yoyesera yolembera. Iyi ndi dongosolo lathu lodzilemba tokha loyesera lomwe linapangidwa pa pulojekiti yathu ndipo ndidzalankhula za izo mu lipoti langa.

Mayeso a unit mu DBMS - momwe timachitira mu Sportmaster, gawo loyamba

Kuyesa kukhulupirika

Choyamba, tiyeni tikambirane za polojekiti yomwe tidayika makina oyesera okha. Ntchito yathu ndi Sportmaster kukhulupirika dongosolo (mwa njira, ife tinalemba kale za izo positi iyi).

Ngati kampani yanu ndi yayikulu mokwanira, ndiye kuti kukhulupirika kwanu kumakhala ndi zinthu zitatu zokhazikika:

  • Dongosolo lanu lidzadzaza kwambiri
  • Dongosolo lanu likhala ndi njira zovuta zamakompyuta
  • Dongosolo lanu lidzasinthidwa mwachangu.

Tiyeni tipite mu dongosolo ... Pazonse, ngati tiganizira zamtundu wa Sportmaster, ndiye kuti tili ndi masitolo oposa 1000 ku Russia, Ukraine, China, Kazakhstan ndi Belarus. Pafupifupi kugula 300 kumachitika m'masitolo awa tsiku lililonse. Ndiye kuti, cheke chachiwiri chilichonse cha 000-3 chimalowa m'dongosolo lathu. Mwachibadwa, dongosolo lathu lokhulupirika ndilodzaza kwambiri. Ndipo popeza imagwiritsidwa ntchito mwakhama, tiyenera kupereka miyezo yapamwamba kwambiri ya khalidwe lake, chifukwa cholakwika chilichonse mu pulogalamuyo chimatanthauza ndalama zambiri, mbiri ndi zina zotayika.

Nthawi yomweyo, Sportmaster imayendetsa zotsatsa zopitilira zana. Pali zotsatsa zosiyanasiyana: pali zotsatsa, pali zoperekedwa ku tsiku la sabata, pali zomangidwa kusitolo inayake, pali zotsatsa za kuchuluka kwa risiti, pali kuchuluka kwa katundu. Ambiri, osati zoipa. Makasitomala ali ndi mabonasi ndi ma code otsatsa omwe amagwiritsidwa ntchito pogula. Zonsezi zimapangitsa kuti kuwerengera dongosolo lililonse ndi ntchito yosafunika kwambiri.

Algorithm yomwe imagwiritsa ntchito kukonza madongosolo ndiyowopsa komanso yovuta. Ndipo kusintha kulikonse kwa algorithm iyi ndikowopsa. Zinkawoneka kuti kusintha komwe kumawoneka ngati kocheperako kungayambitse zotsatira zosayembekezereka. Koma ndi njira zovuta kwambiri zamakompyuta, makamaka zomwe zimagwiritsa ntchito zofunikira kwambiri, zomwe ndizofunikira kwambiri pakupanga makina. Kuyang'ana milandu yambiri yofananira ndi manja ndi nthawi yambiri. Ndipo popeza malo olowera munjirayo sanasinthidwe, mutafotokoza kamodzi, mutha kupanga mayeso odziwikiratu ndikukhala otsimikiza kuti magwiridwe antchitowo agwira ntchito.

Popeza makina athu amagwiritsidwa ntchito mwachangu, bizinesi idzafuna china chatsopano kuchokera kwa inu, khalani ndi nthawi ndikukhala okonda makasitomala. M'dongosolo lathu lokhulupirika, zotulutsa zimatuluka miyezi iwiri iliyonse. Izi zikutanthauza kuti miyezi iwiri iliyonse timafunika kukonzanso dongosolo lonse. Panthawi imodzimodziyo, mwachibadwa, monga momwe zilili mu IT yamakono, chitukuko sichimachoka nthawi yomweyo kuchokera kwa wopanga mpaka kupanga. Zimachokera kudera la omanga, kenako motsatizana kudutsa mu benchi yoyesera, kumasulidwa, kuvomereza, ndipo kenako kumamaliza kupanga. Pang'ono ndi pang'ono, pamayesero oyesa ndi kumasula, tifunika kukonzanso dongosolo lonse.

Zomwe zafotokozedwazi ndizokhazikika pafupifupi machitidwe onse okhulupilika. Tiyeni tikambirane mbali za polojekiti yathu.

Mwaukadaulo, 90% yamalingaliro athu okhulupilika amakhazikika pa seva ndikukhazikitsidwa pa Oracle. Pali kasitomala yemwe akuwonekera ku Delphi, yemwe amagwira ntchito yoyang'anira malo ogwirira ntchito. Pali ntchito zapaintaneti zowululidwa zamapulogalamu akunja (mwachitsanzo tsamba lawebusayiti). Chifukwa chake, ndizomveka kuti ngati tigwiritsa ntchito makina oyesera okha, tizichita pa Oracle.

Dongosolo lokhulupirika ku Sportmaster lakhalapo kwa zaka zoposa 7 ndipo linapangidwa ndi omanga osakwatiwa ... Chiwerengero cha omanga pa ntchito yathu pazaka 7 izi chinali anthu 3-4. Koma m’chaka chathachi, gulu lathu lakula kwambiri, ndipo tsopano pali anthu 10 amene akugwira ntchitoyi. Ndiko kuti, anthu amabwera ku polojekitiyi omwe sadziwa bwino ntchito, njira, ndi zomangamanga. Ndipo pali chiopsezo chowonjezereka kuti tidzaphonya zolakwa.

Ntchitoyi imadziwika ndi kusowa kwa oyesa odzipereka ngati magawo ogwira ntchito. Pali, ndithudi, kuyesa, koma kuyesa kumachitika ndi akatswiri, kuwonjezera pa maudindo awo ena akuluakulu: kuyankhulana ndi makasitomala amalonda, ogwiritsa ntchito, kupanga zofunikira za dongosolo, ndi zina zotero. etc ... Ngakhale kuti kuyesa kukuchitika kwapamwamba kwambiri (izi ndizoyenera kutchula, popeza ena mwa akatswiri amatha kuyang'anitsitsa lipoti ili), mphamvu ya luso lapadera ndi kuika maganizo pa chinthu chimodzi sichinathe. .

Poganizira zonse zomwe tafotokozazi, kupititsa patsogolo mtundu wazinthu zomwe zaperekedwa ndikuchepetsa nthawi yachitukuko, lingaliro lodziyesa tokha pa polojekiti likuwoneka ngati lomveka. Ndipo pazigawo zosiyanasiyana za kukhalapo kwa machitidwe okhulupilika, omanga pawokha adayesetsa kubisa ma code awo ndi mayeso a mayunitsi. Ponseponse inali njira yosagwirizana, ndipo aliyense amagwiritsa ntchito zomanga ndi njira zake. Zotsatira zomaliza zinali zofala ku mayesero a mayunitsi: mayesero adapangidwa, ogwiritsidwa ntchito kwa nthawi ndithu, amasungidwa mu fayilo yosungidwa, koma panthawi ina anasiya kuthamanga ndipo anaiwalika. Choyamba, izi zinali chifukwa chakuti mayeserowo anali omangirizidwa kwambiri kwa woimba wina, osati polojekitiyo.

utPLSQL imabwera kudzapulumutsa

Mayeso a unit mu DBMS - momwe timachitira mu Sportmaster, gawo loyamba

Kodi mukudziwa chilichonse chokhudza Stephen Feuerstein?

Uyu ndi munthu wanzeru yemwe adadzipereka nthawi yayitali pantchito yake yogwira ntchito ndi Oracle ndi PL/SQL, ndipo adalemba ntchito zambiri pamutuwu. Limodzi mwa mabuku ake otchuka limatchedwa: "Oracle PL/SQL. Kwa akatswiri." Anali Stephen yemwe adapanga yankho la utPLSQL, kapena, momwe zimayimira, Unit Testing framework ya Oracle PL/SQL. Yankho la utPLSQL lidapangidwa mu 2016, koma likupitilizabe kugwiritsidwa ntchito mwachangu ndipo mitundu yatsopano imatulutsidwa. Panthawi yopereka lipoti, mtundu waposachedwa udayamba pa Marichi 24, 2019.
Ndi chiyani. Iyi ndi pulojekiti yotseguka yosiyana. Imalemera ma megabytes angapo, kuphatikiza zitsanzo ndi zolemba. Mwathupi, ndi schema yosiyana mu nkhokwe ya ORACLE yokhala ndi phukusi ndi matebulo okonzekera kuyesa mayunitsi. Kuyika kumatenga masekondi angapo. Chodziwika bwino cha utPLSQL ndichosavuta kugwiritsa ntchito.
Padziko lonse lapansi, utPLSQL ndi njira yoyendetsera mayeso a unit, pomwe kuyesa kwa unit kumamveka ngati njira wamba za Oracle batch, bungwe lomwe limatsatira malamulo ena. Kuphatikiza pakuyambitsa, utPLSQL imasunga chipika cha mayeso anu onse, komanso ili ndi dongosolo lamkati la malipoti.

Tiyeni tiwone chitsanzo cha momwe ma code test test amawonekera, ogwiritsidwa ntchito pogwiritsa ntchito njirayi.

Mayeso a unit mu DBMS - momwe timachitira mu Sportmaster, gawo loyamba

Chifukwa chake, chinsalucho chikuwonetsa khodi ya phukusi lomwe lili ndi mayeso a mayunitsi. Kodi zofunika zofunika ndi ziti? Phukusi liyenera kukhala loyambirira ndi "utp_". Njira zonse zokhala ndi mayeso ziyenera kukhala ndi chiyambi chofananira. Phukusili liyenera kukhala ndi njira ziwiri: "utp_setup" ndi "utp_teardown". Njira yoyamba imatchedwa kuyambiranso kuyesa kwa unit iliyonse, yachiwiri - itatha kukhazikitsidwa.

"utp_setup", monga lamulo, imakonzekeretsa dongosolo lathu kuti ligwiritse ntchito mayeso a unit, mwachitsanzo, kupanga deta yoyesera. "utp_teardown" - m'malo mwake, chilichonse chimabwerera kumayendedwe oyambira ndikukhazikitsanso zotsatira zoyambitsa.

Nachi chitsanzo cha mayeso osavuta kwambiri omwe amawunika kukhazikika kwa nambala yafoni yamakasitomala yomwe idalowetsedwa kukhala mawonekedwe okhazikika achitetezo chathu. Palibe milingo yovomerezeka yamomwe mungalembe njira ndi mayeso a mayunitsi. Monga lamulo, kuyitana kumapangidwa ku njira ya dongosolo lomwe likuyesedwa, ndipo zotsatira zomwe zabwezedwa ndi njirayi zimafaniziridwa ndi zomwe zimatchulidwa. Ndikofunikira kuti kufananiza kwa zotsatira zowunikira ndi zomwe zapezedwa zichitike kudzera mu njira zodziwika bwino za utPLSQL.

Mayeso a unit akhoza kukhala ndi macheke angapo. Monga tikuwonera pachitsanzo, timayimba mafoni anayi motsatizana kunjira yoyesedwa kuti tisinthe nambala yafoni ndikuwunika zotsatira pambuyo pa kuyimba kulikonse. Popanga mayeso a unit, muyenera kuganizira kuti pali macheke omwe samakhudza dongosolo mwanjira iliyonse, ndipo pambuyo pake muyenera kubwereranso ku chikhalidwe choyambirira cha dongosolo.
Mwachitsanzo, pamayeso agawo omwe aperekedwa timangopanga nambala yafoni yolowera, zomwe sizikhudza kukhulupirika mwanjira iliyonse.

Ndipo ngati tilemba mayeso a unit pogwiritsa ntchito njira yopangira kasitomala watsopano, ndiye pambuyo pa mayesero aliwonse kasitomala watsopano adzapangidwa mu dongosolo, zomwe zingakhudze kukhazikitsidwa kotsatira kwa mayesero.

Mayeso a unit mu DBMS - momwe timachitira mu Sportmaster, gawo loyamba

Umu ndi momwe mayunitsi amayendera. Pali njira ziwiri zoyambitsira zomwe zingatheke: kuyesa mayunitsi onse kuchokera pa phukusi linalake kapena kuyesa mayeso enaake mu phukusi linalake.

Mayeso a unit mu DBMS - momwe timachitira mu Sportmaster, gawo loyamba

Izi ndi momwe chitsanzo cha kachitidwe ka malipoti amkati kamawonekera. Kutengera zotsatira za mayeso a unit, utPLSQL imapanga lipoti laling'ono. Mmenemo timawona zotsatira za cheke chilichonse ndi zotsatira zonse za mayeso a unit.

6 malamulo a autotests

Tisanayambe kupanga njira yatsopano yoyesera kukhulupirika kwa makina, pamodzi ndi oyang'anira, tinatsimikiza mfundo zomwe mayesero athu amtsogolo ayenera kutsatira.

Mayeso a unit mu DBMS - momwe timachitira mu Sportmaster, gawo loyamba

  1. Ma Autotest ayenera kukhala othandiza komanso othandiza. Tili ndi otukula odabwitsa, omwe akuyenera kutchulidwa, chifukwa ena aiwo adzawona lipoti ili, ndipo amalemba ma code odabwitsa. Koma ngakhale malamulo awo odabwitsa siangwiro ndipo ali, ali, ndipo apitiriza kukhala ndi zolakwika. Ma Autotest amafunikira kuti apeze zolakwika izi. Ngati sizili choncho, ndiye kuti tikulemba ma autotest oyipa, kapena tabwera kumalo akufa omwe, kwenikweni, sakupangidwa. M’zochitika zonsezi, tikuchita cholakwika, ndipo kachitidwe kathu kopanda tanthauzo.
  2. Autotests iyenera kugwiritsidwa ntchito. Ndizosamveka kuthera nthawi yambiri ndi khama polemba pulogalamu ya pulogalamu, kuiyika m'malo osungirako ndikuyiwala. Mayesero amayenera kuchitidwa, ndikuthamanga pafupipafupi momwe kungathekere.
  3. Ma Autotest ayenera kugwira ntchito mokhazikika. Mosasamala nthawi ya tsiku, kuyimitsidwa koyimitsidwa ndi zosintha zina zamakina, kuyezetsa kuyenera kubweretsa zotsatira zomwezo. Monga lamulo, izi zimatsimikiziridwa ndi mfundo yakuti autotests amagwira ntchito ndi deta yapadera yoyesera ndi zoikamo zokhazikika.
  4. Ma Autotest ayenera kugwira ntchito mwachangu movomerezeka pulojekiti yanu. Nthawiyi imatsimikiziridwa payekhapayekha pa dongosolo lililonse. Anthu ena amatha kugwira ntchito tsiku lonse, pamene ena amawona kuti ndizofunikira kuti azichita mumasekondi. Ndikuuzani pang'ono zomwe timakonda zomwe tapeza mu polojekiti yathu.
  5. Kukula kwa Autotest kuyenera kukhala kosinthika. Sikoyenera kukana kuyesa ntchito iliyonse chifukwa chakuti sitinachitepo kale kapena pazifukwa zina. utPLSQL sichimaletsa chitukuko, ndipo Oracle, makamaka, imakulolani kuti mugwiritse ntchito zinthu zosiyanasiyana. Mavuto ambiri ali ndi yankho, ndi nkhani ya nthawi ndi khama.
  6. Kutumiza. Tili ndi maimidwe angapo komwe timafunikira kuyesa mayeso. Pamalo aliwonse, zotayira data zitha kusinthidwa nthawi iliyonse. Ndikofunikira kuchita pulojekiti yokhala ndi mayeso odziyimira pawokha kuti mutha kuyiyika mopanda ululu.

Ndipo mu positi yachiwiri m'masiku angapo ndikuwuzani zomwe tidachita komanso zomwe tapeza.

Source: www.habr.com

Kuwonjezera ndemanga