データ駆動テスト
データ駆動テスト(DDT)は、テストデータとテストロジックを分離するソフトウェアテスト手法です。特定の入力値をテストスクリプトに直接ハードコーディングする代わりに、DDTはこれらのデータをスプレッドシート、データベース、設定ファイルなどの外部ソースに外部化します。その後、テストスクリプトはこれらの外部データを読み込み、異なる入力セットを使用して同じテストロジックを複数回実行します。
複雑なアプリケーションでは、単一のデータセットでテストを行うだけでは不十分です。DDTにより、QAチームは広範な実世界のシナリオにわたるアプリケーションの動作を効率的に検証できます。これは、新しいデータ順列ごとにテストスクリプトを手動で書き直す必要なく、テストカバレッジを大幅に向上させます。
このプロセスには、テストフレームワーク、テストロジック、外部データソースという3つの主要なコンポーネントが含まれます。テストフレームワークは、外部ソースから提供されるデータを反復処理するように設計されています。テストロジックは一定のままで、「何を」テストする必要があるかを定義します(例:「ログイン成功の検証」)。外部データは、「どのように」テストすべきかを提供します(例:「ユーザー名A/パスワードX」、「ユーザー名B/パスワードY」)。
DDTは、境界条件、ネガティブテスト、大規模なデータ検証が関わるシナリオで非常に効果的です。例としては、さまざまなカードタイプを使用した支払いゲートウェイのテスト、さまざまなキーワードを使用した検索機能の検証、またはフォーム送信が多様なユーザー入力を処理できることの確認などが挙げられます。
DDTを実装するには、データ統合レイヤーを構築するための初期設定時間が必要です。適切に整理されていない場合、大規模で複雑な外部データセットの管理と保守もロジスティクスの課題となる可能性があります。
この手法は、パラメータ化テストと密接に関連しています。パラメータ化テストは、自動化フレームワーク内でのDDTの技術的な実装であることが多いです。また、定義された動作を実行するために必要な具体的なデータを提供することで、振る舞い駆動開発(BDD)を補完します。