吳文慶
摘? 要:隨著科學(xué)技術(shù)的飛速發(fā)展,人們對(duì)軟件功能需求也在不斷增加,為了滿足人們的需求,則需要不斷提高軟件開發(fā)效率,特別是軟件開發(fā)的編碼質(zhì)量應(yīng)不斷提高,避免因編碼問題而為軟件的使用埋下功能隱患。測(cè)試驅(qū)動(dòng)開發(fā)在軟件開發(fā)中的應(yīng)用,相比于傳統(tǒng)的軟件開發(fā)形式,更注重先測(cè)試后編碼,這種方式有效規(guī)避先編碼過程中可能出現(xiàn)的編碼問題,進(jìn)一步提升軟件開發(fā)的編碼質(zhì)量。因此,在新時(shí)期發(fā)展中,應(yīng)加大測(cè)試驅(qū)動(dòng)開發(fā)在軟件開發(fā)中的推廣,將其的價(jià)值充分體現(xiàn)出來,進(jìn)一步提升軟件開發(fā)的質(zhì)量。
關(guān)鍵詞:軟件開發(fā)? 測(cè)試驅(qū)動(dòng)開發(fā)? 運(yùn)用
中圖分類號(hào):TP311.52? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A? ? ? ? ? ? ? ? ? ? ? ? ?文章編號(hào):1672-3791(2019)04(b)-0019-02
Abstract: With the rapid development of science and technology, people's demand for software function is also increasing, in order to meet the needs of people, it is necessary to constantly improve the efficiency of software development, especially the quality of software development code should be constantly improved, to avoid the hidden danger of software use caused by coding problems. The application of test-driven development in software development, compared with the traditional software development form, more attention is paid to test before coding, which effectively avoids coding problems that may occur in the process of coding first and further improves the coding quality of software development. Therefore, in the new era of development, test-driven development promotion should be increased in software development to fully reflect its value and further improve the quality of software development.
Key Words: Software development; Test-driven development; Using
在信息時(shí)代發(fā)展中,計(jì)算機(jī)軟件的發(fā)展也極為迅速,尤其是在人們使用軟件的過程中,也會(huì)在原有功能基礎(chǔ)上提出更高的要求,而為了能夠進(jìn)一步滿足客戶對(duì)軟件的功能需求,也對(duì)軟件開發(fā)人員提出更高的要求,如何能夠在軟件開發(fā)中具有高效性是每位軟件開發(fā)人員重點(diǎn)思考的問題。在新時(shí)期發(fā)展中,軟件開發(fā)中測(cè)試驅(qū)動(dòng)開發(fā)的運(yùn)用,可有效提高軟件開發(fā)的效率,以下該文則主要對(duì)軟件開發(fā)中測(cè)試驅(qū)動(dòng)開發(fā)的幾方面運(yùn)用進(jìn)行分析。
1? 測(cè)試驅(qū)動(dòng)開發(fā)分析
1.1 原則要求
在測(cè)試驅(qū)動(dòng)開發(fā)的過程中,應(yīng)根據(jù)實(shí)際測(cè)試要求,保證在檢測(cè)過程中分清所需要檢測(cè)的各類代碼,并根據(jù)不同代碼測(cè)試設(shè)定相互的間隔,進(jìn)而有效避免在測(cè)試的過程中忽視一些細(xì)節(jié)性問題,同時(shí)避免了增加測(cè)試的復(fù)雜度[1]。另外,在實(shí)際操作中,應(yīng)對(duì)所出現(xiàn)的功能點(diǎn)進(jìn)行測(cè)試,尤其是在需要添加功能需求的情況下,應(yīng)將其添加到測(cè)試列表中,嚴(yán)格遵循著測(cè)試全面性、準(zhǔn)確性的原則,規(guī)避因測(cè)試不全面而埋下不必要的風(fēng)險(xiǎn)。另外,測(cè)試驅(qū)動(dòng)開發(fā)過程中應(yīng)不斷完成相關(guān)的測(cè)試實(shí)例、功能代碼、重構(gòu)等,避免出現(xiàn)疏漏,同時(shí)也應(yīng)避免干擾到當(dāng)前正在進(jìn)行的工作。例如,在編寫測(cè)試代碼的過程中,應(yīng)充分考慮到該如何使用和測(cè)試,然后再進(jìn)行合理的設(shè)計(jì)和編碼,將其寫入功能代碼判斷用句的過程中,應(yīng)合理寫入對(duì)應(yīng)的輔助語句,才能保證測(cè)試驅(qū)動(dòng)開發(fā)的有效性、合理性,同時(shí)也規(guī)避了一些因編寫不合理而產(chǎn)生不必要的麻煩。
1.2 開發(fā)的原理和過程
測(cè)試驅(qū)動(dòng)開發(fā)的過程中主要原理是需要明確所要開發(fā)的功能,并在此基礎(chǔ)上考慮該如何設(shè)計(jì)相關(guān)的設(shè)計(jì)代碼,嚴(yán)格按照用戶的相關(guān)使用需求編寫出功能符合的代碼,進(jìn)而保證測(cè)試的有效性。當(dāng)然,測(cè)試開發(fā)的過程中,應(yīng)循序漸進(jìn)地進(jìn)行開發(fā),最終保證所有的功能都能被開發(fā)。測(cè)試驅(qū)動(dòng)開發(fā)的過程中首先要明確所需要開發(fā)的功能[2]。其次,在明確功能要求的基礎(chǔ)上進(jìn)行編寫測(cè)試,寫入相對(duì)應(yīng)的功能代碼。再次,保證測(cè)試能夠重構(gòu)代碼,并對(duì)所編寫的代碼進(jìn)行全面的分析,是否存在運(yùn)行問題,一旦發(fā)現(xiàn)有問題應(yīng)及時(shí)更改代碼,保證測(cè)試驅(qū)動(dòng)開發(fā)的全面性、有效性。進(jìn)而保證整個(gè)測(cè)試的便捷性、高效性。另外,由于用戶對(duì)功能需求的不同,在測(cè)試驅(qū)動(dòng)開發(fā)的過程中也可能對(duì)功能有著一定的調(diào)整,因此,應(yīng)保證編寫代碼的相對(duì)獨(dú)立性,使其具有較強(qiáng)的拓展性,便于添加新的功能代碼。
1.3 測(cè)試技術(shù)分析
測(cè)試驅(qū)動(dòng)所需要的測(cè)試技術(shù)經(jīng)過不斷的改進(jìn)和創(chuàng)新,使得其測(cè)試技術(shù)水平在不斷提升,也為測(cè)試驅(qū)動(dòng)開發(fā)提供可靠的幫助[3]。從以往所使用的傳統(tǒng)檢測(cè)方式來分析,主要是測(cè)試驅(qū)動(dòng)開發(fā)速度較為緩慢,且開發(fā)的過程中還存在很多的缺點(diǎn),影響到其功能性,甚至埋下一定的隱患。站在當(dāng)今的測(cè)試驅(qū)動(dòng)開發(fā)角度上分析,傳統(tǒng)的開發(fā)不僅增加了工作量,同時(shí)也經(jīng)常因一些細(xì)節(jié)性的疏忽形成一種負(fù)擔(dān)。在當(dāng)今的測(cè)試驅(qū)動(dòng)開發(fā)中,首先要明確的是測(cè)試驅(qū)動(dòng)開發(fā)并不是一種負(fù)擔(dān),而是為了更好地減輕繁重工作量而使用的。因此,在測(cè)試驅(qū)動(dòng)開發(fā)的過程中,不僅要對(duì)以往的工作經(jīng)驗(yàn)進(jìn)行全面的分析,了解其問題的所在以及產(chǎn)生問題的原因等,同時(shí)也應(yīng)不斷吸取先進(jìn)的測(cè)試經(jīng)驗(yàn),進(jìn)而保證測(cè)試驅(qū)動(dòng)開發(fā)的合理性、有效性。例如,對(duì)一些功能較為復(fù)雜的功能來說,其代碼編寫也會(huì)有著一定的難度,為保證其功能應(yīng)嚴(yán)格編寫代碼,并進(jìn)行全面的測(cè)試,及時(shí)發(fā)現(xiàn)其中的問題所在,以便于展開更合理有效的測(cè)量。
2? 軟件開發(fā)中測(cè)試驅(qū)動(dòng)開發(fā)的運(yùn)用分析
通過以上的分析,進(jìn)一步了解了測(cè)試驅(qū)動(dòng)開發(fā)的功能、優(yōu)勢(shì)以及相關(guān)的技術(shù)線路等,將其應(yīng)用到軟件開發(fā)中,徹底打破傳統(tǒng)軟件開發(fā)中先編碼后測(cè)試的觀念,更注重先測(cè)試后編碼,有效規(guī)避其中的不足,提高編碼質(zhì)量以及提升軟件設(shè)計(jì)水平。
2.1 創(chuàng)新軟件開發(fā)的形式
從對(duì)以往軟件開發(fā)的分析中發(fā)現(xiàn),傳統(tǒng)軟件開發(fā)過程中,由于受到傳統(tǒng)觀念以及落后的技術(shù)影響,使得傳統(tǒng)軟件開發(fā)效果不佳,甚至?xí)?dǎo)致所開發(fā)出來的軟件埋藏諸多漏洞,進(jìn)而影響到軟件的正常使用。在將測(cè)試驅(qū)動(dòng)開發(fā)運(yùn)用到軟件開發(fā)中,創(chuàng)新了軟件開發(fā)的形式,對(duì)提升軟件開發(fā)的效率有著極大的作用[4]。當(dāng)然,在新時(shí)期發(fā)展中,軟件的開發(fā)都是建立在人的使用需求基礎(chǔ)上,而測(cè)試驅(qū)動(dòng)開發(fā)中所貫徹的以人為本的思想,則更是以人類活動(dòng)為基礎(chǔ),滿足其使用需求而進(jìn)行開發(fā)的,從某種意義上分析,測(cè)試驅(qū)動(dòng)開發(fā)的運(yùn)用不僅僅是對(duì)軟件開發(fā)形式的創(chuàng)新,更是將人的觀念與軟件開發(fā)進(jìn)行有效結(jié)合,進(jìn)而保證所開發(fā)出來的軟件更符合人們的使用需求。
通常在測(cè)試的過程中,會(huì)基于不同的目的對(duì)軟件進(jìn)行分析,而測(cè)試軟件開發(fā)也將帶來不一樣的操作結(jié)果,例如,在軟件開發(fā)中,會(huì)將證明程序中沒有所需要查找的錯(cuò)誤作為主要的開發(fā)目的,那么在對(duì)其軟件測(cè)試的過程中,也會(huì)受到大腦潛意識(shí)的影響去尋找相關(guān)的思路,而這樣在測(cè)試的過程中,就會(huì)受到潛意識(shí)的影響而選擇不會(huì)使整個(gè)軟件程序出錯(cuò)的實(shí)驗(yàn)數(shù)據(jù)進(jìn)行測(cè)試[5]。相反,如果將前面所提到的現(xiàn)象反過來,并逆向思維的去選擇容易被發(fā)現(xiàn)程序錯(cuò)誤的測(cè)試數(shù)據(jù),并用其測(cè)試數(shù)據(jù)去證明軟件程序中所存在的漏洞,這兩種方式所得出的結(jié)果將會(huì)不同,這也對(duì)軟件開發(fā)結(jié)果構(gòu)成不同程度的影響。在對(duì)比分析中發(fā)現(xiàn),選擇后者對(duì)軟件開發(fā)的功能進(jìn)行全面測(cè)試,更容易尋找到其中的問題所在,并對(duì)其采取不斷的完善措施,保證找不到錯(cuò)誤為止,這種測(cè)試的思維方式是傳統(tǒng)軟件開發(fā)中很少考慮的。
2.2 提升軟件代碼質(zhì)量
傳統(tǒng)軟件開發(fā)的過程中,更注重的是先編碼后測(cè)試,而在這個(gè)過程中,可能出現(xiàn)編碼問題卻不能及時(shí)被發(fā)現(xiàn),在所有編碼完成之后再進(jìn)行測(cè)試,雖然會(huì)發(fā)現(xiàn)編碼中的問題,但在重新寫入編碼的過程中也會(huì)增加一定的難度,尤其是很多編碼之間還存在很強(qiáng)的連接性、邏輯性,需要調(diào)整的工作量較大,進(jìn)而直接增加了軟件開發(fā)的勞動(dòng)量。而將測(cè)試驅(qū)動(dòng)開發(fā)運(yùn)用到軟件開發(fā)中,則與傳統(tǒng)先編碼后測(cè)試的方式恰好相反,更注重對(duì)整個(gè)開發(fā)過程的推理和測(cè)試,一方面可以減少編碼的勞動(dòng)量,另一方面能夠進(jìn)一步保證編碼的有效性。
軟件開發(fā)是一項(xiàng)極為復(fù)雜的工作,尤其是在開發(fā)的過程中很多需求是很難描述清楚的,這也給軟件開發(fā)增加一定的難度[6]。軟件開發(fā)中所提到很難描述的需求并非只是源于客戶的需求,還有對(duì)代碼使用的需求,這些都是需要在軟件開發(fā)中所要考慮的因素,尤其是在軟件開發(fā)的后期,還要對(duì)某個(gè)類或者函數(shù)的接口進(jìn)行拓展或者修改,顯然這對(duì)任何一個(gè)開發(fā)人員來說都是不能夠接受的。
2.3 優(yōu)化設(shè)計(jì)方式
在軟件開發(fā)的過程中,需要結(jié)合軟件的功能要求,合理進(jìn)行軟件設(shè)計(jì),并根據(jù)設(shè)計(jì)進(jìn)行軟件開發(fā)。而軟件設(shè)計(jì)的是否合理也將直接影響到軟件開發(fā)的效率。傳統(tǒng)軟件設(shè)計(jì)的過程中,設(shè)計(jì)方式過于死板,缺乏人性化,尤其是在一些細(xì)節(jié)性設(shè)計(jì)中的不足,會(huì)導(dǎo)致軟件開發(fā)面臨著不同程度的問題,進(jìn)而影響到軟件開發(fā)的效率。測(cè)試驅(qū)動(dòng)開發(fā)的運(yùn)用可以有效改變這一現(xiàn)狀,會(huì)根據(jù)軟件的實(shí)際使用需求設(shè)計(jì)出更加合理的方案,相比于傳統(tǒng)設(shè)計(jì),不僅簡(jiǎn)化了設(shè)計(jì)方式,同時(shí)也能夠保證設(shè)計(jì)出更加合理的方案。而且,測(cè)試驅(qū)動(dòng)開發(fā)應(yīng)用下,通過先測(cè)試后編碼的方式,能夠進(jìn)一步優(yōu)化軟件設(shè)計(jì)方式,有效規(guī)避一些潛在的設(shè)計(jì)隱患,進(jìn)而保證軟件設(shè)計(jì)的順利實(shí)施。
3? 結(jié)語
綜上所述,在軟件開發(fā)的過程中,傳統(tǒng)開發(fā)主要是先編碼后測(cè)試,而在此過程中可能會(huì)出現(xiàn)不同程度的編碼問題,進(jìn)而影響到軟件開發(fā)的質(zhì)量,甚至?xí)霈F(xiàn)不同程度的編碼調(diào)整等工作,使得編碼工作任務(wù)量較為繁重,而且編碼的質(zhì)量也并不高。而在該文的研究中,提出軟件開發(fā)中測(cè)試驅(qū)動(dòng)開發(fā)的運(yùn)用,相比于傳統(tǒng)軟件開發(fā)形式,主要是先通過測(cè)試然后再編碼,在測(cè)試的過程中,及時(shí)發(fā)現(xiàn)可能出現(xiàn)的編碼問題,同時(shí)也明確了編碼的方向,更有利于軟件開發(fā)編碼工作的順利進(jìn)行。而且,相比于傳統(tǒng)的軟件開發(fā),這種先測(cè)試后編碼的形式能夠有效提升編碼的質(zhì)量,進(jìn)而保證軟件開發(fā)的順利進(jìn)行。
參考文獻(xiàn)
[1] 陳迪舸.芻議測(cè)試驅(qū)動(dòng)開發(fā)在軟件開發(fā)中的作用[J].電子技術(shù)與軟件工程,2016(7):60.
[2] 陳希,徐明昆.測(cè)試驅(qū)動(dòng)開發(fā)在軟件開發(fā)中的研究與實(shí)踐[J].軟件,2012,33(12):177-181.
[3] 袁社鋒,張紅霞.測(cè)試驅(qū)動(dòng)在軟件開發(fā)中的作用[J].福建電腦,2012,28(2):87-88.
[4] 章琦,章磊.TDD測(cè)試驅(qū)動(dòng)開發(fā)與瀑布式軟件開發(fā)流程的對(duì)比研究[J].科技信息,2009(9):449-450,472.
[5] 杜美艷.淺談測(cè)試驅(qū)動(dòng)開發(fā)在軟件開發(fā)中的作用[J].科技信息:學(xué)術(shù)研究,2008(32):180.
[6] 徐蔚為.軟件外包中測(cè)試驅(qū)動(dòng)的軟件開發(fā)模式及度量研究[D].復(fù)旦大學(xué),2008.