公開:
テストデータとは?作り方や種類、生成ツールなどをまとめて解説
ソフトウェアテストで使用する入力値やファイルなどの「テストデータ」。品質保証に欠かせない基本的な概念ですが、適切な作成方法について理解が曖昧な方も多いのではないでしょうか。
本記事では、テストデータの定義や種類、効果的な作成方法、運用時のセキュリティ対策まで体系的に解説します。
目次
テストデータとは?
テストデータとは、ソフトウェアテストを実施する際の入力データのことです。
例えばECサイトのテストでは、次のようなデータを用意する必要があります。
【例】ECサイトのテストで必要なテストデータ(一部)
- 商品情報(商品名・コード・価格など)
- 会員情報(名前・メールアドレス・年齢など)
- 注文情報(購入商品・数量・支払い方法・配送先など)
テストデータには、画面から入力する値だけでなく、事前に用意されたデータベースのレコードや、外部システムと連携するファイル(例:注文内容を反映するためのCSV形式のデータ)などが含まれることもあります。
テストデータの種類
テストデータは、検証したい内容に応じていくつかの種類に分類されます。それぞれを抜け漏れなく用意することで、網羅性の高いテストを実施できます。
正常系データ
仕様で定められた範囲内の入力に対して、システムが正しく動作することを確認するためのデータ。 各機能について、想定される正常な利用パターンを一通りカバーできるように設計する
例:年齢入力フォームでの「25歳」など
異常系データ
システムがエラーを適切に処理できることを確認するためのデータ。仕様で想定されていない入力や禁止されている形式のデータを入力し、適切なエラーメッセージが表示されるか、システムの異常終了などが起きないかを検証する
例:年齢入力フォームでの「-5歳」「abc」、年齢制限の範囲外の値など
境界値データ
入力値の上限や下限などの境界付近に位置するデータ。境界付近では仕様の抜けや比較条件の実装ミスが発生しやすいため重要
例:年齢入力で「0歳以上120歳以下」という仕様の場合、「-1歳、0歳、1歳」「119歳、120歳、121歳」など
特に幅広いユーザーが使用するWebアプリや業務システムなどの開発では、正常系だけでなく異常系や境界値のテストデータも抜け漏れなく用意し、開発者の意図していない誤入力などに対する挙動も確認しておくことが重要です。
テストデータの作成方法
テストデータの作成方法にはいくつかの種類があり、プロジェクトの規模やリソース、求められる精度に応じて使い分けることが重要です。
ここでは、代表的な作成方法について解説します。
手動作成
テストケースに基づいて、手作業でデータを入力・編集する方法です。テスト設計者の意図を反映しやすく、特定のシナリオに沿ったデータを柔軟に作成できます。
手動作成は、小規模なプロジェクトや、複雑なビジネスロジックを持つ機能のテストに向いている一方で、大量のデータを作成する際に時間がかかる、またヒューマンエラーが発生しやすいといった難点もあります。
より少ない工数で実用性の高いデータを用意するために、実データから加工したものを転用するのも一つです(機密情報の混入には要注意)。
スクリプトによる生成
プログラミング言語を用いてデータを自動生成する方法で、繰り返しのパターンや一定のルールに基づくデータを効率的に作成できます。初期こそ工数がかかりますが、一度スクリプトを作成すれば、仕様変更時の更新や大量データの生成が容易になります。
データジェネレータ(生成ツール)の活用
専用のツールを使用し、ランダムまたは指定した条件に基づいてデータを生成する方法です。操作が複雑な場合もありますが、GUI上で作業を完結できるため、「自動作成したいがプログラミング知識がない」という場合に有効な手段といえます。
代表的なデータジェネレータ
生成AIの活用
近年では、生成AIを用いた自動作成もできるようになりました。ChatGPTやGeminiなどのツールにテストシナリオやデータの要件を入力することで、一定程度実用的なデータセットを生成できます。
特に自然言語での入力データ(レビューコメント、問い合わせ文など)が必要なときに、短時間でリアルなデータを用意できる点が強みといえます。
テストデータの作成手順
テストデータの作成は目立ちにくい工程ではありますが、プロダクトの品質を支える重要な作業です。ここでは、テストデータの作成手順を3つのステップに分けて解説します。

