單元測試(英語:Unit Testing)又稱為模塊測試 ,是針對程序模塊(軟件設(shè)計的最小單位)來進行正確性檢驗的測試工作。
單元測試允許程序員在未來重構(gòu)代碼,并且確保模塊依然工作正確(復(fù)合測試)。這個過程就是為所有函數(shù)和方法編寫單元測試,一旦變更導(dǎo)致錯誤發(fā)生,借助于單元測試可以快速定位并修復(fù)錯誤。
單元測試可以由兩種方式完成:
手工測試 | 自動化測試 | |
---|---|---|
定義 | 手動執(zhí)行測試用例并不借助任何工具的測試被稱為人工測試。
|
借助工具支持并且利用自動工具執(zhí)行用例被稱為自動測試。 |
效率 | 消耗時間并單調(diào):由于測試用例是由人力資源執(zhí)行,所以非常緩慢并乏味。 | 快速自動化運行測試用例時明顯比人力資源快。 |
人力資源要求 | 人力資源上投資巨大:由于測試用例需要人工執(zhí)行,所以在人工測試上需要更多的試驗員。
|
人力資源投資較少:測試用例由自動工具執(zhí)行,所以在自動測試中需要較少的試驗員。 |
可信度 | 可信度較低:人工測試可信度較低是可能由于人工錯誤導(dǎo)致測試運行時不夠精確。
|
可信度更高:自動化測試每次運行時精確地執(zhí)行相同的操作。 |
程式化 | 非程式化:編寫復(fù)雜并可以獲取隱藏的信息的測試的話,這樣的程序無法編寫。 | 程式化:試驗員可以編寫復(fù)雜的測試來顯示隱藏信息。 |
JUnit 是一個 Java 編程語言的單元測試框架。JUnit 在測試驅(qū)動的開發(fā)方面有很重要的發(fā)展,是起源于 JUnit 的一個統(tǒng)稱為 xUnit 的單元測試框架之一。
JUnit 促進了“先測試后編碼”的理念,強調(diào)建立測試數(shù)據(jù)的一段代碼,可以先測試,然后再應(yīng)用。這個方法就好比“測試一點,編碼一點,測試一點,編碼一點……”,增加了程序員的產(chǎn)量和程序的穩(wěn)定性,可以減少程序員的壓力和花費在排錯上的時間。
單元測試用例是一部分代碼,可以確保另一端代碼(方法)按預(yù)期工作。為了迅速達到預(yù)期的結(jié)果,就需要測試框架。JUnit 是 java 編程語言理想的單元測試框架。
一個正式的編寫好的單元測試用例的特點是:已知輸入和預(yù)期輸出,即在測試執(zhí)行前就已知。已知輸入需要測試的先決條件,預(yù)期輸出需要測試后置條件。
每一項需求至少需要兩個單元測試用例:一個正檢驗,一個負檢驗。如果一個需求有子需求,每一個子需求必須至少有正檢驗和負檢驗兩個測試用例。
更多建議: