August 15, 2024

合成テストデータとテストデータマスキング:両方をうまく活用するには?

*本記事はPerforce Software社の以下の記事の参考訳です。
 Synthetic Test Data vs. Test Data Masking: How to Use Both
*記事の内容は公開時から更新されている可能性があります。

合成テストデータを使うべきか、テストデータマスキングを行うべきか。これは、多くのチームにとって重要な問題です。

この答えを探る前にまず、この問いの背景にある、今日のビジネス環境における変化を確認しておきましょう。

現代のビジネス環境では、高品質なアプリケーションを迅速に提供することが求められています。しかし、市場投入の速さは、セキュリティやコンプライアンス要件とは、相容れないものです。「スピード・コスト・品質のうち、選べるのは2つだけ」という従来の考え方は、長年にわたって企業の足かせとなってきました。このような状況では、十分にテストされていない製品が拙速に市場に出されてしまったり、機密データが権限のないユーザーによってテストに使用されてしまうなどの事態に陥りがちです。

この問題を解決する鍵は、テスト環境において「リアリズム」と「セキュリティ」の最適なバランスを見つけることにあります。そして、その実現に不可欠な2つの手法が、テストデータマスキングと合成テストデータの生成です。

目次:

合成テストデータとは?

合成テストデータとは、現実の事象とは無関係に人工的に生成されたテスト用データのことです。「フェイクテストデータ」や「模擬テストデータ」と呼ばれることもあります。

合成した値というのは、スキーマに合致する実データが存在しない場合や、コンプライアンス上の理由で本番データへのアクセスが制限されている場合などに有用です。マスキング済みデータや匿名化データとは異なり、合成テストデータは本番データを加工したものではなく、完全に人工的に生成されたものです。

合成テストデータのもう一つの利点は、偽物でありながら効果的なデータを用いることで、セキュリティリスクを軽減できる点にあります。機密情報を保護するだけでなく、名前や住所、位置情報、クレジットカード番号など、複雑で広範なデータセットを用いたテストが可能になるため、テストカバレッジの大幅な拡大にもつながります。

合成テストデータは、迅速かつ容易に大量生成できるため、開発スピードの向上にも貢献します。

テストデータマスキングとは?

テストデータマスキングとは、機密データを、リアルでありつつも架空な値に置き換える処理のことです。「静的データマスキング」や「匿名化」「データスクランブル」、「PII(個人識別情報)データマスキング」といった呼び方をされることもあります。

マスキングされた値は、元のデータに基づいて、現実的かつ参照整合性を保ったデータとなるため、テストデータとして非常に有用です。

マスキングを行うことで、機密データを保護し、データプライバシーに関する規制や業界標準に準拠することができます。

さらに詳しく

以下の完全ガイドもご参照ください:

テストデータマスキングと合成テストデータ:その違いとは?

テストデータマスキングと合成テストデータの主な違いは、マスキングされた値は、実際の値から人口統計的に整合性のある架空のデータに置き換えるのに対して、合成データは完全に人工的に生成されたものである点です。そのため、後者では、実データに見られる微妙なニュアンスやパターンまでは再現できない場合もあります。

テストデータマスキングと合成テストデータの使い分け

テストデータマスキングと合成テストデータには、それぞれ適した使いどころがあります。

機密データの保護とデータ整合性の維持には、テストデータマスキングを

機密情報を一切表に出すことなく、本番環境の最新の状態を反映した上で、豊富で複雑な本番データを忠実に再現できるテスト環境を想像してみてください。それを実現できるのが、テストデータマスキングです。

では、なぜそれが重要なのでしょうか?実際の本番データを使用すれば、深刻なセキュリティリスクを招く恐れがあります。一方で、難読化や暗号化されたデータでは、意味の通らない値になってしまい、現実的な機能検証や性能評価が困難になります。

テスト用の本番データにマスキングを施すことで、機密情報を現実的な架空データに置き換えた、安全かつコンプライアンス要件を満たしたコピーを作成することができます。

テストデータマスキングが特に有効なのは、次のようなケースです:

  • データプライバシー保護:顧客データや財務情報などの機密情報を不正アクセスから保護できます。
  • コンプライアンス対応:テスト精度を犠牲にすることなく、GDPRやHIPAA、PCI DSSといった厳格な業界規制に準拠できます。
  • 現実的なテストの実施:実際の利用パターンに近いデータセットを用いて、アプリケーションの性能や機能、エラー時の挙動を検証できます。
  • 非本番ネットワークにおける安全性の確保:非本番環境への機密データの混入は防ぎつつ、スピードやリアリズムを損なうことなくテストを実施できます。

2024年版 データコンプライアンス&セキュリティ動向レポート

調査対象となった企業のうち、66%が非本番環境のデータ保護に静的データマスキングを活用していることが明らかになりました。本レポートでは、機密データ管理やコンプライアンス対応、マスキング、AIなどに関する、約250のグローバル企業の見解をご紹介しています。

データコンプライアンス
レポート(日本語版)を読んでみる

