Index: [Article Count Order] [Thread]

Date:  Tue, 23 Jul 2002 19:19:38 +0900
From:  hkikuchi@....jp
Subject:  [XP-jp:03592] ソフトウェア品質指標についての考察
To:  extremeprogramming-jp@....jp
Message-Id:  <OFB8C33635.DE0BA5EC-ON49256BFF.002AEC75@....jp>
X-Mail-Count: 03592


菊池といいます。

「ソフトウェア品質指標」を「テストユニット+テストカバレッジツール」を利用
して算出する
方法について考えてみました。

※ テストカバレッジツールは、実行されないコード、コードの実行回数、
  全コードステップ数における実行ステップ数の割合など知ることができます。

 「ソフトウェア品質をどのように定量的に測るのか?」との課題に対して、ソフ
トウェア工学
の教科書的には、
「テスト工程で検出された対象ソフトウェアに含まれている不具合数と、過去の知
見から
得られたからバグ曲線により、残存する不具合数を推定し、モジュールの品質を測
る方法」
が一般的だったと思います。
 この統計的手法より品質(信頼度)を計測しようとの試みは、プログラマの立場
からすると
余計な仕事が増えるわりには、効率的な指標となりえないと感じていました。
つまり、問題点として
(1) 過去の統計値(バグ曲線)が今回のプロダクトに適用できる保証はどこにある
のか?
(2) テスト工程とは何処を指し、どこから計測すればいいのか?
  さらに、個人差のバラツキは抑えきれない。
(3) テスティングファーストを実践した場合に、この方法に意味があるのか?
が挙げられると思います。

 そこで「テストユニット+テストカバレッジ」の組み合わせで品質指標を算出する
方法を
紹介したいと思います。
 テストユニットは、ソフトウェア品質を向上させる効果的な手法だと思います。
さらに、
このテストユニットがどれだけ頼りになるのか定量的に把握できれば、品質はより
堅固に
なると考えます。

 市販のカバレッジツールで算出されたテストユニットコードカバレッジ率(全コー
ド
ステップ数における実行ステップ数の割合)は、品質を知る一指標になりえると思
います。
 なぜなら、コードカバレッジが50%のモジュールより90%のモジュールの方が絶対的
な信頼が
あるからです。

このアイデアの利点として、
・プロフラマはテストユニットのカバレッジを上げるために、テスト数を効果的に
向上させる。
 また、プログラムをコードをシンプルにしようとする。
・マネージャと顧客は、ソフトウェアモジュールがどれくらいテストされている
か、客観的
 な指標を得ることができる。
・カバレッジツールとテストユニットの組み合わせなら、誰でも計測することがで
きる。

但し、ソフトウェアは組み合わせの世界であることを考えると、コードカバレッジ
が100%が
品質100%とは言えません。ただ、よき”ものさし”にはなると思えます。

すでに既知なことだったら御免なさい...皆様のご意見伺えれば幸いです。