cmmi成熟度レベル別に見たソフトウェア品質 の良否に関わ …ml2:ノード3...

11
CMMI成熟度レベル別に見たソフトウェア品質 の良否に関わる要因の複合的分析 2017年11月15日 日本電気(株) 柳田 礼子

Upload: others

Post on 29-Sep-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CMMI成熟度レベル別に見たソフトウェア品質 の良否に関わ …ML2:ノード3 レビューで摘出が容易なバグが多く混入し,テストでも十分にバグ摘出で

CMMI成熟度レベル別に見たソフトウェア品質の良否に関わる要因の複合的分析

2017年11月15日

日本電気(株) 柳田 礼子

Page 2: CMMI成熟度レベル別に見たソフトウェア品質 の良否に関わ …ML2:ノード3 レビューで摘出が容易なバグが多く混入し,テストでも十分にバグ摘出で

2 © NEC Corporation 2017

狙い

品質の良否に影響する要因について複数の要因の関係を成熟度レベル毎に分析

成熟度レベルに応じた効果的な対策を実行することで出荷後品質を向上させる

背景 当社は品質第一を掲げている 品質の良し悪しに影響を与える要因は単一ではない場合が多い 成熟度レベルを向上させるためには多くの労力と期間を要する

Page 3: CMMI成熟度レベル別に見たソフトウェア品質 の良否に関わ …ML2:ノード3 レビューで摘出が容易なバグが多く混入し,テストでも十分にバグ摘出で

3 © NEC Corporation 2017

▌対象プロジェクト

特定顧客向けのシステムインテグレーションプロジェクト

2014年度に開発完了

ウォーターフォール(V字)モデルを適用

▌分析対象件数

分析対象データ

成熟度

レベル(ML)

プロジェクト

件数

ML1との

達成率の差※

1 317 -

2 138 +13.3pt.

3 67 +21.8pt

合計 522 -

(※)出荷後バグ密度(件/KL)実績値を、予め定めた所属組織の品質基準と比較してSW品質の良否を判断⇒ プロジェクトを「達成」と「未達」に分類⇒ 各成熟度レベルの「達成率」を「達成」件数/プロジェクト合計件数 で算出

表の数値は、成熟度レベル1の達成率(%)を基準としたポイントの差の値

成熟度レベルが上がるにつれて達成率が向上

Page 4: CMMI成熟度レベル別に見たソフトウェア品質 の良否に関わ …ML2:ノード3 レビューで摘出が容易なバグが多く混入し,テストでも十分にバグ摘出で

4 © NEC Corporation 2017

メトリクス

▌成熟度レベル(ML)別のメトリクスの値

(対応するメトリクス全体の平均値で割った相対値)

メトリクス 単位ML1 ML2 ML3

達成 未達 達成 未達 達成 未達

開発規模 KL .309 .662 .184 .661 .144 .217

上工程バグ摘出率 % 1.071 .996 .986 .950 .983 .942

上工程工数/KL 人時/KL .708 .537 .773 .776 .835 .834

テスト工程工数/KL 人時/KL .446 .344 .778 .968 .650 .845

上工程レビュー工数/KL 人時/KL .757 .620 .647 .737 .631 .477

テスト項目数/KL 件/KL .626 .537 .534 .620 .951 .634

上工程バグ数/KL 件/KL 1.084 .822 .595 .787 .672 1.220

テスト工程バグ数/KL 件/KL .595 1.142 .773 1.142 .744 1.542

開発規模、テスト工程バグ数は、一貫して未達の方が値が大きい上工程バグ摘出率は、一貫して未達の方が値が小さい

Page 5: CMMI成熟度レベル別に見たソフトウェア品質 の良否に関わ …ML2:ノード3 レビューで摘出が容易なバグが多く混入し,テストでも十分にバグ摘出で

5 © NEC Corporation 2017

分析の流れ

ステップ①

ステップ②

ステップ③

CARTアルゴリズムに基づいて分類木を構築・レベル1と2では分類木が構築された ⇒②・レベル3は分類木が構築されず ⇒③

②-1. 分類木に現れなかった他のメトリクスにおいて順位和検定②-2. 両側検定でp値5%未満となったメトリクスを,分類木で選

択されたメトリクスに加えて相関分析

③-1. 全メトリクスについて「達成」と「未達」の有意差を検定③-2. 最もp値の小さかったメトリクスに着目し、テスト工程の

工程別の値を比較

Page 6: CMMI成熟度レベル別に見たソフトウェア品質 の良否に関わ …ML2:ノード3 レビューで摘出が容易なバグが多く混入し,テストでも十分にバグ摘出で

6 © NEC Corporation 2017

ステップ①:分類木分析

ML1,2では開発規模が大きくなると品質悪化の傾向がある.ただし,ML2はML1と比較すると、約4倍の開発規模のプロジェクトまで品質を制御することが可能.

開発規模

1

0.101 0.101

上工程バグ数.KL

2

0.349 0.349

上工程バグ摘出率

3

0.922 0.922

Node 4 (n = 43)

10

00.2

0.40.60.8

1Node 5 (n = 165)

10

00.2

0.40.60.8

1Node 6 (n = 42)

10

00.2

0.40.60.8

1Node 7 (n = 67)

10

00.2

0.40.60.8

