Awọn idanwo kuro ni DBMS - bawo ni a ṣe ṣe ni Sportmaster, apakan meji

Apa akọkọ - nibi.

Awọn idanwo kuro ni DBMS - bawo ni a ṣe ṣe ni Sportmaster, apakan meji

Fojuinu ipo kan. O dojukọ pẹlu iṣẹ ṣiṣe ti idagbasoke iṣẹ ṣiṣe tuntun. O ni iriri lati ọdọ awọn ti o ti ṣaju rẹ. Ti o ba ro pe o ko ni awọn ojuse ti iwa, kini iwọ yoo ṣe?

Nigbagbogbo, gbogbo awọn idagbasoke atijọ ti gbagbe ati pe ohun gbogbo bẹrẹ lẹẹkansii. Ko si ẹnikan ti o nifẹ lati ma wà sinu koodu ẹlomiran, ati pe ti o ba ni akoko, kilode ti o ko bẹrẹ ṣiṣẹda eto tirẹ? Eyi jẹ ọna aṣoju, ati ni ọpọlọpọ awọn ọna o tọ. Ṣugbọn ninu iṣẹ akanṣe wa, a ṣe iyatọ. A da eto idanwo adaṣe adaṣe ọjọ iwaju lori awọn idagbasoke ninu awọn idanwo ẹyọkan lori utPLSQL lati ọdọ awọn ti ṣaju wa, ati lẹhinna lọ lati ṣiṣẹ ni awọn itọsọna afiwera pupọ.

  1. Pada sipo atijọ kuro igbeyewo. Imularada tumọ si aṣamubadọgba ti awọn idanwo si ipo ti o wa ti eto iṣootọ ati isọdọtun ti awọn idanwo si awọn iṣedede utPLSQL.
  2. Yiyan iṣoro naa pẹlu oye, ati kini gangan, kini awọn ọna ati awọn ilana, a ti bo pẹlu awọn adaṣe adaṣe. O gbọdọ boya tọju alaye yii si ori rẹ, tabi fa awọn ipinnu ti o da taara lori koodu ti awọn idanwo adaṣe. Nitorinaa, a pinnu lati ṣẹda katalogi kan. A yan koodu mnemonic alailẹgbẹ si idanwo adaṣe kọọkan, ṣẹda apejuwe kan, ati ṣeto awọn eto (fun apẹẹrẹ, labẹ awọn ipo wo ni o yẹ ki o ṣiṣẹ, tabi kini o yẹ ki o ṣẹlẹ ti ṣiṣe idanwo ba kuna). Ni pataki, a kun ninu metadata nipa awọn idanwo adaṣe ati gbe metadata yii sinu awọn tabili boṣewa ti ero utPLSQL.
  3. Itumọ ilana imugboroja, i.e. asayan ti iṣẹ-ṣiṣe ti o jẹ koko ọrọ si ijerisi nipa autotests. A pinnu lati san ifojusi si awọn nkan mẹta: awọn ilọsiwaju tuntun si eto, awọn iṣẹlẹ lati iṣelọpọ, ati awọn ilana pataki ti eto naa. Nitorinaa, a dagbasoke ni afiwe pẹlu itusilẹ, aridaju didara rẹ ti o ga julọ, nigbakanna ti o pọ si iye ipadasẹhin ati aridaju igbẹkẹle ti eto ni awọn aaye pataki. Iru igo akọkọ ni ilana ti pinpin awọn ẹdinwo ati awọn ẹbun nipasẹ ayẹwo.
  4. Nipa ti, a bẹrẹ si ni idagbasoke titun autotests. Ọkan ninu awọn iṣẹ-ṣiṣe idasilẹ akọkọ ni lati ṣe iṣiro iṣẹ ṣiṣe ti awọn ayẹwo ti a ti pinnu tẹlẹ ti eto iṣootọ. Ise agbese wa ni bulọọki ti awọn ibeere sql ti o wa titi lile ti o yan awọn alabara ni ibamu si awọn ipo. Fun apẹẹrẹ, gba atokọ ti gbogbo awọn alabara ti rira kẹhin wa ni ilu kan pato, tabi atokọ ti awọn alabara ti iye rira apapọ wọn ga ju iye kan lọ. Nini awọn idanwo adaṣe ti a kọ, a ṣayẹwo awọn ayẹwo ti a ti pinnu tẹlẹ, awọn aye ṣiṣe ala ti o wa titi, ati ni afikun a ni idanwo fifuye.
  5. Ṣiṣẹ pẹlu awọn adaṣe yẹ ki o rọrun. Awọn iṣe meji ti o wọpọ julọ nṣiṣẹ awọn adaṣe adaṣe ati ṣiṣe data idanwo. Eyi ni bii awọn modulu oluranlọwọ meji ṣe han ninu eto wa: module ifilọlẹ ati module iran data.

    Ifilọlẹ naa jẹ aṣoju bi ilana jeneriki kan pẹlu paramita ọrọ titẹ sii kan. Gẹgẹbi paramita kan, o le kọja koodu mnemonic adaṣe adaṣe kan, orukọ package, orukọ idanwo, eto adaṣe, tabi koko-ọrọ ti a fi pamọ. Ilana naa yan ati ṣiṣe gbogbo awọn adaṣe adaṣe ti o pade awọn ipo.

    A ṣe agbekalẹ module iran data bi package, ninu eyiti fun ohun kọọkan ti eto labẹ idanwo (tabili kan ninu ibi ipamọ data), ilana pataki kan ti ṣẹda ti o fi data sii nibẹ. Ninu ilana yii, awọn iye aiyipada ti kun si iwọn ti o pọju, eyiti o ṣe idaniloju ṣiṣẹda awọn nkan gangan ni titẹ ika kan. Ati fun irọrun ti lilo, awọn awoṣe fun data ti ipilẹṣẹ ni a ṣẹda. Fun apẹẹrẹ, ṣẹda alabara ti ọjọ-ori kan pẹlu foonu idanwo ati rira ti o pari.

  6. Awọn idanwo adaṣe yẹ ki o ṣiṣẹ ati ṣiṣe laarin akoko ti o tọ fun eto rẹ. Nitorinaa, a ṣeto ifilọlẹ alẹ ojoojumọ kan, da lori awọn abajade eyiti ijabọ kan lori awọn abajade ti ipilẹṣẹ ati firanṣẹ si gbogbo ẹgbẹ idagbasoke nipasẹ meeli ile-iṣẹ. Lẹhin mimu-pada sipo awọn adaṣe adaṣe atijọ ati ṣiṣẹda awọn tuntun, akoko ṣiṣe lapapọ jẹ iṣẹju 30. Iru iṣẹ bẹ dara fun gbogbo eniyan, nitori ifilọlẹ naa waye lakoko awọn wakati pipa.

    Ṣugbọn a ni lati ṣiṣẹ lori jijẹ iyara iṣẹ. Ilana iṣootọ iṣelọpọ ti ni imudojuiwọn ni alẹ. Gẹgẹbi apakan ti ọkan ninu awọn idasilẹ, a ni lati ṣe awọn ayipada ni iyara ni alẹ. A idaji-wakati nduro fun awọn esi ti autotests ni meta ni owurọ ko ṣe awọn eniyan lodidi fun awọn Tu dun (ardent hello to Alexei Vasyukov!), Ati nigbamii ti owurọ ọpọlọpọ awọn gbona ọrọ won wi si ọna wa eto. Ṣugbọn bi abajade, a ṣeto iwọn iṣẹju 5 kan fun iṣẹ.

    Lati mu iṣẹ ṣiṣe pọ si, a lo awọn ọna meji: a bẹrẹ ṣiṣe awọn adaṣe adaṣe ni awọn okun ti o jọra mẹta, nitori eyi rọrun pupọ nitori faaji ti eto iṣootọ wa. Ati pe a kọ ọna naa silẹ nigbati autotest ko ṣẹda data idanwo fun ararẹ, ṣugbọn gbiyanju lati wa nkan ti o dara ninu eto naa. Lẹhin ṣiṣe awọn ayipada, apapọ akoko iṣẹ ti dinku si awọn iṣẹju 3-4.

  7. Ise agbese kan pẹlu autotests yẹ ki o ni anfani lati wa ni ransogun lori orisirisi awọn iduro. Ni ibẹrẹ irin-ajo naa, awọn igbiyanju wa lati kọ awọn faili ipele tiwa, ṣugbọn o han gbangba pe fifi sori ẹrọ adaṣe ti ara ẹni jẹ ẹru pipe, ati pe a yipada si awọn solusan ile-iṣẹ. Nitori otitọ pe iṣẹ akanṣe naa ni ọpọlọpọ koodu taara (akọkọ, a tọju koodu ti awọn adaṣe adaṣe) ati data kekere pupọ (data akọkọ jẹ metadata nipa awọn adaṣe adaṣe), o wa ni irọrun pupọ lati ṣepọ sinu Liquibase ise agbese.

    O jẹ ile-ikawe ominira data orisun ṣiṣi fun titọpa, iṣakoso ati lilo awọn ayipada ero data. Ti ṣakoso nipasẹ laini aṣẹ tabi awọn ilana bii Apache Maven. Ilana ti iṣiṣẹ ti Liquibase jẹ ohun rọrun. A ni iṣẹ akanṣe kan ti a ṣeto ni ọna kan, eyiti o ni awọn iyipada tabi awọn iwe afọwọkọ ti o nilo lati yiyi sori olupin ibi-afẹde, ati awọn faili iṣakoso ti o pinnu iru aṣẹ ati pẹlu awọn aye wo ni awọn ayipada wọnyi yẹ ki o fi sii.

    Ni ipele DBMS, tabili pataki kan ni a ṣẹda ninu eyiti Liquibase ṣe tọju akọọlẹ yipo pada. Iyipada kọọkan ni elile ti a ṣe iṣiro ti o ṣe afiwe akoko kọọkan laarin iṣẹ akanṣe ati ipinlẹ ninu aaye data. Ṣeun si Liquibase, a le ni rọọrun yi awọn ayipada jade si eto wa si eyikeyi iyika. Awọn idanwo adaṣe ti wa ni bayi ṣiṣẹ lori idanwo ati awọn iyika itusilẹ, ati lori awọn apoti (awọn iyika idagbasoke ti ara ẹni).

