品質向上につなげる5つのメトリックス
続いて登壇したのは、ソフトウェアテストの専門会社エス・キュー・シー 代表取締役社長の倉田克徳氏。倉田氏は同社を立ち上げるまで、SIベンダーやITベンダーでQCやQAに従事してきた。
倉田氏はソフトウェア開発において「短納期」「低コスト」「高品質」が求められることによって、「QCDのバランスを適正に保つのは難しい状況に陥っている」と語る。また開発対象システムの稼働環境や接続環境、データ環境などが多様化していることから、何と何がつながり、どう動くか予想がつかないため、テストを実施しても、すべてのバグを見つけることはできず、制御できない状況ができているのも事実だと言う。このような環境変化に伴い、テスト環境も変化している。
「デバイスのクラウド接続など、組み込み系と業務系の区別がなくなりつつある」と倉田氏は指摘。またシステムが稼働後に五月雨式にアップデートされたりすることも多く、「システムテスト」「移行テスト」「運用テスト」を、ツールを活用してテストをやり続けなければならいなど、システム品質の担保方法にも変化が起こっているというのだ。もちろん、このようなテスト環境の変化に伴い、ツールも進化し、その活用率は向上している。
ではこのような状況の中で、QCDのバランスを保ちながらソフトウェア開発をおこなうにはどうすればよいのか。
そもそも品質を管理するには、適切なデータ収集、分析といった定量分析が欠かせない。「分析指標を念頭に置かずにデータを収集したり、分析目的が明確でないままデータを分析したりしても、意図した結果は得られない」と倉田氏は言う。このような適切な定量分析のために必要となるのが、本セッションのテーマであるメトリックスだ。倉田氏は、重要なメトリックスとして5つの例を取り上げた。
第一のメトリックスは機能カバレージ(機能エリア)における不具合発生率の分析である。「これを実施することで、ある機能における『不具合数』『全テストケース数』『消化テストケース数』から、不具合出現率やリスク予想を算出し、全体にどのくらいのリスクがあるか判断できる。大手メーカーのQCやQAでは当たり前の手法だ」と倉田氏は語る。未来に起こる不具合のリスクは過去のデータを分析することで予想できるからだ。ソフトウェアの場合は「ツールからはき出された結果を、このような観点から分析することでバグを出すリスクを減らせるようになる」と倉田氏は説明する。
第二のメトリックスは不具合相関分析。これを実施することで、開発している機能やテストフェーズ、バージョン、担当者などの情報から、不具合の原因がどこにあるのか、どのような条件で不具合が発生しているのかといったことがわかる。「不具合の原因や要因、条件の絞り込みができる。機能×フェーズの不具合相関分析は、再現がレアなバグに有効だ」と倉田氏は説明する。フェーズ×担当者の不具合相関分析では担当者の検出能力、フェーズ×テストケースではテストケースの不具合検出能力がわかる。
「注意しないといけないのは、例えばフェーズ×担当者の不具合相関分析で、バグが出なかったとしても、開発者の能力が高く品質が高いソフトだったのか、またテスト担当者の能力が低くてバグが検出できなかったということも考えられる。フェーズ×テストケースにおいても同様で、テストケースの設計や粒度が適切ではないことも考えられるからだ。いずれにしても品質は人に依存することを念頭に置いておくこと」と倉田氏は指摘する。
第三のメトリックスは傾向分析(時系列変動)。これを実施することで終了判断や目標判断を把握することができる。例えば時系列(日時)の累積不具合件数による傾向分析では、不具合収束曲線にして表し、終了判断に活用する。しかし「それだけではもったいない」と倉田氏は指摘する。経営陣から「もう少し品質を上げてほしい」「これぐらいの品質を目指してほしい」と言われたときの分析指標としても使えるからだ。第三のメトリックスを活用することで、経営陣に対して、QCDの適切なアセスメントが可能になる。
また、時系列の実行テストケース件数の傾向分析では、生産性やテストケース消化率(テストケース実行終了予想)ができる。ただ、ここで忘れてはならないのが、テストのカバレージである。自動テストは、いかに回帰テストを繰り返し行い、カバレージを上げていくかで効果が変わる。「テストのカバレージには、機能のカバレージと実行のカバレージの2種類がある。そのいずれのカバレージに対しても重み付けをきちんと管理し、適切に実行しなければテストの品質が上がらない」と倉田氏は指摘する。
第四のメトリックスは乖離分析。これは進捗や目標品質や生産性などを上げるために無意識にやっていることだ、と倉田氏は言う。進捗表に予想と実績が乖離しているときの、その程度、要因、予測、目標見直しなどに用いられるが、大事なのは、その乖離の幅の対策があらかじめ講じられているかどうか。「例えばこれくらいの乖離であれば人で手当てできる、ここまで開くともう一度プロジェクトを立て直さないといけないというように、どこまで乖離したらどういう対策にするのか、その管理者が対策を講じているかを意識して、乖離分析を活用するのが望ましい」と倉田氏は説明する。
第五のメトリックスは、テストの進捗を考える上で「テスト消化率進捗」と「テスト網羅率進捗」という2つの観点を持つことだ。「この2つの指標を比較検討して、正確なテストの進捗状況を捉えることで、遅れの対策や効率的なバグの発見を推進することができる」と倉田氏。このような2つの指標をより磨くため、同社では社内の技術者に演習を実施している。その演習内容も公開された。披露されたお題は「網羅率を考慮した進捗管理の観点で翌日の実施計画を立てる」「あるテストの進捗上から弱点を分析する」というもの。
「品質向上につなげるためには、分析目標のあるテスト計画をすること。そして収集されたデータを分析に沿って適切に分析することだ。これを実践するためにも、テスト全般の知識を身につくような人材育成にも注力して欲しい」倉田氏は最後にこう語り、セッションを終えた。