連載
» 2015年10月16日 07時00分 公開

山浦恒央の“くみこみ”な話(78):食わず嫌いを直そう、朝顔の観察日記とデータ収集(その6) (3/4)

[山浦恒央 東海大学 大学院 組込み技術研究科 准教授(工学博士),MONOist]

3.4 計測手法の違いによってバラツキが出る

 ソースコード行数やバグ数のカウントは計測者によってバラツキが発生します。例えば、ソースコード行数をカウントする場合、「空行」「カッコ」「コメント」を含めるか除外するかで、行数は数倍の幅で変化します。バグ数のカウントについても同様で、類似バグも1件のバグとして考えるかどうかによって数値が異なります。以下に例を挙げます。

仕様1

(1) 5人分のテストの点数を足す。

(2) 5人分の点数の合計を出力する。


仕様1の「5人分の点数を出力するプログラム」 仕様1の「5人分の点数を出力するプログラム」

 上記は5人分のテストの点数を出力する仕様と、C言語で書いた14行のプログラムです。5人の点数をハード・コーディングする稚拙な処理方式は、現実にはあり得ませんが、単なる例として考えてください。

3.4.1 バグ数のカウント方法

 バグ数のカウントは人によって異なります。例えば、仕様1にバグがあり、正しい仕様は「6人分の点数の合計を計算する」だったとしましょう。その場合、仕様とプログラムは以下のように替わります。

仕様2

(1) 6人分のテストの点数を足す。

(2) 6人分の点数の合計を出力する。


修正後のプログラム 修正後のプログラム

 赤い部分が仕様とプログラムの変更カ所です。修正カ所は5つあり、バグnリポートを書こうと思えば5件書けますし、全部まとめて1件とする人もいるでしょう。計測方法が確立されていない場合、1〜5件のバラツキのあるデータが集まってしまう可能性があります。

3.4.2 ソースコード行数のカウントの方法

 プログラムは、文法規則やコード規約にある程度縛られますが、記述方法は人により異なります。例えば、for文内を{ sum += data[i] }のように1行で書く人もいます。空行の使用方法も、最初プログラムから「空行」を取り除くとソースコード行数は12行となります。また、ヘッダファイルやdefineを含めないとすると、10行となり測定方法によって行数は大きく変化します。行数の数え方は、社内規定や、使用するツールによって統一化されているはずですが、再確認しましょう。

Copyright © ITmedia, Inc. All Rights Reserved.