Stubbing er aðferð í hugbúnaðarþróun sem er notuð til að líkja eftir hegðun í kerfi með því að skipta tilteknum hlutum út fyrir „stubba“, einfaldar, tímabundnar útgáfur af raunverulegu hlutunum. Þetta gerir forriturum kleift að prófa og þróa hugbúnaðareiningar einangraðar frá restinni af kerfinu, sem getur verið sérstaklega gagnlegt á fyrstu stigum þróunar eða þegar hæði eru ekki enn tiltæk. Stubbing er oft notað í einingaprófum, þar sem það hjálpar til við að staðfesta að einstakar einingar virki rétt án þess að ytri þættir hafi áhrif á þær.
Með því að nota stubba geta forritarar einbeitt sér að því að prófa tiltekna virkni og rökfræði og um leið komist hjá flækjustigi og hugsanlegum villum annarra hluta kerfisins. Þetta gerir stubbing að öflugu verkfæri sem stuðlar að hraðari og skilvirkari prófunum og þróun.
Stubbing er aðferð í hugbúnaðarþróun sem er notuð til að skipta falli eða aðferð út fyrir einfaldaða útgáfu sem skilar fyrirfram ákveðnum gildum. Þetta er sérstaklega gagnlegt í prófunarumhverfum þar sem einangra þarf tiltekna hluta kóðans og prófa þá án þess að vera háður ytri kerfum eða flókinni rökfræði. Með því að nota stubba geta forritarar líkt eftir ólíkum sviðsmyndum og athugað hvort forritið bregðist rétt við ólíkar aðstæður, sem bætir bæði prófunarþekju og áreiðanleika.
Meira um Stubbing
Stubbing er ómissandi aðferð í hugbúnaðarþróun sem er notuð til að líkja eftir hegðun hluta eða eininga sem hafa ekki enn verið útfærðar eða erfitt er að prófa beint. Aðferðin er einkum gagnleg í prófunarumhverfum þar sem einangra þarf tiltekna hluta forrits og prófa þá án þess að vera háður ytri kerfum eða flóknum hæðum.
Tæknilega felur stubbing í sér að skipta falli eða einingu út fyrir „stubb“, einfalda útgáfu sem skilar fyrirfram skilgreindum gildum eða hegðun. Þetta gerir forriturum kleift að einbeita sér að því að prófa þá rökfræði sem þeir vinna að án þess að bíða eftir að allir hlutar kerfisins séu fullþróaðir eða tiltækir. Stubbar geta verið jafneinfaldir og fall sem skilar föstu gildi, eða viðameiri og líkt eftir ólíkum sviðsmyndum og villuástandi.
Nota má stubbing í nokkrum ólíkum samhengjum, sem hvert um sig styður ólíkar tegundir prófunarsviðsmynda:
Einingapróf: Hér eru stubbar notaðir til að einangra eininguna sem verið er að prófa frá hæðum hennar. Til dæmis getur stubbur komið í stað gagnagrunnstengingar, svo að prófið geti einbeitt sér að viðskiptarökfræðinni án þess að vera háð raunverulegum gagnagrunni.
Samþættingarpróf: Í þessu samhengi geta stubbar líkt eftir samskiptum við ytri kerfi sem eru ekki enn tiltæk eða eru óáreiðanleg. Þetta gerir mögulegt að prófa hvernig ólíkar einingar vinna saman án þess að vera háður ytri þáttum.
Kerfispróf: Nota má stubba til að líkja eftir heilum kerfishlutum sem hafa ekki enn verið þróaðir, sem gerir mögulegt að prófa heildarvirkni kerfisins snemma í þróuninni. Afköst sem eru mæld gegn stubbum eru þó ekki lýsandi fyrir raunverulega kerfið.
Einn mesti kosturinn við stubbing er geta þess til að flýta þróunar- og prófunarferlinu. Með því að fjarlægja hæði geta forritarar unnið samhliða að ólíkum hlutum verkefnis, sem dregur úr flöskuhálsum og eykur afköst. Auk þess getur stubbing hjálpað til við að bera kennsl á villur og vandamál snemma í þróunarferlinu, sem getur leitt til traustari hugbúnaðar með færri göllum.
Stubbing er einnig mikilvæg aðferð til að tryggja áreiðanleika prófa. Með því að stýra inntaki og úttaki sem notað er í prófinu geta forritarar gert prófið endurtakanlegt og óháð ytri þáttum á borð við netvillur eða breytingar á ytri kerfum.
Í reynd er stubbing orðið stöðluð prófunaraðferð sem gerir mögulegt að þróa og prófa forrit hraðar og skilvirkar. Það er notað á öllum stigum hugbúnaðarþróunar, allt frá fyrstu frumgerðasmíð til lokastaðfestingar kerfisins, og er rótgróinn hluti af nútímaaðferðum í hugbúnaðarþróun á borð við agile og DevOps.
Í stuttu máli er stubbing aðferð sem sameinar einfaldleika, sveigjanleika og skilvirkni í lausn sem gerir hugbúnaðarþróun og prófanir liprari og áreiðanlegri. Geta þess til að líkja eftir flóknum hæðum og sviðsmyndum gerir það að mikilvægu verkfæri fyrir hugbúnaðarforritara, þar sem hröð og nákvæm próf eru nauðsynleg til að afhenda gæðahugbúnað.
Algengar spurningar um Stubbing
Hvað er stubbing og hvernig er það frábrugðið mocking?
Stubbing er aðferð í hugbúnaðarprófunum þar sem hluta forrits er skipt út fyrir einfalda útfærslu sem skilar fyrirfram ákveðnum gildum. Þetta er oft notað til að einangra þann hluta kóðans sem verið er að prófa frá ytri hæðum eða flóknum kerfum sem ekki er þörf á í viðkomandi prófi. Stubbar eru yfirleitt mjög einfaldir og skila tilbúnum svörum, annaðhvort föstu gildi eða gildi sem er valið út frá nokkrum fyrirfram skilgreindum inntökum, án nokkurrar raunverulegrar rökfræði.
Mocking er hins vegar þróaðra form test double, þar sem hluta forritsins er skipt út fyrir mock sem má stilla til að líkja eftir ólíkum sviðsmyndum og samskiptum. Mocks geta staðfest hvernig þau voru notuð í prófinu, svo sem hvaða aðferðir voru kallaðar og með hvaða færibreytum. Þetta gerir mocking tilvalið til að prófa samskipti milli ólíkra hluta kerfis og athuga hvort þeir eigi rétt samskipti.
Í samanburði við stubbing, sem er kyrrstæðara og einfaldara, býður mocking upp á kvikari og sveigjanlegri nálgun á prófanir, þar sem það gerir mögulegt að athuga og staðfesta samskipti nánar. Á meðan stubbar eru einkum notaðir til að veita kóðanum sem verið er að prófa gögn eru mocks notuð til að prófa hegðun og samskipti, sem gerir þau hentugri í flóknum prófunaraðstæðum. Í reynd nota mörg söfn sömu hlutina í báðum tilgangi.
Hvernig getur stubbing bætt prófunarferlið í appþróun?
Stubbing er aðferð sem getur bætt prófunarferlið í appþróun með því að líkja eftir hlutum forrits sem hafa ekki enn verið þróaðir eða erfitt er að prófa í einangruðu samhengi. Með því að nota stubba geta forritarar einbeitt sér að því að prófa tiltekin föll án þess að vera háðir ytri kerfum eða hlutum sem eru hugsanlega ekki tiltækir eða stöðugir þegar prófað er.
Auk þess getur stubbing hjálpað til við að draga úr flækjustigi prófunarumhverfisins, þar sem það gerir forriturum kleift að skipta flóknum eða ófyrirsjáanlegum hlutum út fyrir einfalda, fyrirsjáanlega stubba. Þetta auðveldar að bera kennsl á villur og leiðrétta þær, þar sem prófin verða markvissari og stýrðari. Stubbing getur einnig aukið prófunarhraða, þar sem stubbar eru oft léttari og fljótlegri í keyrslu en fullu hlutarnir sem þeir koma í stað fyrir.
Í samanburði við aðrar prófunaraðferðir sem krefjast fullrar samþættingar allra hluta kerfisins veitir stubbing sveigjanlegri og skilvirkari nálgun á prófanir, sérstaklega á fyrstu stigum þróunar, þegar margir hlutar kerfisins eru enn í þróun eða breytast oft.
Hvaða verkfærum er mælt með til stubbing í þróun farsíma- og vefforrita?
Stubbing er ómissandi aðferð í þróun farsíma- og vefforrita sem gerir forriturum kleift að líkja eftir hlutum forrits sem eru ekki enn fullgerðir eða tiltækir. Þetta er sérstaklega gagnlegt á prófunarstigum, þar sem einangra þarf tiltekin föll og prófa þau án þess að vera háður því að allt kerfið sé tiltækt.
Eitt þeirra verkfæra sem mest er mælt með til stubbing er WireMock, sveigjanlegur og öflugur HTTP-stubbanetþjónn. WireMock gerir mögulegt að líkja eftir HTTP-byggðum API og hentar vel bæði fyrir farsíma- og vefforrit, þar sem það getur líkt eftir flóknum API-svörum og sviðsmyndum. Það er sérstaklega gagnlegt þegar unnið er með örþjónustuhögun, þar sem hæði geta verið mörg og flókin.
Annað vinsælt verkfæri er Mockoon, notendavænt skjáborðsforrit, einnig fáanlegt sem skipanalínuverkfæri, til að búa til mock-API. Mockoon er hannað til að vera auðvelt í notkun, sem gerir það að góðum kosti fyrir forritara sem vilja fljótlega uppsetningu án þess að skrifa kóða. Það styður einnig háþróaða eiginleika á borð við kvik svör og HTTPS, sem gerir það að fjölhæfu verkfæri í þróunarferlinu.
Í samanburði við hefðbundnar prófunaraðferðir sem krefjast fullrar samþættingar allra hluta kerfisins veitir stubbing skilvirkari og stýrðari prófunarupplifun. Með því að nota verkfæri á borð við WireMock og Mockoon geta forritarar einbeitt sér að því að besta og aflúsa tiltekna hluta forrita sinna, sem skilar sér í traustari og áreiðanlegri lokaafurð. Innan kóðans sjálfs bjóða prófunarsöfn á borð við Mockito, MockK, Sinon.js og Jest einnig upp á föll til að búa til stubba.
Hvernig hefur stubbing áhrif á notendaupplifunina við þróun og prófanir?
Stubbing er aðferð sem er notuð við hugbúnaðarþróun og prófanir til að líkja eftir hegðun hluta eða eininga sem eru ekki enn fullþróaðar eða tiltækar. Aðferðin hefur óbein áhrif á notendaupplifunina með því að gera forriturum kleift að prófa tiltekin föll og samskipti án þess að vera háðir því að allt kerfið sé tiltækt.
Þegar stubbar eru notaðir geta forritarar einangrað einstaka hluta og einbeitt sér að þeim, sem gerir mögulegt að bera kennsl á villur og leiðrétta þær snemma í þróunarferlinu. Þetta skilar sér í stöðugra og áreiðanlegra forriti, þar sem hægt er að taka á hugsanlegum vandamálum áður en þau hafa áhrif á heildarnotendaupplifunina.
Í samanburði við að bíða eftir að allir hlutar kerfisins séu fullþróaðir veitir stubbing sveigjanlegra og skilvirkara prófunarferli. Það gerir hraðari ítranir og endurgjöf mögulegar, sem skiptir sköpum til að afhenda app sem stenst væntingar og þarfir notenda. Með því að nota stubbing geta þróunarteymi unnið að hágæða og hnökralausri notendaupplifun, jafnvel á fyrstu stigum þróunar.
Hvenær ætti að nota stubb í stað raunverulegs hæðis?
Stubbur er gagnlegur þegar raunverulega hæðið er hægt, óstöðugt, dýrt eða er ekki enn til. Þetta getur verið ytra API, greiðsluþjónusta eða gagnagrunnur sem er fyrirhafnarsamt að setja upp í prófunarumhverfi.
Stubbar gera einnig mögulegt að prófa aðstæður sem erfitt er að framkalla með raunverulegum kerfum, svo sem tímamörk, villukóða eða óvenjuleg gögn. Prófin verða hraðari og fyrirsjáanlegri. Gallinn er að stubbur er aðeins eftirlíking, svo hann getur verið frábrugðinn raunverulega kerfinu. Því ætti að bæta prófum sem byggja á stubbum upp með samþættingarprófum gegn raunverulegu hæðunum.
Hvaða áskoranir geta komið upp við notkun stubbing og hvernig má sigrast á þeim?
Þótt stubbing geti verið áhrifarík aðferð til að einangra og prófa tiltekna hluta forrits geta komið upp ýmsar áskoranir sem forritarar þurfa að vera meðvitaðir um.
Ein helsta áskorunin við stubbing er hættan á að búa til próf sem endurspegla ekki raunverulega hegðun raunverulegu hlutanna. Þar sem stubbar eru oft einfaldaðar útgáfur af raunverulegu einingunum getur þá skort flækjustig og blæbrigði endanlegu útfærslunnar. Þetta getur leitt til villandi niðurstaðna, þar sem próf standast en forritið bregst í rekstrarumhverfi.
Til að sigrast á þessari áskorun þurfa stubbarnir að vera eins nálægt raunverulegri hegðun og hægt er. Það má ná fram með því að uppfæra stubbana reglulega eftir því sem raunverulegi kóðagrunnurinn þróast og með því að taka jaðartilvik og villusviðsmyndir með í prófunum. Auk þess geta samþættingarpróf sem prófa raunverulegu hlutana saman bætt upp stubbuðu prófin til að athuga hvort allt kerfið virki rétt.
Önnur áskorun er viðhald stubba, sérstaklega í stórum verkefnum með mörg hæði. Þegar kóðagrunnurinn breytist þarf einnig að uppfæra stubbana svo þeir haldist viðeigandi og nákvæmir. Þetta getur verið tímafrekt og krefst aga af hálfu þróunarteymisins.
Til að takast á við viðhaldsáskorunina getur sjálfvirkni verið gagnleg. Verkfæri til samningsprófana á borð við Pact geta athugað hvort stubbuðu svörin samsvari enn því sem raunverulega þjónustan skilar, og búa má stubba til út frá API-forskriftum á borð við OpenAPI, svo að þeir fylgi breytingum á skilunum. Auk þess hjálpar vel skilgreind prófunarstefna sem nær bæði til einingaprófa og samþættingarprófa til við að halda stubbunum verðmætum hluta af prófunarferlinu.
Í samanburði við aðrar prófunaraðferðir sem krefjast þess að allir hlutar séu að fullu útfærðir getur stubbing verið hraðari og skilvirkari leið til að prófa einstakar einingar. Til að hámarka ávinninginn af stubbing skiptir þó sköpum að vera meðvitaður um hugsanlegar gildrur og vinna markvisst að því að sigrast á þeim með vandaðri skipulagningu og viðhaldi.
Stubbing fyrir byrjendur
Stubbing er snjöll aðferð sem er notuð í hugbúnaðarþróun til að auðvelda prófanir. Ímyndaðu þér að smíða app og vilja prófa hvernig það virkar þegar það sækir gögn frá netþjóni. En netþjónninn er ekki tilbúinn enn, eða það er óhentugt að bíða eftir honum í hvert skipti sem próf keyrir. Hér kemur stubbing inn í myndina. Búinn er til „stubbur“, einfaldur, tímabundinn staðgengill fyrir netþjóninn. Þessi stubbur getur veitt þau gögn sem þörf er á án þess að bíða eftir raunverulega netþjóninum. Þetta er eins og að hafa staðgengil fyrir leikara sem hjálpar til við að æfa atriði þar til raunverulegi leikarinn er tilbúinn. Þannig má prófa appið fljótt og auðveldlega, án þess að vera háður því að allt annað sé til staðar.