Awọn idanwo kuro ni DBMS - bawo ni a ṣe ṣe ni Sportmaster, apakan meji

Nitorinaa, jẹ ki a sọrọ nipa awọn abajade ti lilo eto idanwo ẹyọkan wa.

  1. Nitoribẹẹ, ni akọkọ, a ni idaniloju pe a bẹrẹ idagbasoke sọfitiwia to dara julọ. Awọn idanwo adaṣe ṣiṣẹ lojoojumọ ati rii ọpọlọpọ awọn idun ni gbogbo idasilẹ. Pẹlupẹlu, diẹ ninu awọn aṣiṣe wọnyi nikan ni aiṣe-taara ni ibatan si iṣẹ ṣiṣe ti a fẹ gaan lati yipada. Awọn ṣiyemeji ti o lagbara wa pe awọn aṣiṣe wọnyi ni a rii nipasẹ idanwo afọwọṣe.
  2. Ẹgbẹ naa ni igbẹkẹle pe iṣẹ ṣiṣe pato ṣiṣẹ ni deede… Ni akọkọ, eyi kan awọn ilana pataki wa. Fun apẹẹrẹ, ni oṣu mẹfa sẹhin, a ko ni awọn iṣoro pẹlu pinpin awọn ẹdinwo ati awọn imoriri nipasẹ ayẹwo, laibikita awọn ayipada ti a ṣe ni gbogbo itusilẹ, botilẹjẹpe ni awọn akoko iṣaaju awọn aṣiṣe waye pẹlu awọn igbohunsafẹfẹ diẹ.
  3. A ṣakoso lati dinku nọmba awọn iterations idanwo. Nitori otitọ pe a kọ awọn adaṣe adaṣe fun iṣẹ ṣiṣe tuntun, awọn atunnkanwo ati awọn idanwo akoko-apakan gba koodu ti didara giga, nitori o ti ni idaniloju tẹlẹ.
  4. Apakan awọn idagbasoke ti idanwo adaṣe jẹ lilo nipasẹ awọn olupilẹṣẹ. Fun apẹẹrẹ, data idanwo lori awọn apoti ni a ṣẹda nipa lilo module iran ohun.
  5. O ṣe pataki pe a ti ni idagbasoke “gbigba” ti eto idanwo adaṣe nipasẹ awọn olupilẹṣẹ. Oye wa pe eyi jẹ pataki ati iwulo. Ati lati iriri ti ara mi, Mo le sọ pe eyi jina si ọran naa. Awọn idanwo adaṣe nilo lati kọ, wọn nilo lati ṣetọju ati idagbasoke, awọn abajade atupale, ati nigbagbogbo awọn idiyele akoko wọnyi ko tọ si. O rọrun pupọ lati lọ si iṣelọpọ ati koju awọn iṣoro nibẹ. Ni orilẹ-ede wa, awọn olupilẹṣẹ laini ati beere lati bo iṣẹ ṣiṣe wọn pẹlu awọn idanwo adaṣe.

