この計算ツールでできること
本ツールは、ソフトウェア開発の現場で広く使われる2つの品質指標を計算します。1つはテスト密度(コード規模に対してどれだけのテストケースを用意したかを表す指標)、もう1つはバグ密度(コード規模に対してどれだけの不具合が検出されたかを表す指標)です。いずれもLOC(コード行数)あたり、およびKLOC(1,000行あたり)の両方で算出します。業界の慣例としてはKLOC単位での報告が一般的です。地域や国による特別なルールはなく、どこでも共通して使える指標です。
使い方
実施したテストケース数、検出したバグ件数、そしてソースコードの規模を入力してください。コード規模については、行数そのまま(LOC)で入力するか、1,000行単位(KLOC)で入力するかを選べます。計算ツールが内部でLOC(実行数値)に換算したうえで計算するため、各種密度は自動的に算出されます。
計算式の考え方
まずコード規模を正規化します。\( \text{locLines} = \text{loc} \times \text{factor} \) とし、factorはLOCのとき1、KLOCのとき1000になります。続いて、
$$\text{Test Density} = \frac{\text{Test Count}}{L} \times 1000, \qquad \text{Bug Density} = \frac{\text{Bug Count}}{L} \times 1000$$LOCあたりのテスト密度 = テスト件数 ÷ locLines、LOCあたりのバグ密度 = バグ件数 ÷ locLines で求めます。KLOCあたりの値は、LOCあたりの値に1000を掛けるだけです。なお、テスト件数とバグ件数は整数のカウント値であり、スケーリングは行いません。
計算例
テストを500件実施し、バグが25件見つかり、コード規模が10 KLOCだったとします。正規化したコード規模は \( 10 \times 1000 = 10{,}000 \) LOC です。テスト密度は \( 500 \div 10{,}000 = 0.05 \) 件/LOC、すなわち 50 件/KLOC となります。バグ密度は \( 25 \div 10{,}000 = 0.0025 \) 件/LOC、すなわち 2.5 件/KLOC です。
よくある質問
なぜLOCあたりとKLOCあたりの両方を表示するのですか? LOCあたりの値は非常に小さく読み取りにくいため、業界では慣例的にKLOC単位で報告します。両者が示す情報は同じで、一方を1000倍したものがもう一方になるだけです。
結果が空欄やエラーになるのはなぜですか? LOCが0の場合、密度は数学的に定義できません(0での除算になります)。そのため計算ツールは無限大を表示せず、エラーを返します。
プロジェクト間でこれらの数値を比較できますか? LOCの数え方のルールが一致している場合に限り比較できます。コメント行や空行を行数に含めるかどうかは、密度の値を大きく左右します。基準を統一して数えるようにしてください。