Tástálacha aonaid i DBMS - conas a dhéanaimid é i Sportmaster, cuid a dó

An chéad chuid - anseo.

Tástálacha aonaid i DBMS - conas a dhéanaimid é i Sportmaster, cuid a dó

Samhlaigh cás. Caithfidh tú feidhmiúlacht nua a fhorbairt. Tá taithí agat ó do réamhtheachtaithe. Ag glacadh leis nach bhfuil aon oibleagáidí morálta ort, cad a dhéanfá?

Go minic, déantar dearmad ar na seanfhorbairtí go léir agus tosaíonn gach rud arís. Ní maith le haon duine dul isteach i gcód duine eile, agus má tá am agat, cén fáth nach dtosóidh tú ar do chóras féin a chruthú? Is cur chuige tipiciúil é seo, agus ar go leor bealaí tá sé ceart. Ach inár dtionscadal, d'fheidhmíomar go difriúil. Bhunaíomar an córas tástála uathoibrithe amach anseo ar na forbairtí i dtástálacha aonaid ar utPLSQL ónár réamhtheachtaithe, agus ansin chuaigh muid ag obair i dtreonna comhthreomhara éagsúla.

  1. Seanthástálacha aonaid a athchóiriú. Ciallaíonn aisghabháil tástálacha a oiriúnú do staid reatha an chórais dílseachta agus tástálacha a oiriúnú do chaighdeáin utPLSQL.
  2. An fhadhb a réiteach le tuiscint, agus cad go díreach, cad iad na modhanna agus na próisis, ní mór dúinn clúdaithe le autotests. Ní mór duit an fhaisnéis seo a choinneáil i do cheann, nó conclúidí a dhéanamh bunaithe go díreach ar chód na n-uaththástálacha. Dá bhrí sin, shocraigh muid catalóg a chruthú. Sannamar cód cuimhneach uathúil do gach uathtástáil, chruthaíomar cur síos, agus shocraigh muid na socruithe (mar shampla, faoi na coinníollacha ar cheart é a rith, nó cad ba cheart a tharlóidh má theipeann ar an rith tástála). Go bunúsach, líonamar isteach na meiteashonraí faoi na uathtástálacha agus chuireamar na meiteashonraí seo i dtáblaí caighdeánacha scéimre utPLSQL.
  3. Sainmhíniú ar straitéis leathnaithe, i.e. roghnú feidhmiúlachta atá faoi réir fíoraithe ag uaththástálacha. Shocraigh muid aird a thabhairt ar thrí rud: feabhsuithe nua ar an gcóras, teagmhais ó tháirgeadh, agus príomhphróisis an chórais. Mar sin, déanaimid forbairt i gcomhthráth leis an scaoileadh, ag cinntiú a cháilíocht níos airde, ag leathnú raon feidhme an aischéimnithe ag an am céanna agus ag cinntiú iontaofacht an chórais in áiteanna ríthábhachtacha. Ba é an chéad bhac dá leithéid ná an próiseas chun lascainí agus bónais a dháileadh le seic.
  4. Ar ndóigh, thosaigh muid ag forbairt autotests nua. Ba é ceann de na chéad tascanna scaoilte ná feidhmíocht samplaí réamhshainithe den chóras dílseachta a mheas. Tá bloc fiosruithe sql docht seasta ag ár dtionscadal a roghnaíonn cliaint de réir coinníollacha. Mar shampla, faigh liosta de na custaiméirí go léir a raibh a gceannach deireanach i gcathair ar leith, nó liosta de na custaiméirí a bhfuil a meánmhéid ceannaigh os cionn luach áirithe. Tar éis dúinn scrúduithe scríofa a dhéanamh, rinneamar seiceáil ar shamplaí réamhshainithe, paraiméadair sheasta feidhmíochta tagarmhairc, agus chomh maith leis sin fuaireamar tástáil ualaigh.
  5. Ba cheart go mbeadh sé áisiúil oibriú le huaththástálacha. Is iad an dá ghníomh is coitianta ná uathtástálacha a rith agus sonraí tástála a ghiniúint. Seo mar a bhí dhá mhodúl cúnta le feiceáil inár gcóras: an modúl seolta agus an modúl giniúna sonraí.

    Léirítear an tosaitheoir mar nós imeachta cineálach amháin le paraiméadar téacs ionchuir amháin. Mar pharaiméadar, is féidir leat cód cuimhneacháin uathtest, ainm pacáiste, ainm tástála, socrú uathtástála, nó eochairfhocal forchoimeádta a rith. Roghnaíonn agus reáchtálann an nós imeachta gach uathtástáil a chomhlíonann na coinníollacha.

    Cuirtear an modúl giniúna sonraí i láthair mar phacáiste, ina bhfuil nós imeachta speisialta cruthaithe do gach réad den chóras atá á thástáil (tábla sa bhunachar sonraí) a chuireann sonraí isteach ann. Sa nós imeachta seo, líontar na luachanna réamhshocraithe go dtí an t-uasmhéid, rud a chinntíonn cruthú rudaí go litriúil ag cliceáil finger. Agus ar mhaithe le héascaíocht, cruthaíodh teimpléid do na sonraí ginte. Mar shampla, cliant d'aois áirithe a chruthú le fón tástála agus ceannach críochnaithe.

  6. Ba cheart go n-oibreodh agus go n-oibreodh Uaththástálacha laistigh de thréimhse réasúnta ama do do chóras. Mar sin, eagraíodh seoladh oíche laethúil, bunaithe ar thorthaí a ndéantar tuairisc ar na torthaí a ghiniúint agus a sheoladh chuig an bhfoireann forbartha ar fad tríd an bpost corparáideach. Tar éis sean-uaththástálacha a athchóiriú agus cinn nua a chruthú, ba é 30 nóiméad an t-am iomlán reatha. D'oirfeadh feidhmíocht den sórt sin do gach duine, ó tharla an seoladh le linn uaireanta lasmuigh.

    Ach bhí orainn oibriú ar luas na hoibre a bharrfheabhsú. Déantar an córas dílseachta táirgeachta a nuashonrú ar an oíche. Mar chuid de cheann de na heisiúintí, bhí orainn athruithe a dhéanamh go práinneach istoíche. Níor chuir feithimh leath uair an chloig le torthaí na n-uaththástálacha ag trí cinn ar maidin an duine atá freagrach as an scaoileadh sásta (beannacht go géar do Alexei Vasyukov!), Agus an mhaidin dár gcionn dúradh go leor focail te i dtreo ár gcóras. Ach mar thoradh air sin, socraíodh caighdeán 5 nóiméad don obair.

    Chun feidhmíocht a bhrostú, d'úsáideamar dhá mhodh: thosaigh muid ag rith autotests i dtrí snáithe comhthreomhara, ós rud é go bhfuil sé seo an-áisiúil mar gheall ar ailtireacht ár gcóras dílseachta. Agus thréigeamar an cur chuige nuair nach gcruthaíonn an t-autotest sonraí tástála dó féin, ach déanann sé iarracht rud éigin oiriúnach a aimsiú sa chóras. Tar éis athruithe a dhéanamh, laghdaíodh an t-am oibriúcháin iomlán go 3-4 nóiméad.

  7. Ba cheart go bhféadfaí tionscadal ina bhfuil uathtástálacha a imscaradh ar sheastáin éagsúla. Ag tús an turais, rinneadh iarrachtaí ár gcomhaid bhaisc féin a scríobh, ach tháinig sé chun solais go bhfuil suiteáil uathoibrithe féinscríofa ina uafás iomlán, agus chuamar i dtreo réitigh thionsclaíocha. Toisc go bhfuil go leor cód díreach ag an tionscadal (ar an gcéad dul síos, stóráilimid cód na n-uaththástálacha) agus fíorbheagán sonraí (is iad na príomhshonraí meiteashonraí faoi autotests), d'éirigh sé amach a bheith an-éasca a chomhtháthú isteach sa Tionscadal Liquibase.

    Is leabharlann neamhspleách bunachar sonraí foinse oscailte í chun athruithe scéimre bunachar sonraí a rianú, a bhainistiú agus a chur i bhfeidhm. Bainistithe trí líne ordaithe nó creataí cosúil le Apache Maven. Tá prionsabal oibríochta Liquibase simplí go leor. Tá tionscadal eagraithe againn ar bhealach áirithe, ina bhfuil athruithe nó scripteanna ar gá iad a rolladh ar an spriocfhreastalaí, agus comhaid rialaithe a chinneann cén t-ord agus cad iad na paraiméadair ar cheart na hathruithe seo a shuiteáil.

    Ag leibhéal an DBMS, cruthaítear tábla speisialta ina stórálann Liquibase an logáil aisrollta. Tá hash ríofa ag gach athrú a chuirtear i gcomparáid gach uair idir an tionscadal agus an stát sa bhunachar sonraí. A bhuíochas le Liquibase, is féidir linn athruithe ar ár gcóras a rolladh amach go héasca chuig aon chiorcad. Reáchtáiltear uathtástálacha anois ar chiorcaid tástála agus scaoilte, chomh maith le ar choimeádáin (ciorcaid fhorbróra pearsanta).