1

開発規模

1

0.463 0.463

テスト工程バグ数.KL

2

0.869 0.869

上工程レビュー工数.KL

3

0.403 0.403

Node 4 (n = 12)

10

00.20.40.60.81

Node 5 (n = 8)

10

00.20.40.60.81

Node 6 (n = 25)

10

00.20.40.60.81

Node 7 (n = 93)

10

00.20.40.60.81

成熟度レベル1の分類木 成熟度レベル2の分類木

Page 7: CMMI成熟度レベル別に見たソフトウェア品質 の良否に関わ …ML2:ノード3 レビューで摘出が容易なバグが多く混入し,テストでも十分にバグ摘出で

7 © NEC Corporation 2017

ステップ②:有意差検定と相関分析(ML1、ML2)

ML1は,設計品質が悪く、レビューでもテストでも適切にバグ摘出できていないPJが多い.ML2では,レビューに十分工数を投入することでテストでの摘出バグを低く抑え,結果的に品質確保できているPJがある.

対象ノード 分析結果の考察

ML1:ノード3 上工程でバグが多く摘出されるとテストでも多く摘出

ML1:ノード6 テストの工数は項目数に比例した安定したテストを実施

ML1:ノード4 設計品質が悪く,レビューで摘出が容易なバグが多く混入し,テストでも十分にバグ摘出できていない

ML1:ノード5 設計品質が悪くても,レビューおよびテストで一定水準のバグを摘出

ML2:ノード3 レビューで摘出が容易なバグが多く混入し,テストでも十分にバグ摘出できていない

ML2:ノード6 「達成」では,上工程レビューに十分工数を投入し,テストでのバグ数が減少している

※ML2のノード4とノード5は、データ件数が少ないため分析対象外

Page 8: CMMI成熟度レベル別に見たソフトウェア品質 の良否に関わ …ML2:ノード3 レビューで摘出が容易なバグが多く混入し,テストでも十分にバグ摘出で

8 © NEC Corporation 2017

ステップ③:工程別データの有意差検定 (ML3)

徐々に積み残されたバグがST工程で検出され,工数不足となって十分に品質を確保できないまま出荷している場合に「未達」となる傾向がある.

分類木が構築されないため、全メトリクスについて「達成」と「未達」の中央値を有意差検定

⇒「テスト工程バグ数/KL」が最もp値が小さい(0.087)

⇒テスト工程に着目してさらに工程別に中央値比較

メトリクス p値 達成 未達

UT工程テスト工数/KL .945 .677 .532

IT工程テスト工数/KL .812 .488 .587

ST工程テスト工数/KL .338 .456 1.271

UT工程テスト項目数/KL .702 .584 .392

IT工程テスト項目数/KL .621 .420 .278

ST工程テスト項目数/KL .888 .400 .372

UT工程テストバグ数/KL .134 .578 1.160

IT工程テストバグ数/KL .494 .583 1.014

ST工程テストバグ数/KL .006 .000 2.357

工程別の中央値

※UT:単体テスト IT:結合テスト ST:システムテスト

工数は工程が進むにつれて「未達」は増加,「達成」は減少

テスト項目数は全工程に亘り「未達」は「達成」より少ない

バグ数は全工程に亘り「未達」は「達成」より多い

(ST工程は有意差有)

Page 9: CMMI成熟度レベル別に見たソフトウェア品質 の良否に関わ …ML2:ノード3 レビューで摘出が容易なバグが多く混入し,テストでも十分にバグ摘出で

9 © NEC Corporation 2017

まとめ

成熟度レベル

分析結果 考察

1 中規模以上の開発で品質悪化.

中規模以上の開発で,設計品質が悪く,上工程バグ摘出率が低い場合,上工程でも品質確保されず,テスト工程においても十分なバグを摘出不可.

品質は予測不能である.まずは,基本的な開発管理技術の教育,適用が必要である.

2 大規模の開発では品質悪化.(成熟度レベル1の約4倍の規模までは品質を制御可能)

大規模の開発においても,上工程レビューに十分な工数を投入することにより一定の品質を確保し,テストでの検出バグを低く抑え,結果的に品質確保できているPJがある.

プロセスを標準化して展開し,組織内のプロジェクトの品質底上げを図ることが求められる.

3 徐々に積み残されたバグがテスト終盤で検出され,工数不足となり十分に品質確保できないまま出荷している場合に「未達」になる傾向がある.

実績値をより高い頻度で把握したタイムリーなマネジメントが重要である.

Page 10: CMMI成熟度レベル別に見たソフトウェア品質 の良否に関わ …ML2:ノード3 レビューで摘出が容易なバグが多く混入し,テストでも十分にバグ摘出で

10 © NEC Corporation 2017

今後に向けて

【 Future Work 】• 分析結果を基にした管理基準の設定、適用、効果測定• データの欠損、偏りの影響を考慮した分析

品質の良否に影響する要因について複数の要因の関係を成熟度レベル毎に分析

・CMMIの成熟度レベルで述べられていることがデータで実証された・出荷後品質に影響する複数の要因について知見が得られた

Page 11: CMMI成熟度レベル別に見たソフトウェア品質 の良否に関わ …ML2:ノード3 レビューで摘出が容易なバグが多く混入し,テストでも十分にバグ摘出で