V字モデルとは? ウォーターフォール開発のプロセスとテストの関係
ソフトウェアはたくさんのプロセスを経て開発されます。 ソフトウェアテストは、そんなソフトウェア開発のプロセスの中の1つの工程です。 具体的なテスト手法を学ぶ前に、ソフトウェア開発全体について理解をすることでテストだけにとらわれない大局的な視点を持つことができます。
このレクチャーでは、ソフトウェア開発の全体像について解説します。 その中で、ソフトウェアテストがどのような位置づけにあるのかを理解しましょう。
目次
ソフトウェア開発のプロセス:ウォーターフォール開発
ソフトウェア開発のプロセスには、ウォーターフォール開発と呼ばれるものがあります。 ウォーターフォール開発は、それぞれの工程がひとつずつ順番に進行します。 その様子が上流から下流に流れる水の流れに似ていることから、ウォーターフォール開発と呼ばれています。
ウォーターフォール開発では、以下のプロセスを順番に進めることでソフトウェアを開発します。
- 要求定義:ソフトウェアによって解決したい問題を「要求」としてまとめます
- 基本設計(外部設計):「要求」を満たすためにソフトウェアが「何をするのか」を決めます。仕様が決まります
- 詳細設計(内部設計):「仕様」を満たすために、ソフトウェアが「どのように処理をするのか」を決めます
- 実装:仕様を満たすソフトウェアをコーディングします
- テスト:完成したソフトウェアが仕様通り動作しているかを確認します
V字モデルによるソフトウェアテストの分類
ウォーターフォール開発では要求定義から実装までの作業が完了すると、作業の結果得られた成果物を評価するためにさまざまな種類のテストが実施されます。 実施されるテストは、要求定義・基本設計・詳細設計の各工程に対応させて次のように分類できます:
- 要求定義 ← システムテスト
- 基本設計(外部設計)← 機能テスト・結合テスト
- 詳細設計(内部設計)← 単体テスト
このように、開発プロセスと各テストを対応させたモデルがV字モデルです。 V字モデルに登場する各テストには、次のようにそれぞれ異なる目的があります:
- システムテスト:ユーザーの要求を満たしているかどうかを確認する
- 機能テスト:ユーザーがソフトウェアをどのように使うかを確認する
- 結合テスト:複数のソフトウェアの部品(コンポーネント)を組み合わせて動作確認をする
- 単体テスト:単一のソフトウェアの部品(コンポーネント)が正しく動作するかを確認する
このようにソフトウェア開発におけるテストは、ソフトウェア開発のプロセスと密接に関係しています。 どのプロセスに対応するテストを実施しているのかを意識することで、テストの目的を明確にすることができます。
まとめ
このレクチャーでは、ウォーターフォール開発の各プロセスとテストの関係について解説しました。
- ウォーターフォール開発は、ソフトウェア開発の手法の1つであり、各工程を順番に進める手法です
- V字モデルは、ソフトウェア開発のプロセスとテストの関係を表したモデルです
- V字モデルでは、ウォーターフォール開発の各設計・実装作業に対応したテストが行われます
- ソフトウェアテストには、システムテスト・機能テスト・結合テスト・単体テストなどがあります