品質メトリクス -テスト密度-


「ソフトウェア開発データ白書」(IPA発行)の最新版(2016-2017)が2016年10月に発行されたことにともない、本記事中の品質指標値を更新した。
最新版のデータは赤字で示し、旧版(2014-2015)と対比できる形とした。


 

「品質メトリクス -バグ密度/欠陥密度-」に続き、「ソフトウェア開発データ白書 2014-2015」(IPA:独立行政法人情報処理推進機構)からテスト密度を見てみる。
テスト密度に関しても、データ白書では、「FP(ファンクションポイント)規模」と「SLOC(コード行数)規模」に分けて、それぞれの指標値が掲載されている。ここでは前回のバグ密度と同じく、SLOC規模の指標値を取り上げる。
テスト密度に関しても新規開発案件と改修案件(本書では改良開発案件と称している)の、両方の数値が記載されている。
バグ密度のところでも触れたように、改修案件の場合は改修部分だけでなく、改修が母体に与える影響範囲を考慮する必要がある。しかし、データ白書ではこの点は考慮されていないようだ(改修案件については改修規模でテスト密度を算出している)。
改修案件と新規案件のテスト密度(件/KSLOC)を比較すると、母体の影響範囲に対するテスト(いわゆるデグレード・テスト)がある分、改修案件の方がテスト密度が高い。但し、母体の影響範囲の規模は案件毎に様々であろうから、データ白書のデータはバラつきが大きいと思われる。さらにテストケース数は、デグレード・テストをどこまで(範囲)、どの程度の粒度で行うのか(および許容されるテスト期間)などのテスト方針にも左右されるだろう。
データ白書の統計データを見た限りでは、改修案件のテスト密度は、新規開発のおおよそ2倍~5倍になっている。

SLOC規模あたりのテストケース数(新規開発) 結合テスト [件/KSLOC]  (2016-2017)※
開発言語 P25 中央値 P75 平均値
COBOL 5.421 19.562 52.912 35.506
C 22.102 38.000 55.660 42.277
VB 10.974 21.928 41.773 33.047
Java 10.875 27.815 48.273 53.213

 

SLOC規模あたりのテストケース数(新規開発) 結合テスト [件/KSLOC]  (2014-2015)
開発言語 P25 中央値 P75 平均値
COBOL 6.694 20.088 51.225 30.703
C 22.393 38.000 58.567 44.325
VB 7.842 19.660 41.361 31.077
Java 10.576 27.058 46.824 52.816

 

SLOC規模あたりのテストケース数(改良開発) 結合テスト [件/KSLOC]  (2016-2017)※
開発言語 P25 中央値 P75 平均値
COBOL 15.0 41.9 96.5 873.6
C 26.2 60.6 141.6 167.5
VB 18.3 62.0 138.3 142.3
Java 30.5 58.1 143.7 270.6

 

SLOC規模あたりのテストケース数(改良開発) 結合テスト [件/KSLOC]  (2014-2015)
開発言語 P25 中央値 P75 平均値
COBOL 11.6 36.4 73.2 74.5
C 17.7 57.7 199.1 238.4
VB 20.9 63.8 150.5 135.6
Java 26.7 60.2 149.4 259.1

 

SLOC規模あたりのテストケース数(新規開発) 総合テスト [件/KSLOC]  (2016-2017)※
開発言語 P25 中央値 P75 平均値
COBOL 2.370 6.234 18.440 17.192
C 2.834 10.955 17.169 20.709
VB 1.957 6.048 13.362 28.645
Java 2.963 8.297 17.943 16.489

 

SLOC規模あたりのテストケース数(新規開発) 総合テスト [件/KSLOC]  (2014-2015)
開発言語 P25 中央値 P75 平均値
COBOL 1.956 5.041 11.789 14.954
C 2.863 11.000 17.547 30.942
VB 2.400 6.131 14.778 38.247
Java 2.963 8.192 17.943 17.768

 

SLOC規模あたりのテストケース数(改良開発) 総合テスト [件/KSLOC]  (2016-2017)※
開発言語 P25 中央値 P75 平均値
COBOL 5.1 13.0 29.4 223.5
C 10.1 20.3 79.0 83.0
VB 5.5 22.0 52.3 353.8
Java 7.2 16.1 36.3 77.2

 

SLOC規模あたりのテストケース数(改良開発) 総合テスト [件/KSLOC]  (2014-2015)
開発言語 P25 中央値 P75 平均値
COBOL 4.9 12.4 26.3 45.5
C 8.4 30.0 105.5 130.5
VB 6.7 28.4 91.5 96.3
Java 6.1 16.2 42.6 74.7

注)表の数値の出展は「ソフトウェア開発データ白書 2014-2015」(IPA:独立行政法人情報処理推進機構)である。

※は「ソフトウェア開発データ白書 2016-2017」より引用。

 


ソフトウェア開発データ白書には、FP(ファンクションポイント)規模あたりのテスト密度も出ているので、参考までに引用しておく。FPはIFPUGグループのものであり、FP規模は調整前の機能規模(未調整ファンクションポイント)を使用している。

FP規模あたりのテストケース数(新規開発) [件/KFP]  (2016-2017)※
工程 P25 中央値 P75 平均値
結合テスト 753.7 1,961.4 3,060.4 3,035.0
総合テスト 199.3 421.7 1,071.4 932.4

 

FP規模あたりのテストケース数(新規開発) [件/KFP]  (2014-2015)
工程 P25 中央値 P75 平均値
結合テスト 687.1 1,860.1 2,978.1 2.943.3
総合テスト 199.5 423.7 1,119.2 989.4

 

FP規模あたりのテストケース数(改良開発) [件/KFP]  (2016-2017)※
工程 P25 中央値 P75 平均値
結合テスト 1,636.6 3,320.6 6,585.4 7,055.8
総合テスト 501.1 1,224.1 1,974.8 5,293.3

 

FP規模あたりのテストケース数(改良開発) [件/KFP]  (2014-2015)
工程 P25 中央値 P75 平均値
結合テスト 1,596.2 3,131.8 6,976.2 7219.3
総合テスト 483.5 1,195.7 1,860.1 5,336.9

 


データ白書では、主要なデータ間の相関関係にも言及しているので、代表的なものを引用しておく。
本書にも注意書きがあるが、掲載されている回帰式は収集したデータを統計処理した結果であり、あくまでも参考値として使用するべきものである。
表中の”R”は相関係数であり、0.85以上は強い相関関係、0.70~0.85はやや強い相関関係があることを表している。
例えば、プロジェクト全体の工期は工数の3乗根に比例する傾向がある(新規開発案件ではやや強い相関関係がみられる)。

回帰式 A B R
プロジェクト全体の工数と工期 (新規開発) 工期=A*(工数)**B 0.44 0.32 0.73
プロジェクト全体の工数と工期 (改良開発) 工期=A*(工数)**B 0.42 0.32 0.69
SLOC規模と工数 (全開発種別、主開発言語混在) 工数=A*(SLOC)**B 6.69 0.68 0.79

 

PJ管理のINDEX

トラックバック

このブログ記事に対するトラックバックURL:

コメント & トラックバック

コメントはまだありません。

Update

2018年2月
« 1月    
 1234
567891011
12131415161718
19202122232425
262728  

Navigation