今回は,テスト項目を絞り込むテクニックを見ていく。

 「テスト項目を絞り込む最も基本的な方法は,優先度と重要度による重み付け。これを地道に評価し,それに基づいて絞り込むことが大事」。こう強調するのは,日本IBMの水橋久人氏(テクニカル・ストラテジー&コンピテンシー 理事)だ。優先度とは,何を先にテストするのかを示したもの。これに対して重要度とは,影響の大きさと,バグが発生する確率を示したものだ。

 水橋氏は「金額に関する処理や,法律に絡む処理については,重要度が極めて高くなる」と指摘。最近では品質リスクに関する点を特に重視すべきとも付け加える。品質リスクには,機能性や性能,信頼性/安定性,エラー処理/回復,運用/保守,他言語対応,互換性,セキュリティ,法令順守(コンプライアンス)――などがあるという。これらについて,求められる要求がどの程度のレベルなのか,またバグが発生する確率はどの程度なのかを明確にする。

 エス・キュー・シーの倉田氏は,「重要度は,他のシステムを止めないことと,業務を停止させないことの二つの点に着目すべきだ」と説明する。仮にシステムが停止しても,他のシステムや,実際の業務を止めずに対応できれば,そのテスト項目の重要度はそれほど高くなくてもいいという。

 このほかにも,優先度や重要度の評価には,様々な観点がある(図1)。例えば,業務の中核となる機能や複雑なロジックを持つ機能,多くのモジュールと関連する機能などは早めにテストしてバグの状況を確認しておきたい。さらに,バグを含むプログラムをよく開発するメンバーについては,バグの発生確率が高いため,必然的に重要度も高くなるようだ。

図1●テスト項目を絞り込む「重要度」の設定例
図1●テスト項目を絞り込む「重要度」の設定例
限られた時間の中で,すべてのテスト項目を確認するには限界がある。そこで開発の現場では,様々な判断基準に基づいて重要度を決定し,テスト項目の絞り込みを実施している。重要度については,影響の大きさとバグが発生する確率の二つの視点で評価する
[画像のクリックで拡大表示]

 これらの重み付けをした結果については「3~5段階ぐらいで評価するのがポイントだ」(豆蔵の大西氏)。ランクを詳細化しすぎると,評価や管理の作業が煩雑になってしまう。また,評価結果は必ず数値で表し,メンバー間で共有することも大事だという。「優先度や重要度が数値化されていないと,現場では判断に困ってしまう。その結果,簡単なテストから実施してしまい,進捗は順調に見えても,後でバグが大量に発生することがある」(大西氏)。