テスト要件に合わせた精密なデータ生成には、合成テストデータを

マスキングされた本番データは、現実世界のシナリオを忠実に再現するのに優れていますが、合成テストデータの方が役立つ場合もあります。

たとえば、次のようなケースです。

  • 実データが乏しい、または機密扱いである場合:開発初期段階での新機能テストや、エッジケースの検証の際に、実データが不足していたり、安全性の面で使用が難しい場合に有用です。
  • 特定のデータ特性が必要な場合:異常値や境界条件、エラーシナリオなど、特定のテストケースに合わせたデータを生成する必要がある場面で有用です。
  • カオステスト(無秩序な状況下での耐性検証)を行う場合:現実的なデータだけでなく、現実には起こりえないような異常データも意図的に用意することで、本番移行前にエラーを確実に洗い出して修正できます。
  • APIテストを行う場合:多様な入力値と期待される出力値をテストデータとして作り込むことで、APIの機能性やエラー時の挙動を徹底的に検証できます。

合成テストデータを生成することで、QAチームはターゲットを絞ったテストを実施できます。目的に合わせて生成されたデータを用いることで、特定の機能やアプリケーションの挙動にフォーカスした検証が可能になります。

つまり、メジャーリリースの完了まで、テストの実施を待つ必要はもうないのです。実データがまだ存在しないような、開発ライフサイクルの早い段階でも機能レベルでのテストを柔軟に行うことが可能になります。また、実データだけでは再現が難しいような潜在的な問題も、QAチームが早期に発見できるようになります。

成功の方程式:テストデータマスキング + 合成テストデータ生成

では、世界有数の企業が採用し、成果を上げている秘訣とは何でしょうか?それは、データマスキングと合成テストデータ生成の両方を組み合わせたアプローチです。この併用こそが、最良の結果をもたらします。

本番データにマスキングを施すことで、非本番環境における機密情報の保護を実現し、さらに合成テストデータを活用して特定シナリオに合わせた検証を実施することで、テストカバレッジ上のギャップを埋めることができます。

ソフトウェアテストにおける合成テストデータの使用は、データマスキングの補完的手段となり得ます。そして、その逆もまた然りです。Perforceでは、データマスキングと合成テストデータ生成のそれぞれに対応したソリューションを提供しています。

Perforce Delphixによる静的(テスト)データマスキング

Delphixプラットフォームは、本番環境のデータをテストに使用するための強力なマスキング機能を備えており、セキュアかつコンプライアンス要件を満たした、本番データベースのコピーを生成することで、リアルでありながらリスクのない、テスト環境を実現します。

Delphixを活用することで、以下のメリットが得られます:

  • データプライバシーの保護:機密データをマスキングすることで、顧客情報や患者情報などのプライバシーを守ります。
  • コンプライアンス対応:開発スピードを犠牲にすることなく、データマスキングにおける各種規制要件を満たします。
  • リアルなテストの実施:テストデータが本番環境での使用実態に基づくリアルなものであるという確証を持って、テストの品質を向上することができます。
  • 非本番環境における安全性の確保:機密データが非本番環境に入り込むことは一切ありません。

Delphixのデモを申し込む

BlazeMeterによる合成テストデータ生成

BlazeMeterは、自動テストや継続的テストに特化したツールであり、アルゴリズムやAIを活用した合成テストデータの生成機能も備えています。これにより、QAチームは非常に複雑なアプリケーションに対しても、網羅的なテストスイートを構築・実行することができます。

BlazeMeterを活用することで、以下のメリットが得られます。

  • 今すぐ使えるテストデータ:開発初期の段階や、新機能のテスト、エッジケースの検証といった、実データを使えない場面で合成データを活用できます。
  • あらゆるテスト要件に対応:本番環境のデータの有無に関わらず、特定のテスト条件に合致するデータを柔軟に生成できます。
  • カオステストの実施:AIとビルトインルールの数々を利用して、期待される正常なデータに対するネガティブパターンを作成したり、モックサービスを使用することで、想定外のシナリオでのカオステストが可能になります。
  • APIテストの実施:APIのテストケースを数分で作成し、開発から本番までのフェーズでAPIを継続的にモニタリングできます。

BlazeMeterの無料テストを試す

Delphix + BlazeMeter:両方を活用して、理想のテスト環境を実現

テストデータマスキングと合成テストデータ生成の両方を取り入れることで、「リアリズム」と「セキュリティ」の最適なバランスを備えたテスト環境を実現できます。もはや「スピード・コスト・品質のうち、選べるのは2つだけ」といった古い考えに縛られる必要はありません。データセキュリティとコンプライアンスにおける最高水準を維持したうえで、ソフトウェア開発ライフサイクルを安心して加速させることができるのです。

DelphixとBlazeMeterは、組み合わせて使うことで真価を発揮します。詳しくは、ぜひお問い合わせください。

■ お問い合わせ先 ■

株式会社東陽テクニカ ソフトウェア・ソリューション部

phone 03-3245-1248(直通) mail ss_support@toyo.co.jp