データフローテスト【data flow testing】データフローパステスト
概要
データフローテストとは、ソフトウェアテストの手法の一つで、プログラム中のデータや変数が定義から使用、削除・解放に至るまでの過程を正しい順序でたどっているかを検証するもの。ソフトウェアの内部構造を前提とする「ホワイトボックステスト」に分類される。

プログラム中に登場するデータや変数は、定義や値の代入に始まり、計算や条件判定での参照・使用を経て、最終的に削除やメモリ解放によって消滅するという一連の過程をたどる。データフローテストでは、この過程が正しい順序で実行されているかを確認できるよう、テストデータの組み合わせを設計してプログラムに与える。
具体的には、変数の「定義」と「使用」を対応関係にある一対のペアとして捉え、実行経路上で両者が正しく結び付いているかを検証するテストケースを設計する。制御フロー上の実行経路と組み合わせて評価することで、特定の経路に依存した不具合も検出の対象となる。
このテストにより発見できる不具合として、未初期化変数や未定義データを参照・処理しようとするバグ、使用済みメモリの解放漏れによるメモリリーク、一度も参照されない無駄な変数の宣言、使用前に繰り返される不要な初期化処理などがある。いずれも通常の機能テストでは見落とされやすい種類の欠陥である。
テストの網羅基準には、すべての定義を少なくとも一度は使用経路で確認するもの、定義から使用までの全経路を網羅するものなど複数の方式があり、目的や工数・予算に応じて適切なものを選択する。手作業による網羅には限界があるため、制御フローとデータフローを解析して変数の到達可能性や不要な代入を機械的に検出する静的解析ツールやテスト自動化ツールが利用される。
(2026.6.16更新)