Tástálacha aonaid i DBMS - conas a dhéanaimid é i Sportmaster, cuid a dó

Mar sin, déanaimis labhairt faoi thorthaí ár gcóras tástála aonaid a chur i bhfeidhm.

  1. Ar ndóigh, ar an gcéad dul síos, táimid cinnte gur thosaigh muid ag forbairt bogearraí níos fearr. Reáchtálann uathtástálacha gach lá agus aimsíonn siad mórán fabhtanna gach scaoileadh. Thairis sin, ní bhaineann cuid de na hearráidí seo ach go hindíreach leis an bhfeidhmiúlacht a theastaigh uainn i ndáiríre a athrú. Tá amhras láidir ann gur thángthas ar na hearráidí seo trí thástáil láimhe.
  2. Fuair ​​an fhoireann muinín go n-oibríonn feidhmiúlacht shonrach i gceart... Ar an gcéad dul síos, baineann sé seo lenár bpróisis ríthábhachtacha. Mar shampla, le sé mhí anuas, ní raibh aon fadhbanna againn le dáileadh lascainí agus bónais le seic, in ainneoin na n-athruithe a rinneadh ar gach scaoileadh, cé gur tharla earráidí i dtréimhsí roimhe seo le roinnt minicíochta.
  3. D’éirigh linn an líon atriallta tástála a laghdú. De bharr go scríobhtar uathtástálacha le haghaidh feidhmiúlacht nua, faigheann anailísithe agus tástálaithe páirtaimseartha cód de cháilíocht níos airde, mar gheall ar tá sé fíoraithe cheana féin.
  4. Úsáideann forbróirí cuid de na forbairtí ar thástáil uathoibrithe. Mar shampla, cruthaítear sonraí tástála ar choimeádáin ag baint úsáide as an modúl giniúna réad.
  5. Tá sé tábhachtach go bhfuil “glacadh” ag forbróirí leis an gcóras tástála uathoibrithe forbartha againn. Tá tuiscint ann go bhfuil sé seo tábhachtach agus úsáideach. Agus ó mo thaithí féin, is féidir liom a rá go bhfuil sé seo i bhfad ón gcás. Ní mór autotests a scríobh, ní mór iad a chothabháil agus a fhorbairt, anailís a dhéanamh ar na torthaí, agus go minic ní fiú na costais ama seo. Tá sé i bhfad níos éasca dul chuig táirgeadh agus déileáil le fadhbanna ann. Inár dtír, déanann na forbróirí dul i líne agus iarrann siad a bhfeidhmiúlacht a chlúdach le autotests.

