品質メトリクス -バグ密度/欠陥密度-
「ソフトウェア開発データ白書」(IPA発行)の最新版(2018-2019)が2018年10月に発行されたので、最新版の品質指標値を引用する。旧版との大きな違いは、「言語別の統計値」の掲載が取りやめになっていることである。その理由を、 ①現状、多種類の言語を用いた開発が一般的になっている。 ②白書データでの言語別の生産性、信頼性などの差は、言語そのものの差ではなく、QCD要求レベルなど他の要因も含んだ開発の結果を示すものであり、誤解を招く恐れがあるため。 としている。 ②に関して、個人的には言語による効率の差(例えば、低級言語と高級言語の差異)があるようにも思うが、白書に指摘があるとおり、業種やシステムの種類(勘定系、基幹系、情報系、など)でQCD要求レベルが異なることを考えれば、そちらの要因の方が大きいのかもしれない。 下記の引用を見てわかる通り、結合テストの標準偏差は総合テストの標準偏差よりも大きい(データのばらつきが大きい)。目標値を設定する場合はその点にも留意した方が良い。以下に新版「2018-2019」の指標値を引用する。 |
SLOC規模あたりの検出バグ数(新規開発) [件/KSLOC](2018-2019) | |||||
P25 | 中央値 | P75 | 平均 | 標準偏差 | |
結合テスト | 0.943 | 1.6 | 2.626 | 2.142 | 2.719 |
総合テスト | 0.112 | 0.32 | 0.833 | 0.557 | 0.667 |
SLOC規模あたりの検出バグ数(改良開発) [件/KSLOC](2018-2019) | |||||
P25 | 中央値 | P75 | 平均 | 標準偏差 | |
結合テスト | 0.308 | 1.101 | 2.425 | 34.093 | 476.47 |
総合テスト | 0.033 | 0.183 | 0.721 | 4.001 | 47.889 |
FP規模あたりの検出バグ数(新規開発) [件/KFP](2018-2019) | |||||
P25 | 中央値 | P75 | 平均 | 標準偏差 | |
結合テスト | 67.6 | 123.7 | 268.6 | 174.1 | 161.5 |
総合テスト | 10 | 32.7 | 54.3 | 43.1 | 44.3 |
FP規模あたりの検出バグ数(改良開発) [件/KFP](2018-2019) | |||||
P25 | 中央値 | P75 | 平均 | 標準偏差 | |
結合テスト | 30 | 57.8 | 102.4 | 164.5 | 358 |
総合テスト | 5.8 | 23.3 | 67.7 | 78.2 | 137.6 |
旧版のデータは以下を参照下さい。
|
「ソフトウェア開発データ白書」(IPA発行)の最新版(2016-2017)が2016年10月に発行されたことにともない、本記事中の品質指標値を更新した。 最新版のデータは赤字で示し、旧版(2014-2015)と対比できる形とした。旧版と新版を比較して、ほとんどの数値に大きな差異はみられないが、ただ一点、結合テスト(改良開発)におけるCOBOLのバグ密度の平均値には大きな差異がある。 |
システム構築における品質管理では、品質を定量的に分析・評価することが重要である。そしてシステム構築のなかのソフトウェア開発部分については、テスト密度やバグ密度などの品質メトリクスを使って、それら指標値の計画値と実績値を比較・評価するということが一般的に行われている。 |
SLOC規模あたりの検出バグ現象数(新規開発) 結合テスト [件/KSLOC] (2016-2017)※ | ||||
開発言語 | P25 | 中央値 | P75 | 平均値 |
COBOL | 0.444 | 1.126 | 1.859 | 2.053 |
C | 0.917 | 1.283 | 1.638 | 1.447 |
VB | 0.407 | 1.239 | 3.688 | 2.639 |
Java | 0.892 | 1.596 | 2.635 | 2.114 |
SLOC規模あたりの検出バグ現象数(新規開発) 結合テスト [件/KSLOC] (2014-2015) | ||||
開発言語 | P25 | 中央値 | P75 | 平均値 |
COBOL | 0.444 | 1.181 | 1.742 | 2.115 |
C | 0.849 | 1.259 | 1.548 | 1.412 |
VB | 0.414 | 1.239 | 2.986 | 2.522 |
Java | 0.821 | 1.467 | 2.524 | 2.015 |
SLOC規模あたりの検出バグ現象数(改良開発) 結合テスト [件/KSLOC] (2016-2017)※ | ||||
開発言語 | P25 | 中央値 | P75 | 平均値 |
COBOL | 0.338 | 1.076 | 2.253 | 10.354 |
C | 0.202 | 0.913 | 1.774 | 2.969 |
VB | 0.868 | 1.396 | 3.578 | 3.336 |
Java | 0.506 | 1.362 | 2.729 | 3.585 |
SLOC規模あたりの検出バグ現象数(改良開発) 結合テスト [件/KSLOC] (2014-2015) | ||||
開発言語 | P25 | 中央値 | P75 | 平均値 |
COBOL | 0.250 | 0.965 | 2.243 | 1.628 |
C | 0.333 | 1.271 | 2.576 | 4.708 |
VB | 0.787 | 1.383 | 3.400 | 2.264 |
Java | 0.535 | 1.294 | 2.802 | 3.922 |
SLOC規模あたりの検出バグ現象数(新規開発) 総合テスト [件/KSLOC] (2016-2017)※ | ||||
開発言語 | P25 | 中央値 | P75 | 平均値 |
COBOL | 0.052 | 0.297 | 0.835 | 0.733 |
C | 0.080 | 0.288 | 0.666 | 0.610 |
VB | 0.060 | 0.241 | 1.068 | 0.908 |
Java | 0.092 | 0.320 | 0.911 | 0.713 |
SLOC規模あたりの検出バグ現象数(新規開発) 総合テスト [件/KSLOC] (2014-2015) | ||||
開発言語 | P25 | 中央値 | P75 | 平均値 |
COBOL | 0.045 | 0.296 | 0.884 | 0.729 |
C | 0.085 | 0.288 | 0.612 | 0.590 |
VB | 0.076 | 0.303 | 1.313 | 0.916 |
Java | 0.088 | 0.323 | 0.901 | 0.832 |
SLOC規模あたりの検出バグ現象数(改良開発) 総合テスト [件/KSLOC] (2016-2017)※ | ||||
開発言語 | P25 | 中央値 | P75 | 平均値 |
COBOL | 0.028 | 0.256 | 0.853 | 1.330 |
C | 0.026 | 0.152 | 0.747 | 0.846 |
VB | 0.168 | 0.498 | 0.923 | 1.563 |
Java | 0.000 | 0.196 | 0.592 | 0.826 |
SLOC規模あたりの検出バグ現象数(改良開発) 総合テスト [件/KSLOC] (2014-2015) | ||||
開発言語 | P25 | 中央値 | P75 | 平均値 |
COBOL | 0.049 | 0.271 | 0.865 | 0.991 |
C | 0.075 | 0.315 | 0.960 | 1.045 |
VB | 0.200 | 0.588 | 1.050 | 1.036 |
Java | 0.000 | 0.196 | 0.699 | 0.938 |
注)表の数値の出展は「ソフトウェア開発データ白書 2014-2015」(IPA:独立行政法人情報処理推進機構)である ※は、「ソフトウェア開発データ白書 2016-2017」より引用 ソフトウェア開発データ白書には、FP(ファンクションポイント)規模あたりの検出バグ数も出ているので、参考までに引用しておく。FPはIFPUGグループのものであり、FP規模は調整前の機能規模(未調整ファンクションポイント)を使用している。 |
FP規模あたりの検出バグ現象数(新規開発) [件/KFP] (2016-2017)※ | ||||
工程 | P25 | 中央値 | P75 | 平均値 |
結合テスト | 58.1 | 128.6 | 248.1 | 195.4 |
総合テスト | 6.3 | 24.5 | 39.6 | 45.0 |
FP規模あたりの検出バグ現象数(新規開発) [件/KFP] (2014-2015) | ||||
工程 | P25 | 中央値 | P75 | 平均値 |
結合テスト | 48.3 | 119.5 | 215.4 | 187.2 |
総合テスト | 6.3 | 22.7 | 37.7 | 46.7 |
FP規模あたりの検出バグ現象数(改良開発) [件/KFP] (2016-2017)※ | ||||
工程 | P25 | 中央値 | P75 | 平均値 |
結合テスト | 48.8 | 96.9 | 192.3 | 163.6 |
総合テスト | 8.2 | 20.9 | 45.9 | 109.5 |
FP規模あたりの検出バグ現象数(改良開発) [件/KFP] (2014-2015) | ||||
工程 | P25 | 中央値 | P75 | 平均値 |
結合テスト | 47.4 | 95.2 | 188.9 | 149.0 |
総合テスト | 8.2 | 17.7 | 44.2 | 110.8 |