ウォーターフォールモデルの一種に「V字モデル」という手法があります。
V字モデルとは、開発工程とテスト工程の対応関係を定義して表したものです。各工程が順序だてられているため、計画が立てやすく、進捗も分かりやすいという特徴があります。
今回は、「V 字モデル」の考え方と各工程の概要、活用するメリット・デメリットについて解説していきます。V字モデルを有効的に取り入れるために、ぜひ参考にしてみてください。
さらに記事の後半では、開発に並行してテストをする「W 字モデル」という考え方についてもご紹介します。
- もくじ
1.V字モデルとは?
V字モデルとは、ソフトウェアの「開発」から「テスト」、「リリース」までの一連の流れにおける、開発工程とテスト工程の対応関係を表したものです。
V 字の左側が「開発工程」を、V 字の右側が「テスト工程」を表します。
V 字の下の方へ工程が進みコーディングが完了すると開発工程は終了、V 字の頂点である「コーディング」を起点として、テスト工程へと移ります。
ソフトウェア開発の一般的な流れに「ウォーターフォール型開発モデル」があります。
ウォーターフォール型開発モデルでは、1つの工程が完了してから次の工程を進めていくという特徴があります。
具体的には、以下のような流れです。
ウォーターフォール(滝の流れ)になぞらえて、開発工程のことを「上流工程」、テスト工程のことを「下流工程」と呼びます。
このようにウォーターフォール型開発モデルでは、テスト工程は1つの工程として表されますが、実際は、要求定義からコーディングまで1つずつに対応したテストを実施していく必要があります。
そして、上流工程に対応したテスト工程を分割したものを「V字モデル」と言います。
2.V字モデルの各工程と役割
この章ではV字モデルの各工程の役割について、簡単に解説していきます。
2-1 開発工程
まずは開発工程の概要と役割について簡単にご説明します。
要求定義
要求定義とは、システムの発注者である顧客のニーズや、ソフトウェア搭載製品の企画者の要望を整理し、最終的に要求として定義することです。これによってソフトウェアの到達目標が明確になります。
基本設計
要求定義が決まった後は、基本設計を行います。要求項目を実現するために必要なソフトウェアの機能や構成などの基本的な使用をまとめる工程です。
基本設計では、要求をソフトウェアシステムとして実現できる方法にまで落とし込みます。
この段階でシステム全体の「基本設計書」と「機能仕様書」が作られます。
詳細設計
詳細設計では、基本設計で定義した仕様を基に、コーディングに必要な処理の詳細な仕様を決定します。詳細設計の範囲は機能ごとや、モジュールごとで定められます。決定された事項を仕様として記述すると詳細設計書が作成されます。
コーディング
詳細設計が完了後、きちんと意図した動作をするようにソフトウェアを作成します。
2-2 テスト工程
開発工程後のテスト工程についてご説明します。
単体テスト
単体テストは、ソフトウェアの最小単位である「モジュール」ごとに行います。
主に詳細設計書どおりにモジュールが動くかテストし、コーディングされたソフトウェアの論理構造が適切か確認していきます。
結合テスト・機能テスト
結合テストでは、複数のモジュールを組み合わせてテストを行います。詳細設計で定義したモジュール間の連携方法が実現されているか確認していきます。
機能テストでは、組み合わせたモジュールを1つの機能としてテストを行います。内部構造ではなく、機能として正しい役割を果たしているかを確認していきます。
システムテスト
システムテストでは、個々のモジュールや機能を統合した状態で、要件定義の内容が実現しているかを確認します。製品を出荷(提供)する状態に近い形でテストをするので、発注者や企画者、ユーザーの立場から、さまざまな使い方を試して欠陥を検出します。
受け入れテスト
受け入れテストでは、対象のソフトウェアがユーザーの要求を満たしているのか公式に確認します。
行われるタイミングは基本的にリリースの直前でソフトウェアテストの中でも最後に行われることが多いです。
3.V字モデルを活用するメリット
V字モデルを活用するメリットについて解説していきます。
3-1 各工程で何のテストを行うかが分かりやすい
1つ目のメリットは「各工程で何のテストを行うかが分かりやすい」という点です。
V字モデルは、開発工程とテスト工程の対応関係をはっきりと表したモデルのため、工程ごとに対応したテストが分かりやすくなっています。
開発工程とテスト工程の対応関係が曖昧な場合、テストによる品質の保証が難しいため、ソフトウェア開発を行う場合は開発工程とテスト工程を明確にしておくことが重要です。
そうすることで、どの段階でどの部分を、どれくらいの細かさでテストするのかが明確になり、テスト工程をよりスムースに進めることができます。
3-2 作業進捗が分かりやすい
2つ目のメリットは「作業進捗が分かりやすい」という点です。
V字モデルは各工程ごとに対応すべきテストが決められているため、テスト計画が立てやすくなっています。
また、工程の流れが明確なので、全体の進捗状況が把握しやすいです。
3-3 後工程での手戻りのリスクを軽減できる
3つ目のメリットは「後工程での手戻りリスクを軽減できる」ことです。
開発プロジェクトにおいて、手戻りの発生は、工数を大幅に増加させる要因となるため、避けたいものです。
V字モデルでは、各工程でテストを実施するので、早期に不具合を発見し修正することができます。後工程での手戻りリスクを軽減することで、スケジュールの遅れや工数増加を防ぐことにつながるでしょう。
4.V字モデルを活用するデメリット
V字モデルには多くのメリットがある一方でデメリットも存在します。
開発プロジェクトに活用する前に、デメリット・注意点についても把握しておきましょう。
4-1 要件変更に対応しづらい
まず注意したいのが、「要件変更に対応しづらい」という点です。
V字モデルは、工程ごとに対応したテストを着実に進めていくため、途中の要件変更や追加に柔軟に対応するのが難しいです。
そのため、開発途中での要件変更が多いプロジェクトや複雑なプロジェクトに向かない場合があるので注意しましょう。
4-2 重大な問題が遅れて発見される可能性がある
次に、「重大な問題が遅れて発見される可能性がある」という点にも注意が必要です。
V字モデルでは開発工程の後にテスト工程があるため、開発工程で発生した重大な問題が後半で発見される可能性があります。
テスト工程で大きな問題が見つかると手戻りとなり、スケジュール遅延や工数増加につながります。
5.V字モデルの向き・不向き
前章で解説したように、V字モデルにはメリット・デメリットがあります。
そのため、V字モデルのメリットや効果を感じられるプロジェクトで活用することが重要です。
V字モデルに向いているプロジェクトと、向いていないプロジェクトについてご紹介します。
向いているプロジェクト
- 要件が明確で、途中で大きな変更が見込まれないプロジェクト
- 高度な安全性や品質が求められるシステムのプロジェクト
- 開発期間が短期~中期で、明確なプロセス管理が求められるプロジェクト
- ISO、IECなどの規格に従う必要があるプロジェクト など
向いていないプロジェクト
- 要件が曖昧で仕様変更が頻発するプロジェクト
- 短期間で市場投入が求められるプロジェクト
- ユーザーのフィードバックを頻繁に取り入れる必要があるプロジェクト
- イテレーションが求められるプロジェクト
- 複雑かつ大規模なプロジェクト など
6.開発とテストを並行して進める「W 字モデル」
V字モデルをもとに、開発とテストを平行して進める「W字モデル」というものがあります。
概要とメリット・デメリットについて解説します。
6-1 W字モデルとは?
W 字モデルとは、開発初期(要求定義や設計の段階)から開発フェーズとテストフェーズを同時に並行して進めていく考え方のことをいいます。
W 字モデルでは、V モデルを元に、開発の要求定義・設計・実装フェーズで意識的にテストプロセスを関わらせていきます。すなわち、V 字モデルを発展させたテストスタイルといえます。
開発工程では、実装が完了していないとシステムを実際に動作させるテストはできないので、テスト担当者は「テストケースの準備」や、開発工程での「成果物のレビュー参加」などを行います。
そして、テスト工程では、開発側が、発見された不具合を修正する作業をテスト側と協力して進める必要があります。
W 字モデルは、「上流は開発、下流はテスト」のように分断するのではなく、「並走」して進めるということを表しているのです。
6-2 W字モデルのメリット・デメリット
W 字モデルのメリットとデメリットについて解説します。
W字モデルのメリット
W字モデルのメリットは主に以下の2点です。
- テストエンジニアが上流工程に関わることができる
W字モデルでは、テストエンジニアがソフトウェア開発の上流工程(要求定義や設計)から密に関わることができます。
開発当事者ではない第三者の目を通して確認することで、仕様・設計の抜け漏れ、矛盾が発見しやすくなり、早期に仕様の抜け漏れなどの問題を防ぐことができます。
これにより、開発工程から品質の向上にもつながります。 - 上流工程で不具合を発見しやすくなることでコストダウンが期待できる
上流工程で不具合を発見することで、作業の手戻りの発生を抑えることができるため、その分のコストが減少します。
W字モデルのデメリット
W字モデルのデメリットは主に以下の2点です。
- 現状の分析ができていないと導入に失敗する場合がある
W 字モデルの導入に失敗するよくあるケースは、「開発チームが現状の分析を行わずに、W 字モデルの導入に取り組んでしまうこと」です。
新しいことを始めるためには、まず現状を知ることが重要です。そもそも、V 字モデルを実践できていない開発チームが、W 字モデルを導入しようとした場合、その開発はうまくいかないことが多いです。
W 字モデルの考え方を取り入れる前に、現在の開発やテストのプロセスがどうなっているのか、どんな問題があるのか、現状の問題の洗い出しを行う必要があります。まず個々のプロセスを見直し、整理して、どの段階で何を実施すればいいのかを明確にしておきましょう。 - 未経験(または初心者)のエンジニアだとうまく運用できない可能性がある
W 字モデルに参画するテストエンジニアには、実物の無い設計段階からの問題を発見し、開発側に意見を伝える重要な役割があります。
開発の初期段階で、仕様・設計の抜け漏れ・矛盾を発見することができなければなりません。
そのため、W字モデルには経験豊富なテストエンジニアの導入が必要不可欠になります。
開発の初期工程での誤りが原因で発生する不具合の事例を多く経験しているであろう、プロジェクト経験が豊富なエンジニアを参画させることが重要です。
まとめ
V字モデルとは、ソフトウェアの「開発」から「テスト」、「リリース」までの一連の流れにおける、開発工程とテスト工程の対応関係を表したものです。
各工程に対応したテストを実施するため、着実にプロジェクトを進めていくことができます。
一方で途中な仕様変更・仕様追加が発生するプロジェクトには向かない手法でもあります。
取り入れる際は、V字モデルのメリット・デメリットを理解した上で判断することが大切です。
また、開発初期(要求定義や設計の段階)から開発フェーズとテストフェーズを同時に並行して進めていく考え方を表したものが「W字モデル」になります。
V字モデルもW字モデルも導入する場合は、特徴を把握した上で、適切なソフトウェアテストを行うことが重要です。
開発側とテスト側が力を合わせて品質の高いソフトウェアをリリースできるよう、工夫して進めていきましょう。