ソフトウェアテストにおけるテストデータとは何ですか?

⚡ スマートサマリー

ソフトウェアテストにおけるテストデータとは、テスト実行中にアプリケーションに入力されるデータのことです。適切に設計されたデータは、肯定的な検証、否定的な検証、パフォーマンスチェック、セキュリティチェックなどを可能にするため、製品ライフサイクル全体を通して生成、匿名化、更新される必要があります。

  • 🗓️ 先を計画する: テストケースと同時にテストデータを作成することで、入力データの不足や環境設定の不備によって実行が妨げられることがなくなります。
  • 🎯 あらゆるシナリオに対応: 正例、負例、境界値、および同値分割のデータセットをそれぞれ別個に用意し、明確にラベル付けしてください。
  • 🛡️ コピーする前にマスクしてください: パフォーマンスデータセットを生産量と形状に照合するが、コピーを作成する前に機密性の高いフィールドは匿名化する。
  • ⚙️ 重労働を自動化する: ジェネレーターやAIツールを使用して、現実的なデータセットを拡張し、手作業を減らし、重複を回避しましょう。
  • 🔄 各リリースを更新する: Revスキーマの変更、新機能の追加、規制の更新後にデータセットを確認し、古いデータによって誤った合格判定が発生しないようにする。

ソフトウェアテストにおけるテストデータ

テスターとして、テストケースの設計だけでも十分難しいのに、テストデータのようなルーチン作業にわざわざ時間をかける必要はないと思うかもしれません。このチュートリアルでは、テストデータについて解説し、その重要性を説明するとともに、テス​​トデータを迅速に生成するための実践的なヒントを紹介します。

ソフトウェアテストにおけるテストデータとは何ですか?

ソフトウェアテストにおけるテストデータ テストデータは、テスト実行中にソフトウェアプログラムに与えられる入力です。これは、テスト中にソフトウェアに影響を与えたり、ソフトウェアから影響を受けたりするデータを表します。テストデータは、ポジティブテスト(指定された入力に対して関数が期待どおりの結果を生成することを検証する)とネガティブテスト(ソフトウェアが異常な入力、例外的な入力、または無効な入力をどのように処理するかを確認する)の両方で使用されます。

設計が不十分なテストデータは、考えられるすべてのシナリオを網羅できておらず、ソフトウェアの品質を直接的に低下させる。

ソフトウェアテストにおけるテストデータ

テストデータ生成とは何か、そしてなぜテスト実行前にテストデータを作成する必要があるのか​​?

テストは、大量のデータを生成および消費するプロセスです。テストで使用されるデータは、テストの初期条件を記述し、テスターがソフトウェアとやり取りするための媒体となります。したがって、ほとんどのテストにおいて重要な部分を占めます。 機能テスト.

テスト環境によっては、 作ります テストデータをゼロから作成するか、少なくとも適切な既存のデータセットを特定してください。 テストケーステストデータは通常、それがサポートするテストケースと同期して作成されます。

テストデータは、一般的に以下の4つの方法で生成できます。

  • テスターまたはビジネスアナリストが手動で行う。
  • 本番環境からテスト環境へのデータの大量コピー。
  • 旧クライアントシステムからのテストデータの大量コピー。
  • 自動テストデータ生成ツール。

サンプルデータを生成する必要があります テスト実行は開始されます。なぜなら、後から作成すると管理が困難になるからです。多くのテスト環境では、データをロードする前に複数の事前手順や時間のかかる設定が必要です。実行フェーズ中にデータ生成が行われると、テストの期限に間に合わないリスクがあります。

以下のセクションでは、いくつかのテストの種類と、それぞれのテストに必要なテストデータに関する提案について説明します。

ホワイトのテストデータ Box テスト

In ホワイト Box テストテストデータ管理は、テスト対象コードの直接的な検証に基づいて行われます。選択基準には通常、以下の項目が含まれます。

  • 支店のカバー範囲: ソースコード内のすべての分岐が少なくとも一度はテストされるようにデータを生成する。
  • パステスト: すべての経路が少なくとも一度は実行されるようにデータを作成する。
  • APIテスト: 内部メソッドを呼び出す際に、無効なパラメータ型または無効な引数の組み合わせを使用しました。

パフォーマンステスト用のテストデータ

性能試験 特定のワークロードの下でシステムがどれだけ速く応答するかを測定します。目的は機能的なバグを見つけることではなく、ボトルネックを特定することです。サンプルデータセットは、 リアルまたはライブ 結果が意味を持つためには、生産データが必要となる。

どうやってそのようなデータを入手するのですか?最も信頼できる情報源は お客さま 彼ら自身。既存のデータセットを提供するか、現実世界のデータがどのように見えるかを記述してモデル化することができます。 保守テスト プロジェクトでは、本番環境からテスト環境にデータをコピーできます。 匿名化する (スクランブル)機密情報(社会保障番号、クレジットカード番号、銀行口座情報など)は、コピーを作成する前に必ず処理してください。

セキュリティテスト用のテストデータ

