Pros uye Cons yeYedzo Inotungamirwa Kubudirira

Ndezvipi zvakanaka nezvakaipa zveTest Driven Development (TDD)?

Kwayedza Inotungamirwa Kubudirira ndeye software yekuvandudza nzira iyo iwe yaunonyora uye mhanya seti yemiedzo usati wanyora kodhi.

Pfungwa ndeyekuti bvunzo idzi dzinotadza kutanga wobva watanga kunyora kodhi yakaringana kuyedza kuti miedzo yose ipfuure. Kuve nekupasa kwese bvunzo kunogona kuve chiyero cheyakaitwa nzira (dev-yakaitwa) uye zvakare inowedzera kuvimba muhunhu hwekodhi.

Izvo zvakati, senge chero dzimwe nzira dzekuvandudza pane zvimwe zvakanaka nezvakaipa zvakabatana neTDD. Pano, tinonyora mamwe acho, asi zvisati zvaitika, zvakanak kujekesa mapoinzi akati wandei:

  • Kuita bvunzo dzemayuniti hazvireve kuita TDD. Unogona kuita yekutanga pasina yechipiri. Muchokwadi, iwe unogona kuita TDD pasina zviyero zveyuniti (asi vanhu vazhinji vanoita), mune ino kesi, vanhu vanowirirana kazhinji unit kuyedza pamwe nevamwe zvinonaka zveyedzo. Izvo iwe zvaunoda zvechokwadi ndeye otomatiki kuyedza, chero zvavari.
  • Unogona kuita TDD yechena bhokisi kuyedza, kuyedza kodhi yako. Asi iwe unogona zvakare kuita TDD yekuyedza bhokisi dema, chimwe chinhu chinowanzo kunzi Behaeve Inotungamirwa neBudiriro.

Pachivanhu, maitiro acho aive ekunyora akawanda emamojuru uyezve kunyora zviyero zveyuniti kuti uone kodhi yacho. Iyi ndiyo kodhi-yekutanga, bvunzo yekupedzisira nzira. Asi kana mushure mekukodha pasina nguva kana kuti unosundirwa kuti usunungurwe, saka iko kuita kwese kuyedzwa kwechikwata kunosvetwa, kana kunyatsoitwa zvichidzoka kumashure.

Zvino, kune zvakanakira nezvayakaipira zveTDD:



Zvakanakira zveBvunzo Kutya Inosimudzira

  • Nekuti iwe urikunyora bvunzo diki panguva, zvinomanikidza kodhi yako kuti iwedzere modular (zvikasadaro vangave vakaoma kuyedza vachipesana). TDD inokubatsira iwe kudzidza, kunzwisisa, uye kuisa mukati mamaki akakosha eakanaka modular dhizaini.
  • TDD inomanikidzawo kuvaka kwakanaka. Kuti uite kodhi yako yuniti-kuyedzwa, inofanirwa kuve yakanyatsogadziriswa. Kunyora bvunzo kutanga, dzakasiyana siyana dhizaini yekugadzira inowanzo kuoneka pakutanga.
  • Inonyora kodhi yako zvirinani kupfuura zvinyorwa (hazvibude zvechinyakare sezvo uchimhanyisa nguva dzese).
  • Inoita kodhi iri nyore kuchengetedza uye kugadzirisa. TDD inobatsira kupa kujekesa panguva yekumisikidza maitiro uye inopa yekuchengetedza-mambure kana iwe uchida kugadzirisazve kodhi iwe yauchangobva kunyora.
  • Inoita kubatana kuve nyore uye kunoshanda, nhengo dzechikwata dzinogona kugadzirisa imwe neimwe kodhi ine chivimbo nekuti bvunzo dzinozovazivisa kana shanduko dzichiita kuti kodhi iite nenzira dzisingatarisirwe.
  • Nekuti TDD inomanikidza iwe kuti unyore bvunzo dzeyuniti usati wanyora kuitisa kodhi, kudzokorora kodhi kunova nyore uye nekukurumidza. Refactoring kodhi yakanyorwa makore maviri apfuura ndeye zvakaoma . Kana iyo kodhi ikatsigirwa neyakagadzirirwa yakanaka mayuniti, maitiro acho anoitwa kuti ave nyore kwazvo.
  • Inobatsira kudzivirira hurema - zvakanaka, zvirinani zvinokubatsira iwe kuwana dhizaini kana zvinoda zvinhu pakutanga chaipo. TDD inopa yambiro yekutanga kugadzira matambudziko (kana iwo ari nyore kugadzirisa).
  • Inobatsira programmers vanonyatsonzwisisa kodhi yavo.
  • Inogadzira otomatiki kudzokorodza bvunzo suite, kunyanya yemahara. i.e. haufanire kupedza nguva mushure mezvo uchinyora zviyero zveyuniti kuti uyedze kodhi yekushandisa.
  • Iyo inokurudzira nhanho diki uye inovandudza dhizaini nekuti inoita kuti iwe uteme zvisina kukodzera kutsamira kuita nyore setup.
  • Izvo zvinobatsira kujekesa zvinodiwa nekuti iwe unofanirwa kufungisisa zvine mutsindo izvo zvinongedzo zvaunofanirwa kufudza uye nezvinobuda zvaunotarisira.
  • Yuniti bvunzo dzakakosha zvakanyanya sedziviriro mambure kana kodhi ichida kuchinjirwa kuti iwedzere zvimwe zvitsva kana kugadzirisa chiripo bug. Sezvo yekuchengetedza inoverengera pakati pe60 ne90% yeiyo software hupenyu hwekutenderera, zvakaoma kupfuuridza kuti nguva yakatorwa kumberi kugadzira yakasarudzika seti yeyuniti bvunzo inogona kuzvibhadharira yega nekudzokorora pamusoro pehupenyu hweprojekti.
  • Kuedzwa uchinyora zvakare kunomanikidza iwe kuyedza kuita kuti nzvimbo dzako dzakachena dziite zvakaringana kuyedzwa. Dzimwe nguva zvinonetsa kuona mukana weizvi kudzamara uchishandira pane kodhi yekodhi kwaisina kuitwa, uye nzira chete yekurovedza muviri uye kutarisa pachikamu chakapihwa chekodhi ndeyekumhanyisa iyo sisitimu yese uye nekumisikidza poindi .
  • 'Mapenzi' zvikanganiso zvinobatwa pakarepo. Izvo zvinobatsira vanogadzira kuti vawane zvikanganiso izvo zvinogona kutambisa nguva yemunhu wese kana vakawanikwa muQA.

