公務(wù)員期刊網(wǎng) 論文中心 正文

軟件開發(fā)中測試驅(qū)動開發(fā)的運用

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了軟件開發(fā)中測試驅(qū)動開發(fā)的運用范文,希望能給你帶來靈感和參考,敬請閱讀。

軟件開發(fā)中測試驅(qū)動開發(fā)的運用

摘要:在極限編程中極具特色的一個原則就是測試驅(qū)動開發(fā),作為一種新的思潮正在被越來越多的人所接受,它在軟件開發(fā)過程中所表現(xiàn)出來的積極作用是不言而喻的。測試驅(qū)動開發(fā)的方法能夠在保證功能測試的前提下,也能夠成為設(shè)計的一部分。整個開發(fā)過程的驅(qū)動力就是以測試驅(qū)動開發(fā)為基礎(chǔ),能夠在很大程度上提高代碼質(zhì)量,改善開發(fā)設(shè)計過程,從而在根本上提高了產(chǎn)品的質(zhì)量。

關(guān)鍵詞:測試驅(qū)動開發(fā);軟件開發(fā);積極作用

隨著時代的發(fā)展,計算機軟件的發(fā)展變得尤為迅速,與之對應(yīng)的問題是用戶對軟件的質(zhì)量要求也越來越高。為了能夠及時交付給用戶一個滿意的軟件,軟件開發(fā)人員往往需要投入到高效的軟件開發(fā)過程。然而現(xiàn)實情況則是傳統(tǒng)的軟件工程方法已經(jīng)變得不再適用于當今的軟件開發(fā),而最近剛剛興起的一些軟件開發(fā)過程的技術(shù)正好值得我們借鑒和學習。其中就包括我們今天要討論的測試驅(qū)動開發(fā),它作為一個最基礎(chǔ)的技術(shù)能夠提供給我們一些相對高效的軟件過程開發(fā)方法。

1測試驅(qū)動開發(fā)的相關(guān)環(huán)節(jié)

1.1原理和過程測試

驅(qū)動開發(fā)的原理就是應(yīng)該在明確要開發(fā)某個功能后,進行構(gòu)思并決定如何設(shè)計測試代碼的過程,從而根據(jù)用戶的需求編寫出功能代碼滿足這些測試用例。接下來可以循環(huán)的進行添加其他功能,最后能夠完成全部功能的開發(fā)。其中的基本過程包括:明確當前需要完成的功能;需要在保證速度的前提下編寫測試用例;編寫對應(yīng)的功能代碼;保證測試能夠通過的方法就是重構(gòu)代碼。我們通常在運用了測試框架的前提下,進行組織所有的測試用例,從而保證了整個測試過程的高效和便捷。

1.2原則要求

為了保證能分清需要檢測的各類代碼,不同代碼的的測試之間應(yīng)該相互隔離,為了避免去考慮許多的無關(guān)細節(jié)而增加復雜度,所以我們在相關(guān)代碼的測試中一般只考慮該代碼的測試,而不去考慮它的現(xiàn)實細節(jié)。在實際情況中,經(jīng)常出現(xiàn)的功能點需要我們?nèi)y試,在任意階段中如果我們想要添加功能需求問題時,我們能夠把相關(guān)功能點添加到測試列表的操作方法從而避免不必要的麻煩,從而不斷地完成對應(yīng)的測試實例、重構(gòu)和功能代碼。這是為了避免疏漏,同時也是為了避免干擾當前正在進行的工作。在完成某個功能、某個類別的時候,首先我們需要編寫測試代碼,考慮具體該如何測試和使用,接下來再進行設(shè)計和編碼。在這個過程中,我們需要正確編寫對應(yīng)功能代碼判斷用的語句,隨后編寫對應(yīng)的輔助語句。

1.3測試技術(shù)

如果我們采用傳統(tǒng)的檢測方式,這無疑會在我們的軟件開發(fā)中造成開發(fā)速度緩慢等缺點,而我們需要認清的一點就是測試驅(qū)動開發(fā)中的測試并不是作為一種負擔,而是一種為了幫助我們減輕繁重工作量的有效方法。在針對如何選擇一個合適的時間來停止編寫測試用例的問題上,我們應(yīng)該根據(jù)往常的工作經(jīng)驗來進行,例如說針對一些功能復雜并且具有核心功能的代碼來說應(yīng)該編寫更細致、全面的測試用例。靜態(tài)的標準也不適用于測試驅(qū)動開發(fā)的測試范圍,在實際情況下是能夠隨著時間的改變而改變。

2軟件開發(fā)為何要應(yīng)用測試驅(qū)動開發(fā)

2.1提高代碼質(zhì)量

