[讀書心得] 測試(二)

接下來談的是一些關於測試的伎倆。

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

Popular posts from this blog

股票評價(Stock Valuation) - 股利折現模型

openwrt feed的使用

How to convert Markdown into HTML