はじめに
ウォータフォールモデルを理解しているつもりで、V字開発との違いがあいまいでありましたので、ここでまとめたいと思います。
V字モデルとは
V字モデルは、システム開発の開始から終了までの流れを表したモデルです。ウォータフォールが上流から下流へ流れるようなモデルに対し、V字モデルは開発から後の作業を折り返したV字型をしています。V字モデルは、ウォータフォールの進化版ともいえます。
V字モデルの特徴
Vモデルの特徴は、開発工程とテスト工程で各作業をリンクさせ、検証作業を効率よく実施することです。それぞれのリンクは、以下のようになります。
〇要件定義の内容をシステムテストで確認
〇基本設計の内容を結合テストで確認
〇詳細設計の内容を単体テストで確認
開発作業で作成されたプログラムを、テスト工程ではリンクされた開発工程の内容をもとに確認していく。
各工程で行った内容をリンクしたテスト工程で検証する。
1.要件定義では、
ユーザからの要望をヒヤリングし、業務要件や機能要件、非機能要件を洗い出して要件定義書として定義します。→システムテストでは、要件定義で定義された要件が開発されたシステムで満たされているかを検証します。
具体例としては、以下のような観点で行うテスト
〇操作後の応答時間やバッチの処理時間など性能は十分か(性能テスト)
〇想定していた負荷に耐えられるか(負荷テスト)
〇障害からきめられた時間内に復旧できるか(障害テスト)
2.基本設計では、
画面やレポートなどユーザーが目に見えるインターフェースの部分の設計を行います。そのため、結合テストではこれらのインターフェースが設計されたとおりに実装されているかを検証します。
3.詳細設計では、
細分化された各機能の内部ロジックを設計します。成果物である詳細設計書をもとに、プログラムが開発されます。よって単体テストでは、詳細設計で設計された内部ロジック通りに開発されているかを検証する。
具体的なテストとしては、分岐や繰り返しといった内部動作をすべて網羅し、想定どおりの結果となるか確認するホワイトボックステストがある。(確か要求定義書と同じかどうかの確認もしていた。)ブラックボックステストは入力と出力のみに着目しますが、ホワイトボックステストはデータや変数の流れに着目する。
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字モデルは、ウォータフォールモデルでもアジャイルでも利用できます。システム開発においてエンジニアが今どの作業をしているか、後工程でどうつながるかという点を認識しながら、作業を進めることは大変重要
最後に
組み込みエンジニアとしての生きていこうということで、その環境が整えば、生きることができると思っていて、開発しているための準備をしておく必要を感じています。貢献して、組み込みエンジニアとして独り立ちをします。お互い頑張りましよう。
|
コメント