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