システム開発を行う上で、開発手法とともに知っておくべき用語があります。それは「V字モデル」です。今回はV字モデルだけでなく、V字モデルの発展形であるW字モデルもあわせて解説します。
V字モデルとは?
開発工程とテスト工程をリンクさせたモデル
V字モデルは、システム開発の開始から終了までの流れを表したモデルです。ウォーターフォールが上流から下流へ流れるようなモデルに対し、V字モデルは開発から後の作業を折り返したV字型をしています。V字モデルは、ウォーターフォールの進化版ともいえます。
【ウォーターフォール】
【V字モデル】
V字モデルの特徴は、開発工程とテスト工程で各作業をリンクさせ、検証作業を効率よく実施することです。それぞれのリンクは、以下のようになります。
- 要件定義の内容をシステムテストで確認
- 基本設計の内容を結合テストで確認
- 詳細設計の内容を単体テストで確認
開発作業で作成されたプログラムを、テスト工程ではリンクされた開発工程の内容をもとに確認していくのです。各工程の内容について、さらに詳しく見ていきます。
各工程で行った内容をリンクしたテスト工程で検証する
要件定義では、ユーザーからの要望をヒアリングし、業務要件や機能要件、非機能要件を洗い出して要件定義書として定義します。システムテストでは、要件定義で定義された要件が、開発されたシステムで満たされているかを検証します。
具体的な例としては、以下のような観点で行うテストです。
- 操作後の応答時間やバッチの処理時間など性能は十分か(性能テスト)
- 想定していた負荷に耐えられるか(負荷テスト)
- 障害から決められた時間内に復旧できるか(障害テスト)
次に基本設計では、画面やレポートなどユーザーが目に見えるインタフェースの部分の設計を行います。そのため、結合テストではこれらのインタフェースが設計されたとおりに実装されているかを検証します。
結合テストの具体例は、以下のようなテストがあります。
- 複数のモジュール間で正しくデータ連携ができているか(インタフェーステスト)
- 入力したデータに対し、想定通りの結果が出力されるか(ブラックボックステスト)
詳細設計では、細分化された各機能の内部ロジックを設計します。成果物である詳細設計書を元に、プログラムが開発されます。よって単体テストでは、詳細設計で設計された内部ロジックどおりに開発されているかを検証します。
具体的なテストとしては、分岐や繰り返しといった内部動作をすべて網羅し、想定通りの結果となるか確認するホワイトボックステストがあります。ブラックボックステストは入力と出力のみに着目しますが、ホワイトボックステストはデータや変数の流れに着目します。
V字モデルを活用するメリット
V字モデルを活用すれば、システム開発において大きなメリットが3つあります。V字モデルを活用することで得られるメリットについて解説します。
テスト内容を明確にできる
V字モデルを活用すると、開発工程に対応したテスト工程が決められており、実施するテストの内容が明確になることです。つまり、要件定義の内容を確認するのはシステムテスト、基本設計の内容を確認するのは結合テスト、詳細設計の内容を確認するのは単体テストでそれぞれ確認します。
よって、各テストでは開発工程で実施した内容が正しく実装されているかを検証することになり、テスト内容が決まります。開発工程で実施した内容を漏れなく検証でき、品質向上にもつながります。
作業進捗がわかりやすい
テスト内容が明確であるということは「どのテストをどこまでやればよいか」という作業における最終的なゴールも明確です。そこから、テスト作業にかかるスケジュールも見積やすいです。
また、テスト結果で判明する不具合発生率や修正による工数をチェックしていくことで、精度の高い作業進捗状況を把握できます。これにより、人員調整といったプロジェクト管理も容易になります。
後工程での手戻りのリスクを軽減できる
V字モデルはプログラムに近く機能レベルからテストを行い、確実に不具合を検出し修正したうえで次の工程に進むため、後工程での不具合検出による手戻りのリスクを軽減できます。
たとえば、運用テストで機能レベルの不具合が見つかってしまうと、結合テストを終えている状態であるため、他のプログラムへの影響や設計書の見直しなど、大幅な手戻り工数が発生します。また、検出されたタイミングによっては、リリースまでのスケジュールの調整も必要です。
このようなことを避けるために、なるべく詳細レベルに近いところからテストを行う必要があります。V字モデルでは詳細レベルから段階的に範囲を広げる進め方となっているため、手戻りのリスクを抑えられます。
V字モデルの活用
ここからは、ソフトウェア開発手法の中でV字モデルを活用する例をご紹介します。
V字モデルとウォーターフォール
V字モデルはウォーターフォールから進化したモデルであり、開発の流れは同じです。ウォーターフォールで開発を進める上で、テスト工程を効率よく行い品質を高めるため、テストではV字モデルのやり方が採用されます。
V字モデルとアジャイル
アジャイルとは、顧客の満足度を最大限に高めることを目的としたソフトウェア開発手法です。小さく細分化された機能レベルで開発を行うため、仕様変更に対して柔軟に対応でき、また不具合に対する手戻り工数も少なく済むという特長があります。
アジャイルでは、イテレーションと呼ばれる短い期間の中で「計画」→設計」→「開発」→「テスト」のサイクルを繰り返すことで開発を進めます。このイテレーションの期間内でV字モデルに沿って開発を進められます。
ウォーターフォールは開発対象全体でV字モデルに沿って開発し、アジャイルは細分化された機能ごとにV字モデルに沿って開発してそれを繰り返す、というだけの違いなだけで、どちらもV字モデルを活用できることに違いはありません。
W字モデル
V字モデルをさらに発展させた、W字モデルが存在します。V字モデルとW字モデルの違いを解説します。
W字モデルとは
W字モデルとは、V字モデルで行う流れに加え、開発工程とテスト工程を同時に行います。つまり、開発工程の結果をテスト工程で検証するだけでなく、開発工程の中でも検証を行います。
たとえば、V字モデルでは基本設計の検証を結合テストにて行いますが、W字モデルでは基本設計の工程の中で、作成される設計書に要件定義で決められた内容が網羅されているか、設計に漏れがないかといった観点の検証を行います。
そのため、テストを行うテストエンジニアは上流工程から参加し、設計や開発に関与します。
W字モデルのメリット
W字モデルでは開発工程と同時にテスト工程も行うことで、不具合を早期に発見でき品質を高められるメリットがあります。また、万が一設計の矛盾など設計段階で不具合が見つかった場合でも、開発を行う前に見つけられるため、手戻りの工数を抑えられます。
まとめ
本記事では、V字モデルについて解説しました。V字モデルはシステム開発の基本となる進め方であり、テスト内容が明確になり進捗管理しやすくなるというメリットがあります。
また、V字モデルはウォーターフォールでもアジャイルでも利用できます。システム開発においてエンジニアが今どの作業をしているか、後工程でどうつながるかという点を認識しながら作業を進めることは大変重要であるため、本記事の内容をしっかり理解しましょう。
- カテゴリ:
- キーワード: