本文是我在“第十屆中國系統與軟件過程改進年會廣東會場”所作演講的整理稿,主要分享單元測試的一些要點、單元測試實踐的主要問題,以及如何來解決這些問題。
一、單元測試概述
1.1 什么是單元測試
單元測試,就是針對代碼單元的獨立測試。為什么需要單元測試呢?這是代碼的基本特性決定了的。代碼有一個基本特性,就是對數據分類處理。
代碼通常會有很多的判定。一個判定,就是一次分類。嵌套的判定,會使分類次數的翻倍。

如果我們在寫代碼的時候,有一個分類漏掉了,就會產生一個Bug;如果一個分類,雖然寫了代碼,但是處理不正確,也會產生一個Bug。一個函數要沒有錯誤,必須做到兩點:1,對數據的分類必須完整;2,每一個分類的處理必須正確。做到了這兩點,就可以說,代碼的功能邏輯是正確的。

那么,如何檢測代碼的功能邏輯是否正確呢?
調試,是臨時的,且不完整的,例如,一個函數有十種輸入,調試能覆蓋五六種就不錯了。而系統測試,并不針對某個具體的函數,不關注某個函數的功能邏輯是否正確。
要檢測某個函數的功能邏輯,就必須要依照分類列出數據,檢測代碼是否對每一個分類都做了處理,而且每一個分類的處理是否正確。
——這就是單元測試。
1.2 單元測試的基本方法
由上面的分析可以看出,單元測試的基本方法就是:依數據的分類列出輸入,執行被測試程序,然后,判斷輸出是否符合預期。

單元測試能達到什么樣的效果呢?那就是:無論別人怎么樣,我總是對的!