Cad atá ar Aghaidh

Tástálacha aonaid i DBMS - conas a dhéanaimid é i Sportmaster, cuid a dó

Déanaimis labhairt faoi phleananna forbartha an tionscadail tástála uathoibrithe.

Ar ndóigh, chomh fada agus a bhíonn an córas dílseachta Sportmaster beo agus go leanann sé ag forbairt, is féidir autotests a fhorbairt freisin beagnach gan deireadh. Dá bhrí sin, is é an príomh-threo forbartha ná leathnú an limistéir chlúdaigh.

De réir mar a mhéadaíonn líon na n-uaththástálacha, méadóidh am iomlán a gcuid oibre go seasta, agus beidh orainn filleadh ar cheist na feidhmíochta arís. Is dócha, is é an réiteach a bheidh ann ná líon na snáitheanna comhthreomhara a mhéadú.

Ach is bealaí soiléire forbartha iad seo. Má labhairt linn faoi rud éigin níos neamhfhánach, cuirimid béim ar na nithe seo a leanas:

  1. Anois déantar uathtástálacha a bhainistiú ag leibhéal an DBMS, i.e. tá eolas ar PL/SQL ag teastáil chun obair rathúil a dhéanamh. Más gá, is féidir le painéal admin de chineál éigin a úsáideann Jenkins nó rud éigin cosúil leis an mbainistíocht córais (mar shampla, meiteashonraí a sheoladh nó a chruthú).
  2. Is breá le gach duine táscairí cainníochtúla agus cáilíochtúla. Le haghaidh tástála uathoibríoch, is éard atá i dtáscaire uilíoch den sórt sin ná Clúdach Cód nó méadrach um chlúdach cóid. Ag baint úsáide as an táscaire seo, is féidir linn a chinneadh cén céatadán de chód ár gcóras atá faoi thástáil atá clúdaithe ag uathtástálacha. Ag tosú le leagan 12.2, soláthraíonn Oracle an cumas an méadrach seo a ríomh agus molann sé úsáid a bhaint as an bpacáiste caighdeánach DBMS_PLSQL_CODE_COVERAGE.

    Tá ár gcóras uathtástála díreach os cionn bliain d’aois agus b’fhéidir go mbeadh sé in am clúdach a mheas. I mo thionscadal deireanach (tionscadal nach bhfuil ag Sportmaster), tharla sé seo. Bliain tar éis oibriú ar uaththástálacha, leag an bhainistíocht an tasc chun measúnú a dhéanamh ar an gcéatadán den chód a chlúdaigh muid. Le clúdach níos mó ná 1%, bheadh ​​an bhainistíocht sásta. Táimid, na forbróirí, ag súil le toradh de thart ar 10%. Scrúdaigh muid clúdach cód, thomhais muid é, fuair muid 20%. Chun ceiliúradh a dhéanamh, chuamar don ghradam, ach is scéal go hiomlán difriúil é an chaoi ar éirigh linn é agus cá ndeachaigh muid níos déanaí.

  3. Is féidir le Autotests seirbhísí gréasáin nochta a thástáil. Ligeann Oracle duit é seo a dhéanamh, agus ní bheidh roinnt fadhbanna againn a thuilleadh.
  4. Agus, ar ndóigh, is féidir ár gcóras tástála uathoibrithe a chur i bhfeidhm ar thionscadal eile. Tá an réiteach a fuair muid uilíoch agus ní gá ach Oracle a úsáid. Chuala mé go bhfuil spéis i dtástáil uathoibrithe ar thionscadail eile de chuid Sportmaster agus, b’fhéidir, rachaimid chucu.

