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