3 ソフトウェアテスト見積りでの成功と失敗例
4.2 テスト量と品質目標値
4.2.3 レビューおよびテストでの欠陥検出戦略の統合
ソフトウェアに混入する欠陥の総量を見積り、レビューを含めて各開発工程で欠陥を検出する 数を想定することが重要です。
ソフトウェア製品の欠陥は信頼度成長曲線などを用いて分析すると、設計・実装工程から品質 を作り込んでいれば、テスト工程で検出すべき欠陥は少なく、テスト工程でのコストも少なくな る傾向があります。従って、設計・実装工程のレビューとテスト工程の品質確認テストの両面で 欠陥数を測定して管理すべきで、テスト実施工程のみを対象にした過去の統計値(信頼度成長曲 線などの品質目標値)を基にテスト見積りを行う場合は、そのことを留意する必要があります。
尚、設計・実装工程とテスト工程での欠陥除去数と残存欠陥数との関係を図 4.3 に示します。
(出典) ジャステック社「ソフトウェアテスト見積り-欠陥の混入および除去モデル-」から
図 4.3 設計・実装工程とテスト工程での欠陥除去数と残存欠陥数との関係
ソフトウェアの欠陥は、それぞれの設計・実装工程で作り込まれ(レビューにより一部が除去 されますが)、作りこまれた欠陥は次の工程に引き継がれます。単体テスト前のプログラムには、
基本設計工程~コード化の各工程で作り込まれた欠陥が集積されています。 テストでは、
設計・実装工程でプログラムに作り込まれた欠陥を除去していきますが、全ての欠陥を除去する 欠陥除去数
(テストによる)
欠陥除去数
(テストによる)
欠陥除去数
(レビューによる)
欠陥除去数
(レビューによる)
基本設計 (工程1)
PKG設計 (工程2)
プログラム設計 (工程3)
コード化 (工程4)
単体テスト (工程5)
統合テスト (工程6)
システムテスト (工程7)
欠 陥 数
基本設計 (工程1)
PKG設計 (工程2)
プログラム設計 (工程3)
コード化 (工程4)
単体テスト (工程5)
統合テスト (工程6)
システムテスト (工程7)
欠 陥 数
工程独自欠陥混入数
工程独自欠陥混入数 残存欠陥数
顧客と合意 残存欠陥数
顧客と合意
71
ことはできないので欠陥が残ります(図 4.3 では、これを残存欠陥数と呼んでいます)。 それぞれの設計・実装工程で作りこむ欠陥の密度およびレビューなどで除去できる欠陥の割合
ならびに各テスト工程で除去できる欠陥の割合は、出荷後に検出される欠陥も含めて測定して蓄 積し、基準値として精錬しておくことが重要です。
コラム(PSPでの欠陥除去の考え方)
ここでは、カーネギーメロン大学のソフトウェア研究所(SEI)で発表された PSP(パーソナ ルソフトウェアプロセス)で用いている欠陥除去の考え方を紹介します。
欠陥除去(レビュー、コンパイル、テストなど)をフィルターとして考え、あるフィルター に欠陥を入れると、一定の割合で欠陥が除去されるという考え方をしています。例えば、単体 テストでは、製品に存在する欠陥の内の 45%を除去できると仮定しています。
①用いる尺度
工程欠陥検出率 100×(工程中の除去欠陥数)/(工程入力時の製品の欠陥数)(例え ば、テスト入力時に 100 個の欠陥が含まれていて、テストで 45 個の欠 陥が検出された場合は、45%となる)
②検出欠陥数および残存欠陥数の算出
検出欠陥数 = 工程入力時の欠陥数 × 工程欠陥検出率
工程完了後の欠陥数 = 工程入力時の欠陥数 × (1-工程欠陥検出率)
工程欠陥検出率はレビューやインスペクションでは比較的高く(50%~80%)、テスト工程は 相対的に低い(40%~50%)といわれており[Humphrey]、欠陥の少ないソフトウェアを作るに は、テスト開始時にできるだけ欠陥を少なくしておくことが重要であり、設計レビューも含め て欠陥除去戦略を設定しておく必要がある。また、欠陥の修正に伴う再テストの回数も増加し ますから、テストの生産性を上げるためにも、設計・実装工程でできるだけ欠陥を少なくして おくことが重要です。
テストの戦略として、設計・実装工程における欠陥除去戦略も含めることが望まれます。
このような考え方を前提にすると、レビューやテストで検出した欠陥数から、レビューやテ ストの後に残っている欠陥数を予測することができます。例えば、あるテスト工程で 50 個の欠 陥を除去したとします。そのテスト工程の工程欠陥検出率が 50%だとすると、50 個の欠陥は、
テスト前の製品の欠陥数の半分ですから、テスト完了後にはまだ 50 個の欠陥が残っていると考 えられます。
ソフトウェアの開発中に検出する欠陥はもとより、出荷後に検出される欠陥を含めて測定し て蓄積し、工程欠陥検出率の精度を高めていくことにより、ある工程完了時に残っている欠陥 数を一定の精度以上で予測することができる可能性があります。
73