Torthaí

Déanaimis achoimre arís. Maidir leis an tionscadal córais dílseachta i Sportmaster, d'éirigh linn córas tástála uathoibrithe a chur i bhfeidhm. Is é a bhunús an réiteach utPLSQL ó Stephen Feuerstein. Timpeall utPLSQL tá an cód le haghaidh uathtástálacha agus modúil chúnta féinscríofa: tosaitheoir, modúl giniúna sonraí, agus cinn eile. Reáchtálann autotests go laethúil agus, níos tábhachtaí fós, oibríonn siad agus baineann siad leas as. Táimid cinnte go bhfuil tús curtha againn le bogearraí ar chaighdeán níos airde a scaoileadh. Ag an am céanna, tá an réiteach a eascraíonn as uilíoch agus is féidir é a chur i bhfeidhm go saor ar aon tionscadal ina bhfuil gá le tástáil uathoibrithe a eagrú ar an Oracle DBMS.

PS Ní raibh an t-alt seo an-sonrach: tá a lán téacs ann agus beagnach aon samplaí teicniúla. Má tá an t-ábhar suimiúil ar fud an domhain, ansin táimid réidh chun leanúint ar aghaidh leis agus ar ais le leanúint ar aghaidh, áit a inseoimid duit cad atá athraithe le sé mhí anuas agus samplaí cód a thabhairt.

Scríobh tuairimí má tá pointí ann ar chóir béim a chur orthu amach anseo, nó ceisteanna a dteastaíonn nochtadh uathu.

Ní féidir ach le húsáideoirí cláraithe páirt a ghlacadh sa suirbhé. Sínigh isteach, le do thoil.

An scríobhfaimid níos mó faoi seo?

  • Sea ar ndóigh

  • Níl sé uaim go raibh maith agat

Vótáil 12 úsáideoir. Staon 4 úsáideoir.

Foinse: will.com

Add a comment