1. テストデータの設計と準備
まずは、テストの目的やシナリオに基づいて、必要なデータの種類を明確にします。
テストケースごとに必要な入力値や期待される出力を整理し、正常系・異常系・境界値それぞれについて、どのようなデータを用意すべきかを洗い出します。特に異常系は、単一のデータだけではなく、代表的な誤入力のパターンを一通りカバーすることが重要です。
必要なデータの要件を整理できたら、データの作成方法を選定します。手動作成やジェネレータの使用など、システムの規模や性質に適した方法を選択しましょう。
2.テストデータの生成と編集
次に、設計に基づいて手動もしくはツールを使い、テストデータを生成していきます。
以下は、ECサイトの注文機能をテストする際のデータ例です。
▼テストデータの例 ECサイトの注文機能の場合
| 項目 | 正常系データ | 異常系データ | 境界値データ |
|---|---|---|---|
| 商品点数 | 一般的な点数(3点、10点) | 文字列(abc)、負の数(-5) | 0点、1点、上限値(99点)、上限値+1(100点) |
| 金額 | 商品ごとの一般的な値段 (550円、2,980円、35,800円) | 0円未満、文字列(”無料”)、極端に大きな値(999,999,999円) | 最小金額(1円)、最大金額(999,999円)、最大金額+1円 |
| 配送先 | 国内住所、海外住所 | 未入力、不完全な住所(郵便番号のみ)、配送対象外地域 | 住所の文字数上限、住所の文字数上限+1 |
| 決済方法 | クレジットカード、コンビニ払い、銀行振込 | 未選択、無効な決済方法、残高不足のアカウント | 有効期限当日のカード、有効期限切れ直前・直後のカード |
注文機能のように複数のデータ項目が組み合わさる場合は、その組み合わせパターンも考慮します。すべての組み合わせをテストするのは現実的ではないため、優先度をつけて重要なパターンに絞り込むことも必要です。
3. 検証(Verification & Validation)
最後に、生成したテストデータが要件や妥当性を満たしているかの「検証」(Verification & Validation)を行います。
具体的には、以下のような観点でチェックします。
Verification(検証/データが仕様書の要件を満たしているか)
- 正常系のデータ形式が仕様通りか(文字列、数値、日付など)
- 必須項目が欠落していないか
Validation(妥当性確認/生成データがテストの目的に適しているか、実用性があるか)
- 生成したデータが想定されるテストケースとして有効か
- 関連するデータ間で整合性が取れているか
また、システムの仕様変更に合わせた継続的な更新も欠かせません。定期的な検証と修正により常に最新の情報を保つことで、テストの有効性を維持できます。
テストデータの作成・管理における注意点
テストデータはテスト工程全体にわたって活用するデータであり、チーム全体で扱い方に対する共通の理解を持ち、適切に管理する必要があります。
最後に、テストデータを作成・管理するにあたっての注意点を解説します。

質と量の確保
テストデータが不十分だったり、特定のパターンに偏っていたりすると、網羅的な検証ができず、欠陥を見逃すリスクが高まります。
特にありがちなのが、正常系のデータばかりが揃っていて、異常系や境界値に対するテストが手薄になるケースです。こうした偏りは、リリース後の予期せぬエラーや障害につながる恐れがあります。
テストデータの質と量を確保するためには、テスト設計の初期段階でどのようなデータが必要かを洗い出し、それに基づいてバランスよくデータを準備することが重要です。
変更管理と影響分析
テストデータは、システムの仕様変更に伴って更新が必要になります。しかし、テストデータの変更履歴が適切に管理されていないと、「いつ、誰が、何を変更したのか」が不明確になり、トラブル発生時の対応や再発防止が困難になります。
こうした問題を避けるために、テストデータの変更履歴をチーム内で共有することが重要です。変更履歴を追跡できるように、バージョン管理システム(GitやSubversionなど)を導入するとよいでしょう。
セキュリティの確保
テストデータには、個人情報や機密情報が含まれる場合があり、その取り扱いには細心の注意が求められます。
特に、本番環境のデータを加工してテストに利用するケースでは、顧客情報や機密情報が適切にマスキングされているかを事前に確認することが不可欠です。もし情報が漏洩すれば、信頼失墜や法的責任、経営への重大な影響を及ぼすリスクがあります。
こうしたリスクを回避するためには、テスト環境へのアクセス制限を設ける、データの取り扱いに関するルールを明文化するなど、物理的・論理的なセキュリティ対策を組み合わせて実施することが有効です。
テストデータの網羅性がソフトウェアの品質を左右する
実運用に即したテストを行うためには、適切なテストデータの作成が欠かせません。
異常系や境界値を含めた必要なデータを抜け漏れなく用意することで、リリース後の不具合リスクを軽減できます。
一方で、精度の高いテストデータの作成には、一定のスキルや経験が求められます。また、システムの規模が大きい場合は、専用のジェネレータ等を用いた自動化の必要も生じます。社内のナレッジに不安がある場合は、外部の支援会社の活用も有効な選択肢の一つです。
AGESTのソフトウェアテストサービスでは、テストデータの作成を含めたテスト設計から実施まで、豊富な経験を持つテストエンジニアが一貫してサポートします。お客様の開発環境や課題に応じて、最適なテストデータ戦略をご提案いたします。
テストデータの作成・運用にお悩みの方は、ぜひお気軽にご相談ください。

