オルタナティブ・ブログ > 森崎修司の「どうやってはかるの?」 >

計測できそうでできない多くのこと。エンピリカル(実証的)アプローチで。

派生、保守開発において 変更規模 ≒ 変更行数 か?

»

現状、多くのソフトウェア開発では母体を流用したり改変したりしている。プロダクトラインを前提とした場合や開発対象を非常に小さく保った場合でも、他プログラム、他システム、他サービスとの連携を考えないといけないだろう。

既存のものをどれくらい流用したかを示すためのメトリクスとして変更率(流用率)が使われることが多い。変更率はソースコード行数で計数されることが多く、単純に既存のソースコードの行数と変更、新規に追加したソースコード行数の比で表していることが多い。変更率によってテスト規模や不具合密度を算出して、品質の参考値にする。

ただ、上述のようなシンプルな方法で変更率をはかると、かなり複雑なソースコードの1行も、ロジックがほとんど含まれない1行も同じ規模になってしまう。実際には、変更によって増えるテストケースや変更による波及範囲なども変更規模として考慮されている必要があるだろう。

単純に行数だけで計測するのは本当は適切ではないので、はかるのはやめましょうということになれば、今度は手がかりがなくなってしまう。そこで、ソースコードファイル単位、クラス単位程度の粒度で機能テストでのテスト規模、非機能テストの結果に与えうる影響を勘案してはどうかと思う。変更規模の算出に必要となる変更行数に重みを付けるということだ。複雑な部分やロジックが難しい部分を変更すると行数以上に変更規模が大きくなる。

Comment(0)