セキュリティテスト 情報システムが悪意のある意図からデータを保護していることを検証します。データセットは、次の4つの柱を網羅する必要があります。

  • 守秘義務: 顧客からの情報は厳重に機密保持され、外部の第三者と共有されることはありません。アプリケーションがSSLを使用する場合は、暗号化が正しく行われていることを証明するデータを設計してください。
  • Integrity: システムから返される情報は正しい。設計、コード、データベーススキーマ、ファイル構造を確認してデータを構築する。
  • 認証: ユーザーの身元確認プロセス。ユーザー名とパスワードのさまざまな組み合わせを使用して、許可されたユーザーのみがアクセスできることを確認します。
  • 承認: 特定のユーザーに付与された権限。ユーザー、役割、操作を組み合わせて、十分な権限を持つユーザーのみが特定の操作を実行できるようにします。

黒のテストデータ Box テスト

黒で Box コードのテストはテスターに​​は見えません。機能テストケースには、以下の基準を満たすデータを含める必要があります。

  • データなし: 何も送信されなかった場合の応答を確認します。
  • 有効なデータ: 正しいテストデータを用いて応答を確認してください。
  • 無効なデータ: 誤ったテストデータを用いて応答を確認する。
  • 不正なデータ形式: データがサポートされていない形式の場合の応答を確認します。
  • 境界条件データセット: データは、最小値、最大値、および境界値のすぐ外側に位置している。
  • 同値分割データセット: 各同値類を表すデータ。
  • 決定表データセット: 決定表のすべてのルールを実行するデータ。
  • 状態遷移データセット: 定義された各状態遷移を通してシステムを駆動するデータ。
  • ユースケーステストデータ: エンドツーエンドのユースケースに沿ったデータ。

注意: テスト対象のアプリケーションによっては、上記のカテゴリの一部またはすべてを使用する場合があります。

自動テストデータ生成ツール

自動化ツールは、手作業よりもはるかに速く、大規模で多様なデータセットを生成します。長年にわたる2つの例は次のとおりです。

  • DTMテストデータ Generator — パフォーマンス、品質保証、負荷、ユーザビリティなどのデータベーステストシナリオ向けに、データ、テーブル、ビュー、プロシージャを生成するカスタマイズ可能なユーティリティ。
  • データテクト - an SQL Banner Software のデータジェネレーターは、ASCII フラットファイルまたは RDBMS システムに直接、現実的なテストデータを作成します。 Oracle、Sybase、SQL Server、および Informix。

評価済みの最新の候補者リストについては、以下を参照してください。 ベストテストデータ10選 Generator ツール.

テストデータの管理に関するベストプラクティス

信頼性の高いテストデータは、規律正しいハウスキーパーにかかっているpingリリース間でデータセットを健全に保つには、以下の手順に従ってください。

  • データのバージョン管理を行う: 変更内容を監査できるように、データセットは、それを利用するテストケースとともにリポジトリに保存します。
  • マスク対象フィールド: 生産現場からデータをコピーする前に、個人情報、財務情報、健康情報を匿名化する。
  • 定期的に更新してください: スキーマやビジネスルールの変更に対応するため、リリースごとにデータセットを再構築します。
  • 期待される成果を文書化する: 各データセットを期待される結果と関連付けることで、障害発生時のトリアージが容易になります。
  • シード処理を自動化する: スクリプトまたはフィクスチャを使用して、各テスト実行の開始時にデータをロードし、再現性を確保する。

よくあるご質問

テストデータとは、テスト中にソフトウェアに入力されるあらゆるデータのことです。ログインフォームの場合、有効なユーザー名とパスワード(肯定的な入力)、空白のパスワード(否定的な入力)、300文字以内のメールアドレス(境界値)などが例として挙げられます。

テストケースとは、単一のシナリオにおける手順と期待される結果を記述したものです。テストデータとは、それらの手順に入力される具体的な値のことです。各テストケースには、シナリオを実行するための独自のデータセットが必要です。

十分なデータとは、すべての同値クラス、境界、およびリスク加重シナリオを網羅するデータのことです。データ量だけでは網羅性は保証されません。データをテストケースにマッピングし、網羅性のギャップが解消されたらレコードの追加を停止してください。

氏名、口座番号、健康情報などの機密性の高い項目は、必ずマスキング処理を施してから使用してください。マスキング処理を施していない本番データは、GDPRやHIPAAなどの規制に違反するだけでなく、テスト環境が侵害された場合、深刻な情報漏洩のリスクを生み出します。

一般的なカテゴリとしては、有効、無効、境界、同値分割、決定表、状態遷移、ユースケース、データなしセットなどがあります。各カテゴリは、テスト対象アプリケーションにおける異なるリスクを対象としています。

スキーマの変更、メジャーリリース、規制の更新、または本番環境の動作変更があった場合は、必ずテストデータを更新してください。古いデータセットでは新しい検証ルールが反映されず、回帰テスト中に誤った合格判定が発生してしまいます。

AIツールは、ビジネスルールに従い、個人情報をマスキングし、肯定的なケースと否定的なケースのバランスが取れた、現実的で多様なデータセットを合成します。また、要件と既存のテストカバレッジを分析することで、不足しているシナリオを特定します。

いいえ。AIは生成を加速し、パターンを検証しますが、ビジネスリスク、例外的なケース、コンプライアンス要件については人間のレビュー担当者が判断する必要があります。最も効果的なチームは、AIが生成したデータセットと専門家によるキュレーションを組み合わせています。