PR

テスト設計は上流工程で実施

 まず最初に考えたいのは,テスト設計を実施する時期である。多くの現場では,「テストを実施する直前」になってテスト設計を実施し,それがテストの“敗北”につながっているからだ。

 なぜテストの直前にテスト設計をしてはいけないのか。TISの鈴木三紀夫氏(技術本部 基盤技術センター 主査)は,「仕様変更が大きく関係する」と説明する。開発現場では通常,仕様書や設計書のミスが見つかり,仕様変更になることが多い。だが,見つかった時期によって,手戻り工数は大きく変わる。もしテスト工程でこうしたミスが見つかれば,テストどころではなくなり,大きな手戻りを招くことになる。

 鈴木氏によれば,テスト設計を実施すると「仕様書や設計書のミス」を発見しやすいという。「そもそもテスト項目を抽出できない仕様書や設計書には何らかの問題がある。テスト設計は仕様書や設計書を参照しながら進めるので,“テスト”という観点でレビューすることになる」(鈴木氏)。

 だからこそ,上流工程でテスト設計を実施すれば,手戻りリスクを減らせるわけだ。にもかかわらず,開発の現場ではテスト設計が後回しになる。日立ハイテクソリューションズの佐藤純氏(品質保証部 生産技術グループ グループリーダー)は,そこには二つの理由があると指摘する。一つは,上流工程でテスト設計書を作っても,すぐにそれを使わないこと。多忙を極めるエンジニアにとっては,後にできることは後に回そうと考えるのが自然だ。もう一つは,仕様はそもそも変わるもの。だからテスト設計書を先に作っても,度重なる変更に振り回されるだけ,と考える。そのため現場では,要件や仕様がある程度固まった段階で,テスト設計を実施する。だが佐藤氏は,こうしたやり方にメスを入れる必要があると強調する。

 図2に示したのは,従来型のV字モデルの開発プロセスと,テスト設計を上流工程で実施するW字モデルの開発プロセスの例。V字モデルでは,テスト設計の実施時期が明確ではない。このため,先のような理由から,どうしても実施時期が後ろにずれてしまう。

図2●上流工程で仕様や設計のミスを発見・修正するW字モデル
図2●上流工程で仕様や設計のミスを発見・修正するW字モデル
上流工程でテスト設計を実施する「W字モデル」は,仕様や設計のミスを早い段階で発見・修正できる。その結果,テスト工程ではバグの発見に専念できる
[画像のクリックで拡大表示]

 一方のW字モデルは,要求定義でシステムテスト設計,基本設計で結合テスト設計,詳細設計で単体テスト設計――という具合に,上流工程でそれぞれ対応するテストの設計を実施する。このタイミングでテスト設計書を作れば,仕様書や設計書のミスを早期に発見できる。テストの段階では本来の,ソフトウエアのバグの発見と修正に専念できるわけだ。

 実際,開発の現場では,W字モデルの導入を積極的に進めている。例えば日本IBMでは2006年1月,テストを専門とする支援チーム「テスト技術推進」を設置。その大きな役割が,上流工程におけるテスト設計の実践と定着である。同チームに所属する山上克也氏(ストラテジー&コンピテンシー ソフトウェアエンジニアリング テスト技術推進 担当)は,上流工程におけるテスト設計を推進してきた約1年をこう振り返る。「実際に上流工程でのテスト設計を続けていくと,後工程で仕様書や設計書のミスが減る。まだ具体的な成果は出ていないが,そのメリットは次第に認識されるだろう」。

 TISの鈴木氏も,複数の開発プロジェクトでW字モデルを適用し,高い効果を得た。「当初は,上流工程における作業やメンバーが増えることに,プロジェクト・マネージャが戸惑った。だが,結果的に後工程の工数が減ったので,W字モデルの重要性や意義を理解してくれた」(鈴木氏)。

「漏れなく」と「絞る」を両立する

 図3に,一般的なテスト設計の手順を示した。(1)テスト対象の分析と分解,(2)テスト項目の設定,(3)テスト項目の絞り込み,(4)テストケースの作成,(5)テスト項目とテストケースの関連付け――という五つのステップを踏む。 この中で山場となるのは,(2)と(3)である。テスト項目の設定で「有効打の不足」を,テスト項目の絞り込みで「時間切れ」をそれぞれ克服するわけだ。

図3●テスト項目の「設定」と「絞り込み」が山場
図3●テスト項目の「設定」と「絞り込み」が山場
テスト設計では,テスト対象を分析・分解した上で,具体的なテスト内容とテスト結果の期待値を設定する(これを「テスト項目」と呼ぶ)。さらにテスト項目に優先度や重要度を付けて絞り込むほか,テストケースを作成してテスト項目に関連付ける
[画像のクリックで拡大表示]

 では,次回から二つの山場について具体的なテクニックを見ていこう。