軟件開發(fā)中測試驅(qū)動開發(fā)的運用
軟件開發(fā)中測試驅(qū)動開發(fā)的運用
在軟件工程領(lǐng)域,軟件開發(fā)過程 刻畫了一個工程從起始到結(jié)束,如何進行計劃、控制以及監(jiān)控的過程。目前在大多數(shù)的軟件開發(fā)中,各大公司采用的仍是傳統(tǒng)的瀑布模型。下面是小編搜集整理的相關(guān)內(nèi)容的論文,歡迎大家閱讀參考。
摘要:在極限編程中極具特色的一個原則就是測試驅(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)變得不再適用于當(dāng)今的軟件開發(fā),而最近剛剛興起的一些軟件開發(fā)過程的技術(shù)正好值得我們借鑒和學(xué)習(xí)。其中就包括我們今天要討論的測試驅(qū)動開發(fā),它作為一個最基礎(chǔ)的技術(shù)能夠提供給我們一些相對高效的軟件過程開發(fā)方法。
一、測試驅(qū)動開發(fā)的相關(guān)環(huán)節(jié)
1.1原理和過程測試
驅(qū)動開發(fā)的原理就是應(yīng)該在明確要開發(fā)某個功能后,進行構(gòu)思并決定如何設(shè)計測試代碼的過程,從而根據(jù)用戶的需求編寫出功能代碼滿足這些測試用例。接下來可以循環(huán)的進行添加其他功能,最后能夠完成全部功能的開發(fā)。其中的基本過程包括:明確當(dāng)前需要完成的功能;需要在保證速度的前提下編寫測試用例;編寫對應(yīng)的功能代碼;保證測試能夠通過的方法就是重構(gòu)代碼。我們通常在運用了測試框架的前提下,進行組織所有的測試用例,從而保證了整個測試過程的高效和便捷。
1.2原則要求
為了保證能分清需要檢測的各類代碼,不同代碼的的測試之間應(yīng)該相互隔離,為了避免去考慮許多的無關(guān)細(xì)節(jié)而增加復(fù)雜度,所以我們在相關(guān)代碼的測試中一般只考慮該代碼的'測試,而不去考慮它的現(xiàn)實細(xì)節(jié)。在實際情況中,經(jīng)常出現(xiàn)的功能點需要我們?nèi)y試,在任意階段中如果我們想要添加功能需求問題時,我們能夠把相關(guān)功能點添加到測試列表的操作方法從而避免不必要的麻煩,從而不斷地完成對應(yīng)的測試實例、重構(gòu)和功能代碼。這是為了避免疏漏,同時也是為了避免干擾當(dāng)前正在進行的工作。在完成某個功能、某個類別的時候,首先我們需要編寫測試代碼,考慮具體該如何測試和使用,接下來再進行設(shè)計和編碼。在這個過程中,我們需要正確編寫對應(yīng)功能代碼判斷用的語句,隨后編寫對應(yīng)的輔助語句。
1.3測試技術(shù)
如果我們采用傳統(tǒng)的檢測方式,這無疑會在我們的軟件開發(fā)中造成開發(fā)速度緩慢等缺點,而我們需要認(rèn)清的一點就是測試驅(qū)動開發(fā)中的測試并不是作為一種負(fù)擔(dān),而是一種為了幫助我們減輕繁重工作量的有效方法。在針對如何選擇一個合適的時間來停止編寫測試用例的問題上,我們應(yīng)該根據(jù)往常的工作經(jīng)驗來進行,例如說針對一些功能復(fù)雜并且具有核心功能的代碼來說應(yīng)該編寫更細(xì)致、全面的測試用例。靜態(tài)的標(biāo)準(zhǔn)也不適用于測試驅(qū)動開發(fā)的測試范圍,在實際情況下是能夠隨著時間的改變而改變。
二、軟件開發(fā)為何要應(yīng)用測試驅(qū)動開發(fā)
2.1提高代碼質(zhì)量
測試驅(qū)動開發(fā)區(qū)別于之前的先編碼后測試的開發(fā)方式,它的操作過程恰恰相反,它推動整個開發(fā)的進行是通過測試來實現(xiàn)的。在某些時候,軟件工程開發(fā)工程中的需求是極難描述清楚的,當(dāng)然我們這里說的需求當(dāng)然不只是指用戶的需求,代碼的使用需求才是我們需要考慮的需求范圍。如果我們在軟件開發(fā)后期還要對某個類或者函數(shù)的接口進行拓展或者修改,顯然這對任何一個開發(fā)人員來說都是不能夠接受的。至于為什么會發(fā)生這樣的事情,從本意上來說就是因為沒有精確地對這部分代碼作出描述。而當(dāng)我們需要添加某項新功能時,也不應(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ā)面前是不值得一提的,在某些程度還弱化了了全面細(xì)致的設(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ā)的方法。人類活動都秉持著高度的目的性,建立一個心里的標(biāo)準(zhǔn)并竭盡全力去達成這個標(biāo)準(zhǔn)會具有重要的心理作用。例如在我們平時的測試過程中,有著不同目的的測試軟件開發(fā)將會帶來不一樣的操作結(jié)果。比如說將證明程序中沒有我們需要查找的錯誤作為我們的最終目的,那大腦中的潛意識里就會指導(dǎo)著我們朝這個思路去做,所以在編寫測試的過程中,我們就潛意識地選擇了一些不會使整個軟件程序出錯的實驗數(shù)據(jù);相反,如果我們逆向思維去選擇那些容易發(fā)現(xiàn)程序錯誤的測試數(shù)據(jù)去證明程序中的漏洞,那結(jié)果一定就會不同了。對比之下,我們在以尋找錯誤為最終目的的前提下做出的程序檢測質(zhì)量遠(yuǎn)遠(yuǎn)高過以不找錯誤為最終目的的思維方式。測試驅(qū)動開發(fā)改變了以往的破壞性思想,測試在先,編碼在后的方法則是從人性的角度出發(fā)。
三、結(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]嚴(yán)國武.淺談驗收測試驅(qū)動開發(fā)[J].電子世界,2023(08).
[2]林勇.淺談測試驅(qū)動開發(fā)[J].中國金融電腦,2023(04).
[3]唐金鵬,李玲琳.測試驅(qū)動開發(fā)應(yīng)用研究[J].企業(yè)技術(shù)開發(fā),2023(05).
[4]李瑛,彭軍.測試驅(qū)動開發(fā)在系統(tǒng)中的設(shè)計實現(xiàn)及效能分析[J].計算機與數(shù)字工程,2023(01).
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 yyfangchan@163.com (舉報時請帶上具體的網(wǎng)址) 舉報,一經(jīng)查實,本站將立刻刪除