【開発技術】設計とテストを同時に走らせる!「Wモデル」|情報処理問題1000本ノック
「テストは開発が終わってからやるもの」という常識を覆し、超早期からバグを潰しにいく。Vモデルを進化させた現代的なプロセス「Wモデル」を攻略しましょう。
1. 【 問題 】:開発とテストの並行プロセスモデル
【 問題 】 ソフトウェア開発における「Wモデル」の特徴に関する記述として、最も適切なものはどれでしょうか?
① 開発工程の成果物が完成した後に、初めて対応するテスト工程の準備を開始するモデルである。
② 開発工程(要件定義・設計など)とテスト工程(テスト設計・テストケース作成など)を同時並行で進め、上流工程の段階から仕様の矛盾や不備(バグ)を早期に発見・修正していくモデルである。
③ ソフトウェアの機能を細切れに分割し、1週間から数週間という短い周期(スプリント)の開発を何度も繰り返すモデルである。
④ プログラムのコードを書く前に、まずテストコードを先に作成してから実装を始める開発手法である。
2. 正解:
正解: ② 開発工程とテスト工程を同時並行で進め、上流工程の段階から仕様の矛盾や不備を早期に発見・修正していくモデルである。
3. 解説:コードを書く前に、設計書を「テスト」する
従来のVモデルでは、左側の「設計」が終わってから、右側の「テスト」に進んでいました。しかし、これだと「要件定義や基本設計の段階で埋め込まれた勘違い(バグ)」が、開発の最後(システムテストなど)になるまで見つからないという大問題がありました。これを解決するのがWモデルです。
Wモデルでは、2つのV(開発のV、テストのV)を最初から同時に走らせます。
・システムエンジニアが「要件定義(開発のV)」をしている横で、テストエンジニアは「システムテストの計画・設計(テストのV)」を始めます。
・テストエンジニアが「この仕様だと、こういうパターンでテストできませんよ?」と突っ込むことで、コードを1行も書く前の「設計書の段階」でバグ(矛盾や考慮漏れ)を見つけて直すことができます。
→ これをテストの世界では「シフトレフト(テストの左前倒し)」と呼び、Wモデルはその代表例です。
★ ①:これは従来の「Vモデル」の説明です。
★ ③:これはアジャイル開発(スクラムなど)の説明です。
★ ④:これは「TDD(テスト駆動開発)」という、実装テクニックの説明です(Wモデルはプロジェクト全体のプロセスを指します)。
1. 理解のコツ: 「映画の撮影」に例えてみましょう。台本(設計書)が完成して、撮影(コーディング)が終わってから、最後に編集(テスト)で「あれ?このシーン、前後の繋がりがおかしいぞ!」と気づいたら、俳優を呼び戻して大がかりな再撮影(手戻り)になります。そうではなく、台本を作っている段階から編集者(テスト担当)も一緒に読み合わせをして、その場で矛盾を直していく。これがWモデルです。
2. 試験対策の視点: 「開発とテストを同時並行(並行して進める)」「上流工程からテスト活動を行う」「手戻りの削減」といったフレーズがあればWモデルが正解です。Vモデルとの違いを明確に突いてくるため、2つの違い(終わってからやるV、同時にやるW)を意識して覚えておきましょう。
4. まとめ
「設計とテスト設計をパラレル(同時並行)で走らせ、超早期にバグを刈り取るモデル」。これがWモデルです。バグは下流で見つけるほど修正コストが何倍にも膨らむため、上流で潰せるWモデルは、品質管理・コスト削減において極めて強力なアプローチです。