Kini atẹle

Awọn idanwo kuro ni DBMS - bawo ni a ṣe ṣe ni Sportmaster, apakan meji

Jẹ ki a sọrọ nipa awọn ero idagbasoke ti iṣẹ akanṣe adaṣe adaṣe.

Nitoribẹẹ, niwọn igba ti eto iṣootọ Sportmaster wa laaye ati tẹsiwaju lati dagbasoke, awọn adaṣe adaṣe tun le dagbasoke ni ailopin. Nitorinaa, itọsọna akọkọ ti idagbasoke jẹ imugboroja ti agbegbe agbegbe.

Bi nọmba awọn adaṣe ti n pọ si, apapọ akoko iṣẹ wọn yoo pọ si ni imurasilẹ, ati pe a yoo tun ni lati pada si ọran iṣẹ ṣiṣe. O ṣeese julọ, ojutu yoo jẹ lati mu nọmba awọn okun ti o jọra pọ si.

Ṣugbọn awọn wọnyi jẹ awọn ọna idagbasoke ti o han gbangba. Ti a ba sọrọ nipa nkan diẹ sii ti kii ṣe bintin, a ṣe afihan atẹle naa:

  1. Bayi awọn adaṣe adaṣe ni iṣakoso ni ipele DBMS, i.e. imọ ti PL/SQL nilo fun iṣẹ aṣeyọri. Ti o ba jẹ dandan, iṣakoso eto (fun apẹẹrẹ, ifilọlẹ tabi ṣiṣẹda metadata) le ṣe mu jade nipasẹ iru igbimọ abojuto nipa lilo Jenkins tabi nkan ti o jọra.
  2. Gbogbo eniyan nifẹ awọn itọkasi pipo ati agbara. Fun idanwo aifọwọyi, iru atọka gbogbo agbaye jẹ Ibora koodu tabi metiriki agbegbe koodu. Lilo atọka yii, a le pinnu ipin ogorun ti koodu ti eto wa labẹ idanwo ni aabo nipasẹ awọn adaṣe adaṣe. Bibẹrẹ lati ẹya 12.2, Oracle n pese agbara lati ṣe iṣiro metiriki yii o si daba ni lilo idiwọn DBMS_PLSQL_CODE_COVERAGE package.

    Eto idanwo adaṣe wa jẹ ọdun diẹ ati pe o le jẹ akoko lati ṣe iṣiro agbegbe. Ninu iṣẹ akanṣe mi kẹhin (iṣẹ akanṣe kii ṣe nipasẹ Sportmaster), eyi ṣẹlẹ. Ọdun kan lẹhin ti o ṣiṣẹ lori awọn adaṣe adaṣe, iṣakoso ṣeto iṣẹ ṣiṣe ti iṣiro kini ipin ogorun koodu ti a bo. Pẹlu diẹ ẹ sii ju 1% agbegbe, iṣakoso yoo dun. A, awọn olupilẹṣẹ, nireti abajade ti iwọn 10%. A dabaru koodu agbegbe, wọn wọn, ni 20%. Lati ṣe ayẹyẹ, a lọ fun ẹbun naa, ṣugbọn bi a ṣe lọ fun rẹ ati ibi ti a lọ nigbamii jẹ itan ti o yatọ patapata.

  3. Awọn idanwo adaṣe le ṣe idanwo awọn iṣẹ wẹẹbu ti o han. Oracle faye gba o lati ṣe eyi, ati awọn ti a yoo ko to gun pade nọmba kan ti isoro.
  4. Ati pe, nitorinaa, eto idanwo adaṣe wa le lo si iṣẹ akanṣe miiran. Ojutu ti a gba ni gbogbo agbaye ati pe o nilo lilo Oracle nikan. Mo gbọ pe iwulo wa ni idanwo adaṣe lori awọn iṣẹ akanṣe Sportmaster miiran ati, boya, a yoo lọ si wọn.

