己を知れば、たったの30秒でバグ数が予測できる山浦恒央の“くみこみ”な話(51)(2/2 ページ)

» 2013年02月19日 08時30分 公開
[山浦恒央 東海大学 大学院 組込み技術研究科 准教授(工学博士),MONOist]
前のページへ 1|2       

3.バグ率を使った残存バグ数の推定

 過去の統計情報からバグ率が分かると、いろいろなタイミングで総バグ数を予測できます。

  1. プロジェクト立ち上げ時 
    プロジェクト立ち上げ時に、何人のエンジニアが何カ月必要かを予測するため、開発するソフトウェアの規模を推定します。実際には、ソースコード行数かFP(ファンクションポイント)を使う場合がほとんどでしょう(この2つの規模見積もりについては、本コラムの第3637回を参照してください)。この時、予測したソースコード行数に過去の「プロジェクトとしてのバグ率」を乗ずると、バグ数を計算できます。例えば、ソースコード数を105KLOCと見積もり、前回、同じような製品を開発した時、全部で83KLOCのソースコードを作り、357個のバグを作り込んだとします。ここから以下のように今回、期待されるバグ総数を推測できます。

    357 / 83 = 4.3(前回の1KLOC当たりのバグ率)
    105 × 4.3 = 451.5(今回のソフトウェア開発で作り込むバグ総数)

    この方法を適用すると、ソースコードが存在するはるか以前に、バグ数を推測できます(まだ「モノ」がないのに、欠陥数が分かるのは、少し不思議な気がしますが)。

  2. コーディング終了時 
    プロジェクト立ち上げ時は、開発規模の見積もりに誤差がありますが、実際にコーディングが終了した時点であれば、かなり正確なソースコード行数を把握できるはずです。このソースコード行数にバグ率を乗じると、精度の高い「バグ数」見積もりが可能となります。

4.バグ率に影響するもの

 プロジェクト全体のバグ率は、「構成人員」と「開発対象となるソフトウェアの分野」に大きく影響されます。

  1. 構成人員 
    プロジェクトの人員が同じですと、バグ率の数値も同じような値になります。プロジェクトのメンバーが入れ替わると、バグ率も大きく変わります。もしも、プロジェクト構成員がそっくり入れ替わった場合は、各個人が担当する部分のソースコード行数と、各個人のバグ率を割り出し、その総和を「総バグ数」として計算するとよいでしょう(少し面倒ですが……)。

  2. ソフトウェアの分野 
    生産性やバグ数に大きく影響します。ソフトウェア設計の複雑性が上がると、バグ率は増加します。例えば、呼び出されるモジュールの順番がいつも同じである「バッチ系」のプログラミングより、コールされる順番がプロセスの優先度によって異なるリアルタイムOS系のソフトウェア開発の方が、バグ率は圧倒的に高くなります(従って、1000ステップ当たりのテスト項目数も、バッチ系は100件程度ですが、リアルタイムOS系では300〜500件と急激に増加します)。

 ソフトウェア開発では、同じプロジェクトメンバーで同じ分野のソフトウェア開発をすることが多いと思われます。この場合は、生産性やバグ率も同じような数値になります。

5.おわりに

image

 プロジェクトマネジャーは、これまで担当してきたプロジェクトがどんなプロジェクトだったか、具体的な数値を使って簡単に説明できます。その具体的な統計データを使用して、これから開発するソフトウェアの品質や総バグ数を推測するのが、今回取り上げた「バグ率による総バグ数予測」です。繰り返しになりますが、簡単に推定できる割に、精度は意外に低くないのでぜひ活用してみてください。

 プロジェクト全体のデータと関連しますが、「自分は、個人としてどんなプログラマーなのか、具体的な数値を使って表現する」ことは、それを意識している人には簡単なことですが、意識していないとどうしてよいか分かりません。そんな方は、プログラム開発が工学であることを認識する第一歩として、本コラムを参考に「自分のデータ」を把握してみてはいかがでしょう。



 次回は、「サンプリング法」を適用した残存バク数の予測法について解説いたします。お楽しみに! (次回に続く)

【 筆者紹介 】
山浦 恒央(やまうら つねお)
東海大学 大学院 組込み技術研究科 准教授(工学博士)

1977年、日立ソフトウェアエンジニアリングに入社、2006年より、東海大学情報理工学部ソフトウェア開発工学科助教授、2007年より、同大学大学院組込み技術研究科助教授、現在に至る。

主な著書・訳書は、「Advances in Computers」 (Academic Press社、共著)、「ピープルウエア 第2版」「ソフトウェアテスト技法」「実践的プログラムテスト入門」「デスマーチ 第2版」「ソフトウエア開発プロフェッショナル」(以上、日経BP社、共訳)、「ソフトウエア開発 55の真実と10のウソ」「初めて学ぶソフトウエアメトリクス」(以上、日経BP社、翻訳)。


「山浦恒央の“くみこみ”な話」バックナンバー
前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.