読者です 読者をやめる 読者になる 読者になる

ソフトウェアの品質管理

あるプロジェクトで、テストに対する評価基準値はありますか?と聞かれた。

ソフトウェア品質というやつ。大手メーカーで作業していたときにやったことがある。

テスト密度は、プログラムの量に対して、どれだけのテスト項目を作成すれば適正であるかという指標値。

バグ密度は、プログラムの量に対して、どれだけのバグが検出されれば適正であるかという指標値。

これらを、単体テスト結合テスト、総合テストに対して、新規作成時と改修時の値を決める。

そして、指標値に、ある程度の幅を持たせ、テスト件数とバグ件数がそれに収まっていれば十分なテストがされた、十分にバグが検出されたと判断する。

現場で作業する人は、そんな単純なものじゃないだろうと思っているし、何より、忙しいから、そんなの煩わしい。

本当はもっと生産的なことに時間を使いたい。

でも、管理者は数値しか見ないというジレンマ。

無理矢理、テスト件数を増やしたり、バグを増やしたり、隠したり。。

弊社には品質部門がなく、指標値がないので、調べてみた。

IPA「ソフトウェア開発データ白書 2014-2015」にプログラム言語cobol, c, vb, java結合テスト、総合テストの値が公表されている。

いろいろな現場で運用されているはずなのに、意外と情報がない。(社外秘なのかな)

そして、私のプロジェクトはphpで、単体テストの指標値も必要なので、それらの値を基に考えてみた。

 

・テスト 密度

単体テスト(改修)の基準値は結合テストの2倍とする

単体テスト(改修)の基準値は結合テストの3/2倍とする

最小値は基準値の2/3倍とする

最大値は基準値の3/2倍とする

 

・バグ密度

単体テストの基準値は結合テストの2倍とする

最小値は基準値の1/2倍とする

最大値は基準値の2倍とする

 

phpcobol, c, vb, javaの平均値とする

 

テスト密度(ksあたり)

言語工程新規改修
最小値基準値最大値最小値基準値最大値
cobol 単体 26.7 40.0 60.0 36.4 54.6 81.9
結合 13.3 20.0 30.0 24.3 36.4 54.6
総合 3.3 5.0 7.5 8.3 12.4 18.6
c 単体 50.7 76.0 114.0 57.7 86.6 129.8
結合 25.3 38.0 57.0 38.5 57.7 86.6
総合 7.3 11.0 16.5 20.0 30.0 45.0
vb 単体 26.3 39.4 59.1 63.8 95.7 143.6
結合 13.1 19.7 29.6 42.5 63.8 95.7
総合 4.1 6.1 9.2 18.9 28.4 42.6
java 単体 36.1 54.2 81.3 60.2 90.3 135.5
結合 18.1 27.1 40.7 40.1 60.2 90.3
総合 5.5 8.2 12.3 10.8 16.2 24.3
php 単体 34.9 52.4 78.6 54.5 81.8 122.7
結合 17.5 26.2 39.3 36.4 54.5 81.8
総合 5.1 7.6 11.4 14.5 21.8 32.6

 

バグ密度(ksあたり)

言語工程新規改修
最小値基準値最大値最小値基準値最大値
cobol 単体 1.2 2.4 4.8 1.0 2.0 4.0
結合 0.6 1.2 2.4 0.5 1.0 2.0
総合 0.2 0.3 0.6 0.2 0.3 0.6
c 単体 1.3 2.6 5.2 1.3 2.6 5.2
結合 0.7 1.3 2.6 0.7 1.3 2.6
総合 0.2 0.3 0.6 0.2 0.3 0.6
vb 単体 1.2 2.4 4.8 1.4 2.8 5.6
結合 0.6 1.2 2.4 0.7 1.4 2.8
総合 0.2 0.3 0.6 0.3 0.6 1.2
java 単体 1.5 3.0 6.0 1.3 2.6 5.2
結合 0.8 1.5 3.0 0.7 1.3 2.6
総合 0.2 0.3 0.6 0.1 0.2 0.4
php 単体 1.3 2.6 5.2 1.3 2.5 5.0
結合 0.7 1.3 2.6 0.6 1.3 2.5
総合 0.2 0.3 0.6 0.2 0.4 0.7

※色付セルはIPA「ソフトウェア開発データ白書 2014-2015」から中央値を抜粋

ブログで表をつくるのにExcel to HTMLが非常に便利でした。

自分の経験からしてみても、なかなかそれっぽいのではないかと思う。

とりあえずこれで運用してみる。

 

※2016/6/14 平均値を中央値に変更しました。