シリーズ: システム開発の基礎
- システム開発におけるシステムとは何か
- V字モデルを使って開発プロセスを組み立てよう〜システム開発で迷子にならないために
- V字モデルの基本構造をWhy,What,How,Make,Testの視点で理解する
- V字モデルの各レイヤー(企画、運用・評価編)
- V字モデルの各レイヤー(要件定義、運用テスト・システムテスト編)
- V字モデルの各レイヤー(基本設計、結合テスト編)
- V字モデルの各レイヤー(詳細設計、単体テスト編)
- V字モデルの各レイヤー(プログラミング、コードレビュー編)
- V字モデルのトレーサビリティで、開発プロセス全体の一貫性と品質を高める(本記事)
TRACERYプロダクトマネージャーの haru です。
システム開発では、各プロセスの成果物が互いに関連しながら、一連のプロセスとして整合性を保っています。
要求、要件、設計、プログラム、テスト設計・項目といった各プロセスの成果物が対応づけられ、内容の関連をたどれる状態をトレーサビリティ(traceability:追跡可能性)*1といいます。
トレーサビリティを高めることで、成果物間の関係を明確にし、変更や不具合の原因を追跡しやすくなります。結果として、開発プロセス全体の一貫性と成果物の品質を大幅に向上させることができます。
システム開発におけるトレーサビリティは、大きく次の2種類に分類されます。
- V字モデル左辺のトレーサビリティ:要件から仕様、設計、実装へと成果物が連続的につながる関係
- V字モデル左辺と右辺のトレーサビリティ:テストのプロセスで、対応する要件や仕様、設計を確認・検証する関係

本記事では、システム開発におけるトレーサビリティの基本的な考え方と、トレーサビリティを高めることで得られる品質向上の効果について解説します。
V字モデル左辺のトレーサビリティ
V字モデルの左辺のトレーサビリティは、たどる方向の違いによって、次の2つに分類されます。
- 実現の追跡:上から下へたどり、上位の要求や要件がどのように設計や実装へ展開されているかを確認する。
- 理由の追跡:下から上へたどり、各設計や実装がどの要件や意図に基づいて存在しているのかを明らかにする。
この2つの視点によって、成果物間の整合性を保ち、開発内容の妥当性を検証できるようになります。
実現の追跡
「実現の追跡」とは、V字モデルの左辺を上から下へたどり、上位の意図や要求がどのように要件・設計・プログラムへと具体化されているかを確認することです。

たとえば、「ユーザーが安全にログインできるようにしたい」という要求が、機能要件として「ユーザー認証機能の提供」に展開され、さらに仕様や、設計やコードとしてどのように形になっているかをたどります。
この追跡によって、上位で定義した内容が意図どおりに実装へ反映されているかを検証でき、成果物間の整合性と品質を確保することができます。
「何を、どのように実現したのか」を明らかにするトレーサビリティといえます。
理由の追跡
「理由の追跡」とは、V字モデルの左辺を下から上へたどり、設計やプログラムがどの要件や目的に基づいて存在しているのかを明らかにすることです。

たとえば、コード内にある特定の処理について、その根拠となる設計要素や要件、さらには実現したい価値までさかのぼることで、「なぜこのように作るのか(Why)」を理解できます。
この追跡により、成果物の背景にある意図を把握し、設計方針との不整合や不要な仕様の追加を防ぐことができます。
「なぜそれが存在するのか」を明確にするトレーサビリティといえます。
V字モデル左辺と右辺のトレーサビリティ
V字モデルでは、左辺の各プロセスで作成された成果物を、右辺のテストプロセスで検証します。
右辺と左辺のトレーサビリティは、たどる方向の違いによって、次の2つに分類されます。
- 検証カバレッジ追跡:左から右へたどり、要件や設計で定義された内容が、どのテストで検証されているかを確認する。
- 根拠追跡:右から左へたどり、各テスト項目が、どの要件や設計に基づいているかを確認する。
以下の表は、各レイヤーの検証観点です。
| V字の左辺 | V字の右辺 | 検証観点 |
|---|---|---|
| 企画 | 運用・評価 | 課題を解決し、価値を創出しているか |
| 業務要件定義 | 運用テスト | 業務が運用できるか |
| システム要件定義 | システムテスト | システムの動作が正しいか |
| 基本設計 | 結合テスト | ソフトウェアの動作が正しいか |
| 詳細設計 | 単体テスト | 各コンポーネントやモジュールの動作が正しいか |
| プログラミング | コードレビュー | コード品質が基準を満たしているか |
検証カバレッジ追跡
「検証カバレッジ追跡」とは、V字モデルの左側から右側へたどり、要件や設計で定義された内容が、どのテストで検証されているかを確認することを指します。

たとえば、要件定義で示された機能要件が、システムテストで確実に検証されているか、また設計で定義した仕様が、結合テストで十分に確認されているかを対応づけて確認します。
この追跡によって、定義された内容がテストで網羅的にカバーされているか(テスト漏れがないか)を明確にできます。
根拠追跡
「根拠追跡」とは、V字モデルの右側から左側へと対応をたどり、各テスト項目がどの要件や設計に基づいて作成されているのかを確認し、テストが要件どおりに設計されていることを明確にすることを指します。

たとえば、システムテストで用意されたテストケースについて、そのテストがどの機能要件を検証するためのものなのかを明確に対応づけることで、テストの目的を見失わず、検証の妥当性を確保できます。
これにより、テスト項目の目的や妥当性を支える根拠を明示でき、テストが定義された要件や仕様に基づいて正しく設計されていることを保証できます。
また、テストで不具合が発見された場合には、その原因を要件や仕様までさかのぼって特定することが容易になります。
まとめ
トレーサビリティは、システム開発において、各プロセスの成果物がどのように関連し、整合性を保っているかを明確にするための仕組みです。
V字モデルの左辺では、要求や要件がどのように設計・実装へと具体化されたかをたどる「実現の追跡」と、設計や実装がどの目的や意図に基づいているかを明らかにする「理由の追跡」により、開発内容の妥当性を確認します。
右辺では、テストを通じて左辺の成果物を検証します。
要件や設計がどのテストで確認されているかを明らかにする「検証カバレッジ追跡」と、各テスト項目がどの要件や設計に基づいているかを明確にする「根拠追跡」によって、テストの網羅性と正当性を保証します。
これら4つのトレーサビリティを確立することで、開発プロセス全体の一貫性と品質を高めることができます。
次回は、V字モデルにおける右辺の各プロセスの関係について説明します。
*1:考慮の対象となっているものの履歴・適用・所在を追跡できることを指す。不適合が発見された場合に、その原因をさかのぼって特定できる性質を意味する。システム開発に限らず、あらゆる品質管理の分野で用いられる概念である。(ISO 9000/JIS Q 9000「Quality management systems — Fundamentals and vocabulary」)