awari

Jẹ ká recap. Lori iṣẹ akanṣe eto iṣootọ ni Sportmaster, a ṣakoso lati ṣe eto idanwo adaṣe kan. Ipilẹ rẹ jẹ ojutu utPLSQL lati ọdọ Stephen Feuerstein. Ni ayika utPLSQL ni koodu fun awọn idanwo adaṣe ati awọn modulu kikọ ti ara ẹni: ifilọlẹ kan, module iran data, ati awọn miiran. Awọn idanwo adaṣe ṣiṣẹ lojoojumọ ati, pataki julọ, ṣiṣẹ ati anfani. A ni idaniloju pe a ti bẹrẹ lati tu software ti o ga julọ silẹ. Ni akoko kanna, ojutu abajade jẹ gbogbo agbaye ati pe o le lo larọwọto si eyikeyi iṣẹ akanṣe nibiti o jẹ dandan lati ṣeto idanwo adaṣe lori Oracle DBMS.

PS Nkan yii ko jade ni pato: ọrọ pupọ wa ati pe ko si awọn apẹẹrẹ imọ-ẹrọ. Ti koko naa ba jẹ iyanilenu agbaye, lẹhinna a ti ṣetan lati tẹsiwaju ati pada pẹlu itesiwaju, nibiti a yoo sọ fun ọ ohun ti o yipada ni oṣu mẹfa sẹhin ati fun awọn apẹẹrẹ koodu.

Kọ awọn asọye ti awọn aaye ba wa ti o yẹ ki o tẹnumọ ni ọjọ iwaju, tabi awọn ibeere ti o nilo sisọ.

Awọn olumulo ti o forukọsilẹ nikan le kopa ninu iwadi naa. wọle, Jowo.

Njẹ a le kọ diẹ sii nipa eyi?

  • Oh daju

  • Rara o se

12 olumulo dibo. 4 olumulo abstained.

orisun: www.habr.com

Fi ọrọìwòye kun