[讀書心得] 測試(二)
接下來談的是一些關於測試的伎倆。
1. 學弟建議的code Coverage 程式碼涵蓋範圍
這是用來計算程式碼有被執行的的比例,占的越多不表示程式碼品質好,
但占的少表示測試品質差。這就像是很多條路徑,要怎麼設計多組cases來
走完全部的路徑。
2. 邏輯涵蓋範圍
去計算全部的邏輯運算式中,所走過的有幾個。這表示,假設一段程式碼
有6個if, else, for, ... 等等等判斷式,則至少需要6個test cases
3. 資料流程測試(我覺得稱做資料生命周期測試比較合適= =a)
一個資料它可以分成三個型態:
已定義- 已初始化但尚未使用
已使用- 已在運算中
已停用- 表式運算結束
另外對於從 已定義->已使用中間可以插個 已進入,
以及從 已使用->已停用中間插個 已離開,做為進一步描述。
一般正常的資料流程是 定義、使用到停用,這都沒有問題。
但是常出包的地方就是發生在一些情況:
a. 已定義-> 已定義
重複定義,雖這不一定會出錯,但可能造成問題,應避免。
b. 已定義-> 已離開
一般變數沒使用就離開,是挺奇怪也不合理的。
c. 已定義-> 已停用
表示這是個多餘的變數
d. 已進入-> 已停用
表示在進入時,就停用,但尚未定義或使用。這樣對於區域變數會有問題。
e. 已進入-> 已使用
這仍然會有些問題,因為需先保證使用前已定義。
f. 已停用-> 已停用
g. 已停用-> 已使用
h. 已使用-> 已定義
4. 對等分割
這是指若兩個測試會抓出相同的錯誤,則我們僅需要針對一個。
ex. if a < MaxNumOfBalls, a有大魚或小於MaxNumOfBalls,但若測試部分只要擇一測試便是。
5. 邊界分析
就是找出臨界值或極端值來測試。
6. 錯誤的資料類別
a. 資料太多或太少
b. 資料類型錯誤
c. 資料大小錯誤
d. 未初始化
7. 良好的資料類別
a. 預設的最大、最小值
b. 與舊資料間的相容性
嗯... 先這樣,明天再來看一般的測試工具是怎麼去做,來實際演練番。
1. 學弟建議的code Coverage 程式碼涵蓋範圍
這是用來計算程式碼有被執行的的比例,占的越多不表示程式碼品質好,
但占的少表示測試品質差。這就像是很多條路徑,要怎麼設計多組cases來
走完全部的路徑。
2. 邏輯涵蓋範圍
去計算全部的邏輯運算式中,所走過的有幾個。這表示,假設一段程式碼
有6個if, else, for, ... 等等等判斷式,則至少需要6個test cases
3. 資料流程測試(我覺得稱做資料生命周期測試比較合適= =a)
一個資料它可以分成三個型態:
已定義- 已初始化但尚未使用
已使用- 已在運算中
已停用- 表式運算結束
另外對於從 已定義->已使用中間可以插個 已進入,
以及從 已使用->已停用中間插個 已離開,做為進一步描述。
一般正常的資料流程是 定義、使用到停用,這都沒有問題。
但是常出包的地方就是發生在一些情況:
a. 已定義-> 已定義
重複定義,雖這不一定會出錯,但可能造成問題,應避免。
b. 已定義-> 已離開
一般變數沒使用就離開,是挺奇怪也不合理的。
c. 已定義-> 已停用
表示這是個多餘的變數
d. 已進入-> 已停用
表示在進入時,就停用,但尚未定義或使用。這樣對於區域變數會有問題。
e. 已進入-> 已使用
這仍然會有些問題,因為需先保證使用前已定義。
f. 已停用-> 已停用
g. 已停用-> 已使用
h. 已使用-> 已定義
4. 對等分割
這是指若兩個測試會抓出相同的錯誤,則我們僅需要針對一個。
ex. if a < MaxNumOfBalls, a有大魚或小於MaxNumOfBalls,但若測試部分只要擇一測試便是。
5. 邊界分析
就是找出臨界值或極端值來測試。
6. 錯誤的資料類別
a. 資料太多或太少
b. 資料類型錯誤
c. 資料大小錯誤
d. 未初始化
7. 良好的資料類別
a. 預設的最大、最小值
b. 與舊資料間的相容性
嗯... 先這樣,明天再來看一般的測試工具是怎麼去做,來實際演練番。
Comments
Post a Comment