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