單元測試我們應該注意什麼!

2022-05-30 04:39:12 字數 1746 閱讀 9786

今天老師在軟體工程中講了單元**測試這一環節,首先給我們乙個小函式,要我們分析它怎麼樣,**如下:

int largest(int list, int length)

}return max;

}針對這個函式我覺得有幾點可以說的。

1.輸入陣列數值範圍影響程式正常執行。

如輸入 -1,-2,-3

1, 2,  3

0   -1   -2

257442424, 23133342, 4242424

2.加上一條判斷語句(如上)會更健壯。

以下是網路上大師們上的總結,覺得有些道理,我給搬過來了。

1.模組介面測試。

2.模組區域性資料結構測試。

3.模組邊界條件測試。

4.覆蓋測試5.出錯處理檢測

下面分別說明5點種的各個小點。

1.模組介面測試中,我們應該注意。

1.1模組輸入引數的個數是否和形參相等。

1.2模組輸入引數的屬性是否匹配。

1.3模組輸入引數的使用單位是否和形參的使用單位一致。

1.4呼叫其他模組時,實際引數個數是否和被調引數個數一致。

1.5呼叫其他模組時,實際引數屬性是否和被調引數屬性一致。

1.6呼叫其他模組時,實際引數使用單位是否和被調引數使用單位一致。

1.7在有多入口時,是否引用了當前入口中無關的引數。

1.8是否修改了只作為輸入值的形參。

1.9各模組對全域性變數的定義是否一致。

1.10是否把某些常數當做變數定義來傳遞。

如果有輸入/輸出,考慮下面:檔案屬性是否正確。

open/close語句是否正確。

緩衝區大小與記錄值是否匹配。

檔案使用前是否已經開啟

檔案結束條件是否正確。

輸入/輸出錯誤處理是否正確。

輸入資訊中是否有文本性錯誤資訊。

2.模組區域性資料結構測試。

2.1不正確或不相溶的型別說明。

2.2不正確的初始化或預設值。

2.3不正確的變數名,如拼寫錯誤和縮寫錯誤。

2.4上、下溢,位址異常。

3.模組邊界條件測試。

邊界測試是最最容易出錯的地方,我們應該充分測試。

這點我只舉例說明

比如,n維陣列的第n個元素

迴圈到最後一次

這裡我們也可以運用我們黑盒測試中的邊界值方法,雖然用例上不一樣,但是思想上是一致的。我繼續說明下,為什麼?

首先,我們知道了內部邏輯,就不能用黑盒的方法去設計了。但是,我們可以這樣去想象,一些可能和邊界有關的資料型別,我們是不是應該考慮他的max,min,最長,最短,最高,最低。

z路徑測試告訴我們是迴圈執行一次和不執行,但是迴圈最後一次呢?他能迭代出我們要的資料嗎?打個問號,至少我測試時就發現最後一次有時候就取不到。

4.覆蓋測試運算子錯用或誤用。

混合型別運算。大資料向小資料轉換,沒有加強轉。

初始化錯誤。

計算精度不夠。

表示式中符號表達錯誤。

不同資料型別進行了比較。

邏輯運算符號和優先順序使用錯誤。

本身資料應該等,但是由於精度,卻不相等。

變數本身有錯。

不終止迴圈或終止不正確。

迭代時不正確

錯誤的修改了迴圈控制變數。

執行發生的錯誤是否很難理解

指明的錯誤於實際的錯誤是否一致

出錯後,並沒有處理便直接引入系統進行。

異常處理是否得當。

錯誤描述中是否提供了足夠的相關定位資訊。

單元測試應該測什麼

單元測試應該全面覆蓋專案開發的 但是依賴的第三方 不應該被測試。凡是非本專案開發的 都可以認為是第三方 比如,我們專案依賴別的部門提供的儲存服務,連線此服務需要使用他們提供的乙個指令碼,而這個指令碼存放在我們的util目錄中。像這個指令碼,就是所謂的第三方 我用下面這段話來說服領導將這個指令碼從測試...

單元測試應該測試什麼? Right BICEP

單元測試應該測試什麼?right bicep right 結果是否正確?b 是否所有的邊界條件都是正確的?i 能查一下反響關聯嗎?c 能用其它手段交叉檢查一下嗎?e 你是否可以強制錯誤條件發生?p 是否滿足效能要求?結果是否正確 這 個最簡單不過了,就是看程式執行之後的結構和文件是否一致。當然可能很...

單元測試應該測試什麼? Right BICEP

單元測試應該測試什麼?right bicep right 結果是否正確?b 是否所有的邊界條件都是正確的 i 能查一下反響關聯嗎?c 能用其它手段交叉檢查一下嗎 e 你是否可以強制錯誤條件發生?p 是否滿足效能要求?結果是否正確 這個最簡單不過了,就是看程式執行之後的結構和文件是否一致。當然可能很多...