這個計算器能做什麼
本工具可計算兩個軟體工程中常用的品質指標:測試密度(相對於程式碼規模,你撰寫了多少測試案例)與缺陷密度(相對於程式碼規模,發現了多少缺陷)。兩者皆同時以每 LOC(程式碼行數,Lines Of Code)與每 KLOC(千行程式碼)呈現,因為 KLOC 是業界慣用的回報單位。這是一項通用指標,沒有任何地區或國家的特定規則。
使用方式
輸入已執行的測試案例數、發現的缺陷數,以及原始程式碼的規模。接著選擇程式碼規模的單位是原始行數(LOC)或千行(KLOC)——計算器會先將數值換算為原始 LOC,再進行運算。所有密度數值都會自動推算出來。
公式說明
首先將程式碼規模標準化:
$$\text{locLines} = \text{loc} \times \text{factor}$$其中 LOC 的係數為 1,KLOC 的係數為 1000。接著,
$$\text{Test Density} = \frac{\text{Test Count}}{\text{locLines}}, \qquad \text{Bug Density} = \frac{\text{Bug Count}}{\text{locLines}}$$每 KLOC 的版本只需將每 LOC 的數值乘以 1000 即可。測試案例數與缺陷數皆為純整數計數,不會被縮放。
實際範例
假設你執行了 500 個測試、發現 25 個缺陷,程式碼規模為 10 KLOC。標準化後的規模 \(= 10 \times 1000 = 10{,}000 \text{ LOC}\)。測試密度 \(= 500 / 10{,}000 = 0.05\) 測試/LOC,即 50 測試/KLOC。缺陷密度 \(= 25 / 10{,}000 = 0.0025\) 缺陷/LOC,即 2.5 缺陷/KLOC。
常見問題
為什麼要同時提供每 LOC 與每 KLOC?每 LOC 的數值非常小、不易閱讀,因此業界慣例是以每 KLOC 回報。兩者承載的資訊完全相同——其中一個就是另一個乘以 1000。
為什麼結果是空白或錯誤?如果 LOC 為零,密度在數學上沒有定義(除以零),因此計算器會顯示錯誤,而非無限大的數值。
這些數字能在不同專案之間比較嗎?只有在 LOC 的計算規則一致時才行。請一致地決定是否計入註解行與空白行,因為這項選擇會大幅改變密度的數值。