「必要なテスト項目が漏れてしまった」「時間切れとなり,必要なテスト項目を実施できなかった」――。こんな苦い経験を持つITエンジニアは多いだろう。テストでバグを取り逃がしてしまう“敗北”は,「有効打の不足」と「時間切れ」の二つが大きな原因だ。

 有効打の不足には,実施すべきテスト項目が漏れてしまったという数の問題と,より効果的なテスト項目があるのに漏れてしまったという質の問題がある。一方の時間切れとは,限られた工数の中で必要なテスト項目を実施できなかったことを指す。

 バグを効率よく狙い撃つ,これが「勝ちにいく! ソフトウエア・テスト」である。では,どうしたら勝てるのか。テスト技術の整備を推進する日立製作所の石川貞裕氏(生産技術本部 担当本部長)は,「テスト設計が決め手になる」と指摘する(図1)。「何をどのようにテストするのかを決めるテスト設計は,テストの成否に大きくかかわる。ところがテスト設計書が納品物から外れることも多く,開発現場では軽視されがち。その結果,テスト設計がおろそかになり,テストの失敗を招いている」。

図1●勝ちにいくソフトウエア・テスト
図1●勝ちにいくソフトウエア・テスト
限られた時間とコストの中で確実にバグを狙い撃つには,テスト対象に対してどのようにテストするのかという「戦術」の良しあしが重要となる。この戦術を決定する「テスト設計」では,W字モデルや各種テスト技法,重み付けなど様々なアプローチを実践する必要がある

 テストに詳しい富士通の藪田和夫氏(生産革新本部 プロジェクト統括部長)も,テスト設計の質を問題視する。「無限にあるテスト項目に対して,時間とコストは限られる。その中でどのテスト項目を実施するのかを決定するには豊富な経験と高いスキルがいる。戦略も戦術もないテストではなく,合理的なテストを設計することが大切だ」。

 テスト設計では,どんなテスト対象に,どんなテストを実施し,どんな期待値を得るのか――を決定する。そこで重要になるのは「いかに少ないテスト項目で,より多くのバグを見つけるか」である。それを実現するには,現場における様々な工夫が求められる。テストに関するコンサルティングを手掛けるエス・キュー・シーの倉田克徳社長は,「W字モデルによって上流工程でテスト設計を実施したり,テスト技法を適切に使い分けたり,優先度や重要度を付けてテスト項目を絞り込んだり,といった現場の工夫が必要になる」と説明する。

 以下では,現場のエンジニアやコンサルタントが実践する,テスト設計の必勝テクニックを紹介する。