ウォーターフォール

品質分析の実施手法 – ゾーン分析/パレート図 – 品質指標値の取得方法

はじめに

システムやプロダクトには、それらが安定稼働するための品質が求められます。
そのため様々なテストを行うのですが、それでもすべての不具合を取りきることは困難であり、取り残した不具合が本番稼働中に発現することもあります。
しかし、品質というのは目に見えるわけでもないため、潜在している不具合を探し出すのは困難です。

そこで活用するのが品質分析です。

品質分析を行うことで、成果物の品質状況を可視化したり、気づきを得ることができるようになります。
今回は品質分析の具体的な手法について解説します。

品質分析の手法

ゾーン分析

ゾーン分析は品質の定量分析を行うときに活用される手法で、複数の指標値を利用して相関関係を確認する手法です。
主に確認する相関関係は「設計工程」「テスト工程」で次のように比較します。

設計工程
レビュー工数密度/レビュー指摘密度

テスト工程
テストケース密度/不具合検出密度

図のように、それぞれの指標値(下限値、中央値、上限値)を組み合わせて表現することで、縦軸と横軸のゾーンを表現します。

テスト工程のグラフを例にあげると、縦軸がテストで検知した不具合の検出密度です。
KSLOC(1000ステップ数)あたりの不具合発生件数になります。
そして、横軸はKSLOCあたりのテストケース数です。

これを縦軸、横軸で指標値の上下限値を比べたとき、中央のあたりで色付けされている箇所が「指標通りのテストケースを実施し、かつ発生した不具合も指標値の中に納まっているケース」となります。

機能Cを見てみると、不具合の発生件数は少ないですが、テストケース数も少ないです。
もしかしたら、テストが足りないために不具合を検知していない可能性があります。

機能Eでは、大量のテストを行った結果、不具合も相応に多く発生しています。
なぜ、そのような事態になっているのか確認が必要です。
不具合が多いため追加でテストを実施したのか、または他機能より難易度が高くてテストパターンが多かったのか、など背景を調査します。

このゾーン分析を活用するうえで、以下の点を意識しましょう。

途上の品質確認

ゾーン分析を行うのは、工程完了時だけでなく、工程の途上でも実施します。

テスト工程であれば、テスト実施済の機能に対して密度を算出して分析します。
途上段階で必要な対策に気づくことができれば、早期に対処することが出kます。

テスト工程が終わってから気づいても対処する時間はありません。
また、対処を行ってから残りのテストを行ったほうが効率的です。

「ゾーンに収まる」と「品質がよい」は違う

ゾーンに収まるということは「品質がよい」という意味ではありません。
過去のプロジェクト実績と比べて実績値が近い傾向にあるということを意味しているだけです。

いつもと比べて「多い」「少ない」を判断するための比較で使用します。

例えば、すでにリリースされている既存プログラムを流用して新規プログラムとして作成した場合、テストケース数や不具合発生件数は通常より少なくなるはずです。
それなのに、ゾーンの中央あたりまで不具合発生件数が出ている場合、逆に不具合が発生しすぎています。

このように、発生件数と機能特性を見比べながら、それが妥当なのか検討するときの材料として使用します。

このゾーン分析はExcelのグラフ機能で表現できます。
グラフにある「散布図」を使用してください。

パレート図

発生した不具合を現象や原因別、担当者、検知すべき工程などで分類し、発生の仕方に偏りがある箇所が弱点でないか分析します。
その際、多い順に並べた棒グラフに累積和を表す曲線を加えたものがパレート図です。

例えば、特定の担当者が作成した機能で不具合が集中している場合、その担当者が対応した機能について集中的にチェックしたり、指導することは有効です。

また外部インターフェイスに関連した箇所で不具合が多発している場合、その理由について深堀して確認します。
その結果、設計時に参照していた相手側の設計書の精度か低かったり、バージョンが古いものを参照していたことが判明した場合、該当する設計部分を見直すことで、気づきにくい不具合を検知することができるかもしれません。

このように、どの事象を集中的に確認すればよいのか棒グラフを見ることで判断することができます。

全ての発生原因に対して原因を深堀するのは時間がかかり非効率的です。
どこまでの原因を確認するのか計画しておくことで分析の判断がしやすくなります。
そこで使用できるのが、パレート図にある累積比率です。

例えば、累積比率が50%の原因まで分析するようなルールがあれば、図でいう原因のA、B、Cの3個が分析対象とすることができます。

このパレート図もExcelのグラフ機能で表現できます。
グラフの中に「パレート図」があるので、そちらを使用してください。

品質指標値の取得方法

品質分析で使用する品質指標値の求め方について解説します。

品質指標値とは、過去の実績データから、「これくらいの規模であれば、これくらいの件数になる傾向がある」という値です。

この過去も色々あり、組織、開発言語、業種によって変わってきます。
プロジェクトで使用する品質指標値は、それらの背景が近いデータを使用することが望ましいです。

IPAのソフトウェアデータ白書にも指標値データはありますが、様々な会社の集合データなので、これから開始するプロジェクトに合うかわかりません。
そのため会社や組織が自前の実績データを利用して品質指標値を定義するのが一般的です。

この品質指標値を算出するには、過去データを収集したうえで「パーセンタイル」を使用します。
パーセンタイルとは、統計において数値を小さい順に並べて100分割し、指定した位置にいる数字を利用することです。
例えば中央値(50パーセンタイル)であれば、数値データの真ん中に位置するものが該当します。
下の表でいくと、P50である4が中央値となります。

平均値を利用しない理由ですが、データの中に飛び抜けて大きい数値が混ざっている場合、そのデータに引きずられて平均値も大きくなってしまうためです。
一部の特例的な実績データに影響されないため、平均値でなくパーセンタイルを使用します。

過去に品質が非常に悪いプロジェクトがあり、そこで極端に大量の不具合が発生したと仮定します。
このプロジェクトは特例なのですが、その実績データが混ざることで平均値が上がってしまうことが懸念されます。
それでは「いつもなら、これくらいの数値になる」から外れてしまいます。
そうならないように、パーセンタイルを使用します。

あとは上限値、下限値ですが、IPAのデータ白書では下限値を25パーセンタイル、上限値を75パーセンタイルで表現しています。
どのパーセンタイルを使用するのか決まりはありませんが、特に理由がなければデータ白書に合わせるとよいでしょう。

パーセンタイルの求め方ですが、こちらもExcelの機能を利用することで取得できます。