測試驅(qū)動開發(fā)區(qū)別于之前的先編碼后測試的開發(fā)方式,它的操作過程恰恰相反,它推動整個開發(fā)的進行是通過測試來實現(xiàn)的。在某些時候,軟件工程開發(fā)工程中的需求是極難描述清楚的,當然我們這里說的需求當然不只是指用戶的需求,代碼的使用需求才是我們需要考慮的需求范圍。如果我們在軟件開發(fā)后期還要對某個類或者函數(shù)的接口進行拓展或者修改,顯然這對任何一個開發(fā)人員來說都是不能夠接受的。至于為什么會發(fā)生這樣的事情,從本意上來說就是因為沒有精確地對這部分代碼作出描述。而當我們需要添加某項新功能時,也不應(yīng)該著急寫程序代碼,這時候就體現(xiàn)出了先寫好測試用例的重要性。

2.2改善設(shè)計方式

測試驅(qū)動開發(fā)的優(yōu)勢則體現(xiàn)在實現(xiàn)軟件設(shè)計的過程中,傳統(tǒng)的軟件工程所體現(xiàn)出來的設(shè)計思想跟測試驅(qū)動開發(fā)的思想是不能夠比較的,傳統(tǒng)設(shè)計方法中的死板的原則在測試驅(qū)動開發(fā)面前是不值得一提的,在某些程度還弱化了了全面細致的設(shè)計。在測試驅(qū)動開發(fā)過程中我們應(yīng)該對現(xiàn)有的需求做出簡單的設(shè)計,而不是對需求做出詳盡的解釋??瓷先ズ孟駥υO(shè)計進行了簡化,也削弱了開發(fā)的依據(jù),實際上卻是進一步明確了軟件開發(fā)的時候應(yīng)該更注重眼前的問題,只有這樣才能使做出的軟件更符合客戶的需求。因為設(shè)計是一個相持以往的過程,需求文檔的體現(xiàn)也在測試用例中表現(xiàn)得非常充分。

2.3革新傳統(tǒng)的軟件開發(fā)

以人為本的思想是測試驅(qū)動開發(fā)的方法。人類活動都秉持著高度的目的性,建立一個心里的標準并竭盡全力去達成這個標準會具有重要的心理作用。例如在我們平時的測試過程中,有著不同目的的測試軟件開發(fā)將會帶來不一樣的操作結(jié)果。比如說將證明程序中沒有我們需要查找的錯誤作為我們的最終目的,那大腦中的潛意識里就會指導著我們朝這個思路去做,所以在編寫測試的過程中,我們就潛意識地選擇了一些不會使整個軟件程序出錯的實驗數(shù)據(jù);相反,如果我們逆向思維去選擇那些容易發(fā)現(xiàn)程序錯誤的測試數(shù)據(jù)去證明程序中的漏洞,那結(jié)果一定就會不同了。對比之下,我們在以尋找錯誤為最終目的的前提下做出的程序檢測質(zhì)量遠遠高過以不找錯誤為最終目的的思維方式。測試驅(qū)動開發(fā)改變了以往的破壞性思想,測試在先,編碼在后的方法則是從人性的角度出發(fā)。

3結(jié)語

總而言之,測試驅(qū)動開發(fā)的開發(fā)方法就是“測試在前,編碼在后”。人性特點作為測試驅(qū)動開發(fā)側(cè)重考慮的因素,在一定程度上極大的提高了軟件的質(zhì)量和開發(fā)速度。這是一種完全的軟件開發(fā)革新,也從根本上改變了傳統(tǒng)的開發(fā)軟件思想。推廣測試驅(qū)動開發(fā)思想使得越來越多的軟件企業(yè)開始注意到這種獨具一格的軟件測試方法,間接或者是直接采用了這種方法。測試驅(qū)動開發(fā)正在軟件開發(fā)領(lǐng)域發(fā)光發(fā)熱,我們也相信在不久的將來就能解決用戶對軟件質(zhì)量不滿的問題。

參考文獻

[1]嚴國武.淺談驗收測試驅(qū)動開發(fā)[J].電子世界,2014(08).

[2]林勇.淺談測試驅(qū)動開發(fā)[J].中國金融電腦,2012(04).

[3]唐金鵬,李玲琳.測試驅(qū)動開發(fā)應(yīng)用研究[J].企業(yè)技術(shù)開發(fā),2012(05).

[4]李瑛,彭軍.測試驅(qū)動開發(fā)在系統(tǒng)中的設(shè)計實現(xiàn)及效能分析[J].計算機與數(shù)字工程,2012(01).

作者:陳迪舸 單位:成都工業(yè)職業(yè)技術(shù)學院