Junit 工具用于單元測(cè)試的工具,是極限編程中必不可少的工具。Java開(kāi)發(fā)人員必須掌握的工具。
首先,在開(kāi)發(fā)軟件的過(guò)程中,風(fēng)險(xiǎn)是無(wú)處不在,從根本上講,我們無(wú)法消除這些風(fēng)險(xiǎn),但可以通過(guò)進(jìn)行測(cè)試來(lái)降低風(fēng)險(xiǎn),從而提高開(kāi)發(fā)的可靠性,以及終軟件的質(zhì)量。
那么,我們所講到的測(cè)試的職責(zé)又是什么呢?測(cè)試為重要的一點(diǎn)是為了確保各開(kāi)發(fā)階段的開(kāi)發(fā)質(zhì)量,發(fā)現(xiàn)軟件中存在的缺陷;然后是為了驗(yàn)證開(kāi)發(fā)的產(chǎn)品是否符合用戶的需求,即通過(guò)對(duì)用戶使用過(guò)程的一些樣本數(shù)據(jù)在測(cè)試過(guò)程中的反應(yīng)來(lái)確定軟件功能的可用性,從而改善存在的一些缺陷。
這里的缺陷是指與“軟件需求說(shuō)明書”不一致的地方,由于存在不一致,因此不能夠滿足用戶的需要。
對(duì)于測(cè)試本身來(lái)講,分為靜態(tài)測(cè)試,即不需要運(yùn)行程序,通過(guò)評(píng)審和其它非運(yùn)行的手段來(lái)進(jìn)行檢查,主要檢查是否滿足一些標(biāo)準(zhǔn),一些規(guī)范。動(dòng)態(tài)測(cè)試是運(yùn)行程序,來(lái)根據(jù)運(yùn)行的狀態(tài)來(lái)測(cè)試各部分功能以及情況。
從另外的角度,測(cè)試還有其它的分類,例如根據(jù)順序來(lái)分類:
單元測(cè)試(Unit Testing),為基本和重要的測(cè)試方法,又稱為模塊測(cè)試,由開(kāi)發(fā)人員在開(kāi)發(fā)過(guò)程中完成,需要達(dá)標(biāo)
集成測(cè)試,又稱為組裝測(cè)試,確保模塊之間的通訊與協(xié)作之間的運(yùn)行無(wú)問(wèn)題。
系統(tǒng)測(cè)試,包括外圍的運(yùn)行環(huán)境一起來(lái)測(cè)試。
驗(yàn)收測(cè)試,由客戶來(lái)根據(jù)前期文檔來(lái)進(jìn)行的總體的測(cè)試,主要以靜態(tài)測(cè)試為主。
回歸測(cè)試。
此外還有其它角度的分類,如:
功能測(cè)試、結(jié)構(gòu)測(cè)試、黑盒測(cè)試、白盒測(cè)試等等,大部分測(cè)試相關(guān)書籍中有相關(guān)的論述。
一、下面我們?cè)敿?xì)的來(lái)討論一下單元測(cè)試方面的內(nèi)容。
1)關(guān)注范圍,局限在單元模塊之類(如,類,方法)
2)代碼分析與測(cè)試
3)功能分析與測(cè)試
4)結(jié)構(gòu)分析與測(cè)試
5)以錯(cuò)誤為導(dǎo)向的分析與測(cè)試
單元測(cè)試是從模塊或者類的內(nèi)部來(lái)設(shè)計(jì)測(cè)試用例的,目的是為了發(fā)現(xiàn)模塊內(nèi)部可能存在的各種差錯(cuò)。主要根據(jù)詳細(xì)設(shè)計(jì)說(shuō)明書和程序清單來(lái)了解I/O條件和程序邏輯,采用白盒測(cè)試用例。能夠?qū)侠磔斎肱c不合理的都能夠進(jìn)行識(shí)別和處理。
從模塊的角度來(lái)講,一個(gè)完整的模塊需要涵蓋以下幾個(gè)方面:模塊接口、出錯(cuò)處理、局部數(shù)據(jù)結(jié)構(gòu)、邊界條件、獨(dú)立路徑等等。
A.模塊接口的測(cè)試,在單元測(cè)試開(kāi)始的時(shí)候需要對(duì)模塊進(jìn)出的數(shù)據(jù)流進(jìn)行檢查,例如,調(diào)用模塊的參數(shù)輸入是否正確,本模塊調(diào)用子模塊時(shí)的傳遞的參數(shù)是否正確,全局變更在各模塊是否一致等。
詳細(xì)說(shuō)明一下在做內(nèi)外存交互時(shí),需要考慮的問(wèn)題主要有以下幾方面:
<1>文件的屬性是否正確(特別在Linux等系統(tǒng) 下)
<2>Open與Close語(yǔ)句是否正確
<3>緩沖區(qū)容量與記錄長(zhǎng)度是否匹配
<4>進(jìn)行讀寫之前文件是否已經(jīng)打開(kāi)
<5>結(jié)束文件處理時(shí),是否關(guān)閉了文件
<6>I/O錯(cuò)誤的檢查與處理
B.局部數(shù)據(jù)結(jié)構(gòu)的測(cè)試
<1>數(shù)據(jù)類型說(shuō)明是否正確以及一致
<2>是否存在使用未賦值或者未初始化的變量的情況
<3>初始值或者缺省值是否正確
<4>變更名稱是否存在拼寫錯(cuò)誤