Cons of Test Inotungamirwa Kubudirira

  • Iyo suite suite pachayo inofanirwa kuchengetedzwa; bvunzo dzinogona kunge dzisinganyatso kufunga (kureva kuti kuvimba nemamiriro ekunze).
  • Bvunzo dzingave dzakaoma kunyora, esp. pamusoro peyuniti yekuyera chikamu.
  • Pakutanga, zvinodzora kukura; yeanokurumidza iterative enzvimbo enzvimbo yekumisikidza kodhi inogona kunge isiri kugadzirira kwenguva yakati nekuda kwekushandisa nguva kunyora bvunzo kutanga. (Asi mukufamba kwenguva, zvinomhanyisa kusimudzira)
  • Kunge chero chirongwa, pane musiyano mukuru pakati pekuzviita nekuzviita nemazvo. Kunyora yakanaka yuniti bvunzo fomu yehunyanzvi. Ichi chikamu cheTDD hachiwanzo kukurukurwa, maneja mazhinji anowanzo tarisa pane metric senge yekuvhara kodhi; iwo mametric haakuudze chinhu nezve iyo mhando zveyuniti bvunzo.
  • Kuedzwa kwechimwe chinhu chinhu chinofanira kutenga timu yese.
  • Dambudziko rekudzidza. Zvinogona kutyisidzira uye hazvisi nyore kuti chero munhu adzidze pakutanga, kunyanya kuyedza kuzvidzidza wega. Zvinoda kuzvipira kwakawanda (kuranga, kuita, kushingirira) uye unofanirwa kuve nechinangwa chaunoda kuramba uchiita zvirinani pazviri.
  • Zvakaoma kunyorera kune iripo nhaka kodhi.
  • Zvakawanda zvefungidziro zvisirizvo zvinoita kuti mapurogiramu vasaidzidze.
  • Zvakaoma kutanga kushanda nenzira iyi. Kunyanya kana iwe uine akawanda makore mazhinji ekushanda neimwe nzira.
  • Iwe dzimwe nguva unofanirwa kuseka zvinhu zvakawanda kana zvinhu zvinonetsa kuseka. Inobatsira mukufamba kwenguva, asi zvinorwadza izvozvi.
  • Iwe unofanirwa kugara uchichengeta dzimba. Nekuti kubhuka kwakawanda uye kwakawanda bvunzo kunoita kuti yako iwedzere kureba uye nekureba, zvinodikanwa kunatsiridza iyo miedzo kuti iite kuti iite kumhanya nekukurumidza kana kuti kubvisa bvunzo dzakawandisa.
  • Kufanana nechero nzira yakanaka, kuyedzwa kweyuniti kunogona kuitirwa kwakanyanya. Mabhenefiti makuru anouya kubva mukuyedza zvine mwero, nemiyedzo ichigara ichishandisa kodhi nenzira yakapusa inogoneka. Kana iwe ukazviwana iwe uchiwanzo gadziridza bvunzo dzako, pane mukana wakanaka wekuti uri kushandisa yakawandisa nguva pane iyo bvunzo suite.
  • Zvinogona kuve nyore kutsauswa ne 'fluff' kana maficha maficha muchikamu chekuyedza yeyuniti. Tinofanira kurangarira kuti bvunzo dzakareruka ndidzo dzinokurumidza kugadzira uye dziri nyore kubata.
  • Kunyangwe zvichinyatso kudikanwa, kugadzira bvunzo dzekukundikana kunogona kunetesa, asi kunopa mubayiro wakakura pakupedzisira.
  • Yekutanga nhanho kugadzirisa zvakare kunoda kudzokorodza bvunzo makirasi futi.
  • Kunze kwekunge munhu wese ari muchikwata anyatso chengetedza bvunzo, hurongwa hwese hunogona kukurumidza kudzikisira.