TRACERY Lab.(トレラボ)

TRACERY開発チームが、要件定義を中心として、システム開発で役立つ考え方や手法を紹介します。

V字モデルの各レイヤー(要件定義、運用テスト・システムテスト編)

シリーズ: システム開発の基礎

TRACERYプロダクトマネージャーの haru です。

この記事ではV字モデルのレイヤーのうち、「要件定義」プロセスと「運用テスト」「システムテスト」プロセスについて説明します。

V字モデルの各レイヤーの説明は以下の記事を参照してください。

tracery.jp

V字モデル上の「要件定義」と「運用テスト」「システムテスト」

業務/システムで、何を実現するかということに焦点を当てたWhatのレイヤーでは、「要件定義」プロセスと「運用テスト」プロセス、「システムテスト」プロセスを実施します。

Whatのレイヤーは、V字モデルのWhyレイヤー(企画のプロセスがある)の下にあり、「企画」プロセスで定めた「Why」を実現するためのレイヤーです。

V字モデル上の「要件定義」プロセスと「運用テスト」「システムテスト」プロセス

V字モデルでは、右側のプロセスが左側のプロセスの検証を行う役割を果たします。

要件定義は、大きく次の2つに分類されます。

  • 業務要件定義:事業の目的を達成するために、業務として「何を・どのように行うか」を明確にし、業務の目的・手順・ルールを整理する。
  • システム要件定義:業務要件を実現するために、システムとして「どのような機能・性能・制約で支援するか」を具体的に定める。

これら2つの要件定義は、開発後のテストプロセス(運用テスト、システムテスト)と対応します。

業務要件に基づいて実際の運用を確認するのが運用テスト、システム要件に基づいて動作を検証するのがシステムテストです。

それぞれの特徴を以下に整理します。

テスト名 主な観点 主な実施者
運用テスト - 業務要件の観点から、業務が実際に問題なく運用できるかを確認
- 操作手順や運用ルール、帳票・通知など業務成果物を検証
- 業務担当者
- ビジネス側責任者
システムテスト - システム要件の観点から、システム全体が仕様どおりに動作するかを確認
- 機能、性能、セキュリティなど非機能面も含めて検証
- システム開発者
- 品質保証担当者

運用テストとシステムテストは、本番稼働前の最終テストです。

特に、実運用に近い環境でテストを実施することで、環境差による不具合や想定外の業務上の問題を早期に発見しやすくなります(下図)。

運用テストとシステムテストの違い

以下、それぞれのプロセスを説明します。

要件定義プロセス

以下の図に、要件定義プロセスの全体像を示しました。要件定義は、大きく業務要件定義システム要件定義に分類されます(下図)。

要件定義プロセス

要件定義プロセスについては、『要件定義とはそもそも何か』の連載で説明していますので、詳細をご参照ください(以下は連載の第1回です)。

tracery.jp

運用テストプロセス

運用テストは、業務要件の観点から、業務が実際に問題なく運用できるかを確認します。

操作手順や運用ルール、帳票・通知など業務成果物を検証します。

ビジネス側が開発側に依頼した開発内容を検証するためという目的も含まれるので、『受け入れテスト』と呼ぶこともあります。

運用テストの観点

運用テストの目的は、業務要件定義で定めた業務の流れやルールが、システム上で正しく再現され、実際の運用として成立しているかを確認することです。

主に次の観点からテストを実施します。

  • 業務フローに沿って、システムを用いながら業務を一連の手順として遂行できるか
  • ユースケース(システムを利用する具体的な場面)において、想定どおりの操作・結果が得られるか

これらの業務観点に加え、運用全体の妥当性を確認するため、以下の観点からも検証します。

  • 事業要件が実際に満たされ、業務を通じて事業上の価値が発揮されているか
  • システム要件(機能要件・非機能要件)が、運用に必要な品質レベルを満たしているか

これらを総合的に確認することで、システムが業務運用を安全かつ確実に支える状態にあるかを最終的に評価します。

運用テストプロセスの観点

システムテストプロセス

システムテストは、システム要件の観点から、システム全体が仕様どおりに動作し、期待した品質を満たしているかを確認します。

機能要件・非機能要件をもとに、画面操作やバッチ処理、外部システムとの連携などを総合的に検証します。

開発側が作成したシステムが要件定義書どおりに実装されているかを確認する工程であり、システムの完成度と品質を保証する役割を担います。

システムテストプロセスの観点

システムテストの目的は、システム要件定義で定めた機能・性能・制約が、システム全体として統合的に動作し、要求どおりの品質を備えていることを確認することです。 開発工程の最終段階として、システムの完成度と運用準備性を総合的に検証します。

主に次の観点からテストを実施します。

  • システム要件(機能要件・非機能要件)が、運用に耐えうる品質水準を満たしているか
  • ハードウェア、ネットワーク、外部システム、ソフトウェアなど、関連要素が相互に連携し、全体として安定して動作するか

これらのシステム観点に加えて、運用フェーズでの実効性を確認するため、次の視点からも検証を行います。

  • 想定した業務フローやユースケースに沿って、利用者が業務を正確かつ効率的に遂行できるか
  • システムの稼働により、業務上求められる成果や情報が確実に得られるか

これらを総合的に検証することで、システムが要件定義段階で期待された品質を満たし、業務運用に移行できる状態であることを確信する段階が、システムテストです。

システムテストプロセスの観点

最後に

この記事では、V字モデルにおける「要件定義」プロセスと、「運用テスト」「システムテスト」プロセスの関係について解説しました。

「要件定義」プロセスは、システム開発において何を作るのか(What)を明確にします。

これに対応して、「運用テスト」は業務要件が実際の運用で満たされているかを、業務担当者が最終的に確認するプロセス、「システムテスト」はシステム要件が仕様どおり実現されているかを、開発者が最終的に検証するプロセスです。

運用に耐えうるシステムをリリースするためには、業務担当者の視点(業務が確実に遂行できるか)と、システム開発者の視点(システムが安定して動作するか)の双方からテストを実施することが不可欠です。

そのうえで、業務・システムが連携し、事業要件を満たしながら持続的に価値を生み出す状態を目指すことが重要です。

次回の記事では、V字モデルにおける「基本設計」プロセスと「結合テスト」の関係を説明します。

tracery.jp

この記事を書いた人
haru

佐藤治夫。株式会社ビープラウド代表取締役社長。TRACERYのプロダクトマネージャー。エンジニアとして活動を始めて以来、モデリングを中心としたソフトウェアエンジニアリングを実践している。Xアカウント: https://x.com/haru860