茫茫網海中的冷日 - 對這文章發表回應
茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1672223 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_60D_00171.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

對這文章發表回應

發表限制: 非會員 可以發表

發表者: 冷日 發表時間: 2015/11/23 7:32:51

白箱測試與黑箱測試(上)

May 29 06:58~08:06

螢幕截圖 2014-05-29 08.05.28

 

今天和明天這兩集來談一個老掉牙的主題: 白箱測試(white-box testing) 黑箱測試(black-box testing)。白箱測試又稱為,
透明箱測試(glass box testing)
,鄉民們可以想像一下,把 待測物(程式碼)放在一個白色(透明玻璃)盒子裡面,測試者在可以看到待測物內部結構的情況之下來執行測試。因為可以看到待測物,也就是程式碼的內部結構所設計與執行的測試,因此白箱測試又稱為 結構測試(structural testing) 邏輯驅動測試(logic-driven testing)--看著程式的結構與邏輯來設計與執行測試案例。

在討論要寫多少(白箱測試)測試案例才足夠的問題時( test case adequacy criteria),可以從測試案例涵蓋多少待測程式的 控制流(control-flow) 資料流(data-flow)來判斷。前者衍生出 敘述涵蓋率(statement coverage) 分支涵蓋率(branch coverage)
等測量測試案例走過多少程式 執行路徑(execution path)比例的方法。後者關注資料的 定義(definition) 使用(use) 釋放(kill)之間的各種路徑,包含All-du-paths(所有定義-使用路徑)、All-uses(所有使用路徑)、All-defs(所有定義-釋放路徑)、All-c-uses(所有計算使用)、All-p-uses(所有斷言使用)、All-c-uses/some-p-uses(所有計算使用/部分斷言使用)、All-p-uses/some-c-uses(所有斷言使用/部分計算使用)等一堆奇奇怪怪的涵蓋率 挑眉質疑


***

看到這邊要考鄉民們一個問題: 「從白箱測試的角度來看,如果測試案例很難寫怎麼辦?」

因為白箱測試要想辦法涵蓋程式各種可能的執行路徑,所以 測試案例很難寫,通常也就隱含著程式的複雜度(complexity)太高,例如過於複雜的控制流程(很長的if-then-else條件式、三層for迴圈、設計不良的例外處理結構等)。要讓白箱測試比較好做,首要之務就是要 降低 結構複雜度(structural complexity)。其次,則是要 避免不可決定性(non-determinism),也就是要避免時好時壞的測試案例(請參考〈 對付時好時壞的測試案例(1):還沒痊癒,就先隔離〉、〈
對付時好時壞的測試案例(2):Lack of Isolation〉、〈 對付時好時壞的測試案例(3):Asynchronous Behavior〉、〈 對付時好時壞的測試案例(4):Remote Services〉、〈 對付時好時壞的測試案例(5):Time〉)。

***

友藏內心獨白:白箱要代碼。


原文出處:搞笑談軟工: 白箱測試與黑箱測試(上)
內容圖示
url email imgsrc image code quote
樣本
bold italic underline linethrough   












 [詳情...]
validation picture

注意事項:
預覽不需輸入認證碼,僅真正發送文章時才會檢查驗證碼。
認證碼有效期10分鐘,若輸入資料超過10分鐘,請您備份內容後,重新整理本頁並貼回您的內容,再輸入驗證碼送出。

選項

Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|