定義
代碼危險度是在一個程式在code的層面,某一個語句引起程式錯誤的機率。概念的提出(Xiaozhen Xue, Akbar Namin. 2012)本質上把軟體錯誤排查映射為一個機率問題。公式
其中
ef: 執行該語句,失敗的測試用例數目,
ep: 執行該語句,成功的測試用例數目,
nf: 不執行該語句,失敗的測試用例數目,
np: 不執行該語句,成功的測試用例數目。
方法
對於一個錯誤程式,可以通過衡量每個代碼的危險度,來進行代碼排序,最後對代碼排查以定位錯誤。基本的由以下四步完成。1)泡測試用例,獲取覆蓋信息
2)對於每個語句,建立cross table
3)基於corss table, 計算每個語句的代碼危險度
4)對每個語句降序排列,排查錯誤