前言:想要寫(xiě)出一篇引人入勝的文章?我們特意為您整理了軟件開(kāi)發(fā)中測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的運(yùn)用范文,希望能給你帶來(lái)靈感和參考,敬請(qǐng)閱讀。
摘要:在極限編程中極具特色的一個(gè)原則就是測(cè)試驅(qū)動(dòng)開(kāi)發(fā),作為一種新的思潮正在被越來(lái)越多的人所接受,它在軟件開(kāi)發(fā)過(guò)程中所表現(xiàn)出來(lái)的積極作用是不言而喻的。測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的方法能夠在保證功能測(cè)試的前提下,也能夠成為設(shè)計(jì)的一部分。整個(gè)開(kāi)發(fā)過(guò)程的驅(qū)動(dòng)力就是以測(cè)試驅(qū)動(dòng)開(kāi)發(fā)為基礎(chǔ),能夠在很大程度上提高代碼質(zhì)量,改善開(kāi)發(fā)設(shè)計(jì)過(guò)程,從而在根本上提高了產(chǎn)品的質(zhì)量。
關(guān)鍵詞:測(cè)試驅(qū)動(dòng)開(kāi)發(fā);軟件開(kāi)發(fā);積極作用
隨著時(shí)代的發(fā)展,計(jì)算機(jī)軟件的發(fā)展變得尤為迅速,與之對(duì)應(yīng)的問(wèn)題是用戶(hù)對(duì)軟件的質(zhì)量要求也越來(lái)越高。為了能夠及時(shí)交付給用戶(hù)一個(gè)滿意的軟件,軟件開(kāi)發(fā)人員往往需要投入到高效的軟件開(kāi)發(fā)過(guò)程。然而現(xiàn)實(shí)情況則是傳統(tǒng)的軟件工程方法已經(jīng)變得不再適用于當(dāng)今的軟件開(kāi)發(fā),而最近剛剛興起的一些軟件開(kāi)發(fā)過(guò)程的技術(shù)正好值得我們借鑒和學(xué)習(xí)。其中就包括我們今天要討論的測(cè)試驅(qū)動(dòng)開(kāi)發(fā),它作為一個(gè)最基礎(chǔ)的技術(shù)能夠提供給我們一些相對(duì)高效的軟件過(guò)程開(kāi)發(fā)方法。
1測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的相關(guān)環(huán)節(jié)
1.1原理和過(guò)程測(cè)試
驅(qū)動(dòng)開(kāi)發(fā)的原理就是應(yīng)該在明確要開(kāi)發(fā)某個(gè)功能后,進(jìn)行構(gòu)思并決定如何設(shè)計(jì)測(cè)試代碼的過(guò)程,從而根據(jù)用戶(hù)的需求編寫(xiě)出功能代碼滿足這些測(cè)試用例。接下來(lái)可以循環(huán)的進(jìn)行添加其他功能,最后能夠完成全部功能的開(kāi)發(fā)。其中的基本過(guò)程包括:明確當(dāng)前需要完成的功能;需要在保證速度的前提下編寫(xiě)測(cè)試用例;編寫(xiě)對(duì)應(yīng)的功能代碼;保證測(cè)試能夠通過(guò)的方法就是重構(gòu)代碼。我們通常在運(yùn)用了測(cè)試框架的前提下,進(jìn)行組織所有的測(cè)試用例,從而保證了整個(gè)測(cè)試過(guò)程的高效和便捷。
1.2原則要求
為了保證能分清需要檢測(cè)的各類(lèi)代碼,不同代碼的的測(cè)試之間應(yīng)該相互隔離,為了避免去考慮許多的無(wú)關(guān)細(xì)節(jié)而增加復(fù)雜度,所以我們?cè)谙嚓P(guān)代碼的測(cè)試中一般只考慮該代碼的測(cè)試,而不去考慮它的現(xiàn)實(shí)細(xì)節(jié)。在實(shí)際情況中,經(jīng)常出現(xiàn)的功能點(diǎn)需要我們?nèi)y(cè)試,在任意階段中如果我們想要添加功能需求問(wèn)題時(shí),我們能夠把相關(guān)功能點(diǎn)添加到測(cè)試列表的操作方法從而避免不必要的麻煩,從而不斷地完成對(duì)應(yīng)的測(cè)試實(shí)例、重構(gòu)和功能代碼。這是為了避免疏漏,同時(shí)也是為了避免干擾當(dāng)前正在進(jìn)行的工作。在完成某個(gè)功能、某個(gè)類(lèi)別的時(shí)候,首先我們需要編寫(xiě)測(cè)試代碼,考慮具體該如何測(cè)試和使用,接下來(lái)再進(jìn)行設(shè)計(jì)和編碼。在這個(gè)過(guò)程中,我們需要正確編寫(xiě)對(duì)應(yīng)功能代碼判斷用的語(yǔ)句,隨后編寫(xiě)對(duì)應(yīng)的輔助語(yǔ)句。
1.3測(cè)試技術(shù)
如果我們采用傳統(tǒng)的檢測(cè)方式,這無(wú)疑會(huì)在我們的軟件開(kāi)發(fā)中造成開(kāi)發(fā)速度緩慢等缺點(diǎn),而我們需要認(rèn)清的一點(diǎn)就是測(cè)試驅(qū)動(dòng)開(kāi)發(fā)中的測(cè)試并不是作為一種負(fù)擔(dān),而是一種為了幫助我們減輕繁重工作量的有效方法。在針對(duì)如何選擇一個(gè)合適的時(shí)間來(lái)停止編寫(xiě)測(cè)試用例的問(wèn)題上,我們應(yīng)該根據(jù)往常的工作經(jīng)驗(yàn)來(lái)進(jìn)行,例如說(shuō)針對(duì)一些功能復(fù)雜并且具有核心功能的代碼來(lái)說(shuō)應(yīng)該編寫(xiě)更細(xì)致、全面的測(cè)試用例。靜態(tài)的標(biāo)準(zhǔn)也不適用于測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的測(cè)試范圍,在實(shí)際情況下是能夠隨著時(shí)間的改變而改變。
2軟件開(kāi)發(fā)為何要應(yīng)用測(cè)試驅(qū)動(dòng)開(kāi)發(fā)
2.1提高代碼質(zhì)量
測(cè)試驅(qū)動(dòng)開(kāi)發(fā)區(qū)別于之前的先編碼后測(cè)試的開(kāi)發(fā)方式,它的操作過(guò)程恰恰相反,它推動(dòng)整個(gè)開(kāi)發(fā)的進(jìn)行是通過(guò)測(cè)試來(lái)實(shí)現(xiàn)的。在某些時(shí)候,軟件工程開(kāi)發(fā)工程中的需求是極難描述清楚的,當(dāng)然我們這里說(shuō)的需求當(dāng)然不只是指用戶(hù)的需求,代碼的使用需求才是我們需要考慮的需求范圍。如果我們?cè)谲浖_(kāi)發(fā)后期還要對(duì)某個(gè)類(lèi)或者函數(shù)的接口進(jìn)行拓展或者修改,顯然這對(duì)任何一個(gè)開(kāi)發(fā)人員來(lái)說(shuō)都是不能夠接受的。至于為什么會(huì)發(fā)生這樣的事情,從本意上來(lái)說(shuō)就是因?yàn)闆](méi)有精確地對(duì)這部分代碼作出描述。而當(dāng)我們需要添加某項(xiàng)新功能時(shí),也不應(yīng)該著急寫(xiě)程序代碼,這時(shí)候就體現(xiàn)出了先寫(xiě)好測(cè)試用例的重要性。
2.2改善設(shè)計(jì)方式
測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的優(yōu)勢(shì)則體現(xiàn)在實(shí)現(xiàn)軟件設(shè)計(jì)的過(guò)程中,傳統(tǒng)的軟件工程所體現(xiàn)出來(lái)的設(shè)計(jì)思想跟測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的思想是不能夠比較的,傳統(tǒng)設(shè)計(jì)方法中的死板的原則在測(cè)試驅(qū)動(dòng)開(kāi)發(fā)面前是不值得一提的,在某些程度還弱化了了全面細(xì)致的設(shè)計(jì)。在測(cè)試驅(qū)動(dòng)開(kāi)發(fā)過(guò)程中我們應(yīng)該對(duì)現(xiàn)有的需求做出簡(jiǎn)單的設(shè)計(jì),而不是對(duì)需求做出詳盡的解釋??瓷先ズ孟駥?duì)設(shè)計(jì)進(jìn)行了簡(jiǎn)化,也削弱了開(kāi)發(fā)的依據(jù),實(shí)際上卻是進(jìn)一步明確了軟件開(kāi)發(fā)的時(shí)候應(yīng)該更注重眼前的問(wèn)題,只有這樣才能使做出的軟件更符合客戶(hù)的需求。因?yàn)樵O(shè)計(jì)是一個(gè)相持以往的過(guò)程,需求文檔的體現(xiàn)也在測(cè)試用例中表現(xiàn)得非常充分。
2.3革新傳統(tǒng)的軟件開(kāi)發(fā)
以人為本的思想是測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的方法。人類(lèi)活動(dòng)都秉持著高度的目的性,建立一個(gè)心里的標(biāo)準(zhǔn)并竭盡全力去達(dá)成這個(gè)標(biāo)準(zhǔn)會(huì)具有重要的心理作用。例如在我們平時(shí)的測(cè)試過(guò)程中,有著不同目的的測(cè)試軟件開(kāi)發(fā)將會(huì)帶來(lái)不一樣的操作結(jié)果。比如說(shuō)將證明程序中沒(méi)有我們需要查找的錯(cuò)誤作為我們的最終目的,那大腦中的潛意識(shí)里就會(huì)指導(dǎo)著我們朝這個(gè)思路去做,所以在編寫(xiě)測(cè)試的過(guò)程中,我們就潛意識(shí)地選擇了一些不會(huì)使整個(gè)軟件程序出錯(cuò)的實(shí)驗(yàn)數(shù)據(jù);相反,如果我們逆向思維去選擇那些容易發(fā)現(xiàn)程序錯(cuò)誤的測(cè)試數(shù)據(jù)去證明程序中的漏洞,那結(jié)果一定就會(huì)不同了。對(duì)比之下,我們?cè)谝詫ふ义e(cuò)誤為最終目的的前提下做出的程序檢測(cè)質(zhì)量遠(yuǎn)遠(yuǎn)高過(guò)以不找錯(cuò)誤為最終目的的思維方式。測(cè)試驅(qū)動(dòng)開(kāi)發(fā)改變了以往的破壞性思想,測(cè)試在先,編碼在后的方法則是從人性的角度出發(fā)。
3結(jié)語(yǔ)
總而言之,測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的開(kāi)發(fā)方法就是“測(cè)試在前,編碼在后”。人性特點(diǎn)作為測(cè)試驅(qū)動(dòng)開(kāi)發(fā)側(cè)重考慮的因素,在一定程度上極大的提高了軟件的質(zhì)量和開(kāi)發(fā)速度。這是一種完全的軟件開(kāi)發(fā)革新,也從根本上改變了傳統(tǒng)的開(kāi)發(fā)軟件思想。推廣測(cè)試驅(qū)動(dòng)開(kāi)發(fā)思想使得越來(lái)越多的軟件企業(yè)開(kāi)始注意到這種獨(dú)具一格的軟件測(cè)試方法,間接或者是直接采用了這種方法。測(cè)試驅(qū)動(dòng)開(kāi)發(fā)正在軟件開(kāi)發(fā)領(lǐng)域發(fā)光發(fā)熱,我們也相信在不久的將來(lái)就能解決用戶(hù)對(duì)軟件質(zhì)量不滿的問(wèn)題。
參考文獻(xiàn)
[1]嚴(yán)國(guó)武.淺談驗(yàn)收測(cè)試驅(qū)動(dòng)開(kāi)發(fā)[J].電子世界,2014(08).
[2]林勇.淺談測(cè)試驅(qū)動(dòng)開(kāi)發(fā)[J].中國(guó)金融電腦,2012(04).
[3]唐金鵬,李玲琳.測(cè)試驅(qū)動(dòng)開(kāi)發(fā)應(yīng)用研究[J].企業(yè)技術(shù)開(kāi)發(fā),2012(05).
[4]李瑛,彭軍.測(cè)試驅(qū)動(dòng)開(kāi)發(fā)在系統(tǒng)中的設(shè)計(jì)實(shí)現(xiàn)及效能分析[J].計(jì)算機(jī)與數(shù)字工程,2012(01).
作者:陳迪舸 單位:成都工業(yè)職業(yè)技術(shù)學(xué)院