ソフトウェア開発サイクルは、市場投入までの時間短縮だけでなく、アプリケーションの複雑化という課題に直面しています。 アプリケーションの初期開発から製品発売、そしてその後も安定した機能を維持するために、企業はさまざまな種類のテストを採用する必要があります。
もちろん、開発が複雑になればなるほど、必要なテストも増えていきます。 テストシナリオを成功させるために不可欠な要素は、テストデータ管理(TDM)です。 企業レベルの組織は、コストを削減し、テスト品質を向上させながら、使用するすべてのテストタイプを合理化、自動化、および管理することができます。
ソフトウェアテストにおけるテストデータ管理(TDM)とは?
テストデータ管理は、テストデータの作成、管理、実施、配信のプロセスです。 従来、ソフトウェア開発のテストは分散したサイロで行われていましたが、TDMは単一のチーム、グループ、または部門の権限でテストを統合します。
テストデータ管理サービスは、単体テスト、結合テスト、システムテストなど、ソフトウェアの自動テストに必要なデータを収集するサービスです。 自動テストに必要な適切かつ正確なデータを取得・保存し、テスト工程に人間が関与する必要性を低減・排除すること(に近い概念)です。
ロボティック・プロセス・オートメーション
).
TDMの普及に伴い、合成データ生成、データマスキング、サブセット、人工知能など、様々な拡張が行われています。
最終的に、テストデータ管理は、完成したソフトウェア製品の信頼性と品質を高め、優れたエンドユーザーエクスペリエンスを実現します。 また、TDMのデータ難読化により、企業は適用されるすべてのデータプライバシー法および規制に準拠することができます。
ソフトウェアテストにおけるテストデータ管理(TDM)は誰が使うのか?
みんな」という答えは、単純で広く聞こえるかもしれませんが、実は テストデータ管理技術 あらゆる種類のソフトウェアアプリケーションに利益をもたらします。 もしテストが開発サイクルの中で行われるなら(そうあるべき)、TDMプロセスは結果の正確さ、整理、そして有用性を高めます。
すべてのソフトウェア開発にはテストが必要なため、TDMは基本的にすべてのプロジェクトに利益をもたらします。 しかし、特定の組織やアプリケーションでは、テストデータ管理戦略の利用が実質的に義務付けられています。 テストデータ管理戦略.
企業レベルのアプリケーションでは、複雑で多面的なテストが必要なため、TDMが必要です。 TDMは、機能テスト、非機能テスト、パフォーマンステスト、自動化テストなど、企業開発で見られるすべての主要なテスト領域にメリットをもたらします。
また、TDMの難読化処理により、電子商取引、金融、医療に関連するサイトやアプリケーションなど、個人情報や機密情報を扱うアプリケーションでの利用が不可欠となります。
データマネジメントはどのようなテストに使われるのですか?
データ管理は、大きく分けて3つのテストに重点を置いています。
1.パフォーマンステスト用TDM
パフォーマンステストは、想定される作業負荷の下でアプリケーションのパフォーマンスを測定し、その応答性、安定性、拡張性を評価します。 TDMにより、インフラとユーザー向け要素にテストを集中させ、高速で信頼性の高いパフォーマンスを実現することができます。
テストマネジメントツール 最適なテスト管理ツールリフレッシュサイクルの向上とデータの一括取得を支援します。
2.機能テスト用TDM
パフォーマンステストがアプリケーションの速度と安定性を分析するのに対し、機能テストはソフトウェアがあらかじめ決められた要件に従って動作するかどうかを判断します。 本質的なことそのソフトはやるべきことをやっているか? テストデータ管理サービスは、コアアプリケーションに加え、新機能やアップグレード機能の品質管理の維持に役立ちます。
TDMは、カバレッジの低さ、アクセス制限、データソースのタイムラインの長さ、高い依存性、テスト環境のサイズに関する問題を軽減または防止するのに役立ちます。
3.オートメーションテストにおけるTDM
自動化とハイパオートメーションのためのテストデータ戦略
ハイパーオートメーション
は、タッチレスオペレーションを実現するとともに、ヒューマンエラーの可能性を低減し、精度を向上させることができます。 テストデータ管理プロセスは、以下のようなあらゆるタイプのテストデータ管理自動化ツールやテストに使用されます。
ロボティック・プロセス・オートメーション
.
A 自動化のためのテストデータ戦略フロントエンドのデータ作成に時間がかかる、ダイナミックデータにアクセスできない、テスト環境にアクセスできないなどの問題を軽減することができます。
テストデータ管理のメリット
TDM戦略、および テストデータ管理自動化ツールは、企業レベルの組織に様々な利益をもたらします。
1.データ品質の向上
不完全なデータ、無関係なデータ、破損したデータを基にしたテストでは、世界中のすべてのテストが実を結ばないのです。 TDMは、自動テストに必要なデータを識別、管理、保存するため、適切かつ完全なデータを確保することができます。 さらに、複数のテスター間でのデータ転送が不要になることで、データの破損を最小限に抑えることができます。
2.現実的なデータの作成
テストデータが本番データを正確に表していなければ、テスト結果は非生産的なものになります。 TDMにより、企業は本番サーバーのデータを反映したテストデータを特定・保存し、テスト結果に実際のソフトウェア機能を反映させることができます。 リアルデータ」と呼ばれるもので、形式や数量など、生産データに近いものです。
3.データへのアクセスを向上させる
自動化されたソフトウェアテストは、あらかじめ決められた時間にデータが利用可能な場合にのみ効率的に動作します。 例えば、データウェアハウスのテストツールは、認証のために特定の時間にデータにアクセスする必要がある場合があります。 TDMはデータの保存に重点を置いているため、自動テストソフトウェアや生産スケジュールで必要なときに、適切なデータが常に用意されています。
4.データコンプライアンスの確保
TDMは、以下のような政府およびその他の規制へのコンプライアンスを維持するために役立ちます。
HIPPA
,
CCPA
およびEUの
GDPR
. テストデータ管理 GDPRなどの規制により、ユーザー名や位置情報、個人情報などを含む本番データが必要となり、テストを行う前にデータをマスキングする必要があります。
テストデータ管理ツール最適なテストデータ管理ツールは、内部および外部で使用するデータを自動的に匿名化し、コンプライアンスを確保することができます。
テストデータマネジメントの課題と落とし穴
テストデータ管理は、企業レベルのソフトウェア開発において重要な利点をもたらしますが、同時に潜在的な落とし穴もあります。 TDMの課題を理解することで、組織はその影響を予測し、最小化することができます。
1.生産用クローニングは時間がかかり、コストが高い
テストデータを取得するために、ほとんどの組織は本番サーバーからデータを取得し、それを匿名化します。 しかし、実稼働データの収集には時間がかかります。特に、開発プロセスの後半で大量のコードを扱う場合は、時間がかかることがあります。
データのクローンを作成したら、そのデータを保存する場所が必要です。 インフラやストレージのコストはすぐにかさみます。 このようなコストは、データスライシングで軽減することができます。 すべての本番データをコピーするのではなく、より小さな、代表的なデータの「スライス」を切り出すのです。
2.難読化処理によるコストと複雑さの増加
前述したように、ユーザーデータは社内テスト用であっても規制が厳しく、匿名化が必要です。 残念ながら、データの難読化処理は、開発プロセスを複雑化し、コストを増大させる。
難読化のスピード、正確さ、費用対効果はすべて自動テストツールで改善されますが、関連するチームの学習曲線はまだ存在します。
テストデータ管理の必要性を示す兆候と理由
すべてのソフトウェア開発において、テストデータ管理は有益ですが、組織は必ずしも実装の優先順位を高くしているとは限りません。 次のような兆候は、TDMの導入がすぐに効果を発揮することを示しています。
- データセットサイズ、データセット総量、データベースインスタンス、上流システムの増加など、データサイズは「全面的に」増加します。
- 制作時間のうち、かなりの時間をテスト用のデータ準備に費やしています。
- 生産データは、テストデータの量をはるかに凌駕しています。
- アプリケーションの機能は、エラーを出しながら稼動しています。
- テストチームが分散していたり、中央のソースからのデータに頼らざるを得ない場合。
- テストチームが過労でテストニーズについていけない。
- テストデータの大半はアップストリームデータが生成します。
- テストデータセットは再利用できないし、複製も簡単ではない。
テストデータ管理は、これらの問題の低減、修正、防止などに役立ちます。
ソフトウェアテストにおけるデータの種類
ソフトウェア・アプリケーションは、開発中やリリース後に膨大な量のデータを生成します。 があります。 テストデータ管理プロセスは、通常、以下のデータタイプに焦点を当てる。
1.生産データ
生産データは、お客様のアプリケーションを使用する実際の人々によって生成されます。 ユーザーベースの規模やアプリケーションの複雑さによっては、本番環境のボリュームが非常に大きくなる可能性があります。
本番データには、コンプライアンスに関連する機密情報が含まれていることが多いので、注意が必要です。
コンプライアンスに関連する機密情報が含まれていることがあります。
難読化が必要な医療データや財務データなど、コンプライアンスに関わる機密情報が含まれていることが多いので注意が必要です。
2.合成データ
合成データは、手動または自動テストツールで作成されます。 実際のユーザーの行動を可能な限りシミュレートしています。
合成データは、データをぼかす必要はないものの、その有用性は限定的です。 主に新機能の負荷テストに使用されます。
合成データを正確に作成するには高度な専門知識が必要ですが、自動テストデータ管理ツールを使えば簡単に作成できます。
3.有効なデータ
有効なデータとは、予期せぬエラーやインシデントが発生しなかった場合に作成されるデータを指す言葉である。 データの形式、数値、量はテスト前の期待値と一致している。 有効なデータでは、ユーザーの旅が予想通りのコースをたどる「ハッピーパス」と呼ばれるテストが行われます。
4.無効なデータ
無効なデータは、”不幸な道 “に由来する。 それは、想定外のシナリオや故障によるデータです。 また、カオステスト(大量の不良データの中でアプリケーションの限界をテストすること)の一環としても、無効データは利用されている。
ソフトウェアテストのための「良質なデータ」とは?
不完全なデータや無関係なデータでテストを行うことは、テストを全く行わないことよりも悪いことが多く、導き出された結論やその後の処置が正しくなくなるためです。 しかし、企業はどのようにしてソフトウェアテスト用の「良い」データを特定するのでしょうか。 これら3つのデータ品質特性を確認する。
1.精度
良いデータは、現実の手順を忠実に反映しています。 マスクされた本番データを使用する場合、テストする分野に直接関連するものでなければなりません。 合成データは、予測不可能な性質も含め、実際のユーザーの行動に正確に似ている必要があります。
2.妥当性
良いデータは、テストシナリオの目的に合致しています。 例えば、オンラインショッピングの利用者の多くは、1つの商品を200個も購入しないので、そのようなシナリオでシステムの動作を大規模にテストすることは、リソースの無駄遣いになります。 ただし、10個の商品を購入するような状況を想定したテストは行いたい。
3.例外事項
データは、起こりうるが頻度の低い問題をカバーする必要がある。 お客様がクーポンコードを使って商品代金を支払うというシナリオは、Eコマースの分野では「例外データ」の一般的な例である。
データテストマネジメントを計画する前に、そして計画中に、どのような質問をすべきでしょうか?
テストの成功は、計画段階でほぼ決定されます。 初期段階において、チームは以下のような質問をする必要があります。
1.必要なデータとは?
どのようなデータを収集する必要があるかは、2つのプロセスで決定されます。 まず、テストシナリオとの関連性が必要です。 また、テストが費用対効果に優れ、効率的であり続けるためには、ビジネスとの関連性がなければなりません。
2.必要なデータ量は?
すべての生産データをコピーするなど、データが多すぎると、コストや時間がかかり、プロセスが過度に複雑になります。 一方、サンプル数が少なすぎると、結果が不正確になります。
3.データはいつ必要なのか?
テストは予定されているのか、それともオンデマンドでデータを利用できるようにすべきなのか? チームは、テスト開始前にすべてのテストスケジュールとリフレッシュサイクルを調整する必要があります。
4.どのようなテストが必要ですか?
ソフトウェアテストの自動化 は、安定した予測可能なデータセットが必要です。 テストに必要なデータがかなり異なる場合、手動テストの方が良い結果が得られるかもしれません。
データテスト管理のステップ
具体的な内容は異なりますが、企業レベルのソフトウェア開発者がTDM戦略を導入する場合、一般的に以下のステップを踏みます。
1.データ作成 – テスト用データ作成のテクニックなど
効果的なデータを生成するためには、その正確さと関連性を考慮する必要があります。 現実的なシナリオを再現しているか? さらに、典型的なユーザー活動以外のシナリオをカバーする例外データを生成する必要があります。
2.データの難読化
規制遵守のため、すべての生産データをマスクする必要があります。 難読化の種類としては、アナグラム、暗号化、置換、ヌル化などが代表的なものです。 手作業による難読化も限られた範囲では可能ですが、企業レベルのマスキングには自動化ツールが必要です。
3.データのスライシング
すべての生産データをコピーすることは、多くの場合、資源と時間の無駄となります。 データスライシングにより、管理可能な関連データのセットを収集し、テストのスピードとコスト効率を向上させます。
4.プロビジョニング
プロビジョニングは、データを取得し、マスキングした後に行われます。 プロビジョニングでは、データをテスト環境に移動させる。 自動化ツールは、CI/CD統合を利用してテストセットをテスト環境に入力する機能を提供し、手動で調整することも可能です。
5.統合
ITエコシステム内の複数のソースからのテストデータをCI/CDパイプラインに統合する必要があります(CI/CDパイプラインは、コード変更のための確立されたプロセスです)。 統合を実現するためには、すべてのデータチャンネルを早期に特定する必要があります。
6.バージョン管理
テストデータのバージョンを作成することで、繰り返しテストを行い、結果を把握することができます。 さらに、検査パラメーターを正確に変更した場合のモニタリングも可能です。
テストデータ管理の特徴・特性
TDMは、あらゆるソフトウェア開発プロジェクトの刻々と変化するニーズに適応します。 しかし、組織に必要な調整の有無に関わらず、TDMのプロセスには以下のような特徴も見られる。
1.データの品質と忠実性の向上
TDMは、テストデータの精度と現実性を高め、ユーザーの行動を真に代表するサンプルを提供します。 すべてのプロセスは、最終的に「信頼性の高い、安定したユーザー体験」という一つのゴールにつながっています。
2.法規制の遵守
テストデータ管理ソフトウェア は、テスト前にすべての本番データを十分にマスキングし、お客様の組織をあらゆるプライバシー規制に対応させることを保証します。 コンプライアンスを維持することで、罰金を含む法的な影響や、ネガティブな広報の問題を回避することができます。
3.製品の品質向上
品質保証は、時間とコストのかかるプロセスですが、機能的でユーザーフレンドリーなアプリケーションを立ち上げるためには必要なプロセスです。 TDMプロセスは、従来のサイロ化された手法と比較して、エラーの迅速な特定、セキュリティの向上、より多目的なテストを可能にします。
テストデータマネジメントの導入方法
組織のソフトウェア製品によって、さまざまなテストの仕様が決まりますが、テストデータ管理の基本的な実装は、次のとおりです。 テストデータ管理の概念基本的には以下の5つのステップを踏みます。
ステップ1:プランニング
まず、データテストチームを結成し、テストデータの管理要件とドキュメントを決定し、同時に包括的なテスト計画を策定することから始めます。
ステップ2:分析
分析段階では、各チームにまたがるデータ要件が集約されます。 また、バックアップやストレージなどのロジスティックな問題も実装されています。
ステップ3:デザイン
設計段階は、テストを開始する前の計画の最終地点です。 チームは、すべてのデータソースを特定すると同時に、コミュニケーション、文書化、およびテスト活動の計画を最終的に決定する必要があります。
ステップ4:ビルド
ビルドステージは、”ゴムと道路が出会う場所 “です。 計画は実行される。 まず、データのマスキングが行われる。 次に、データのバックアップです。 最後にテストを実行します。
ステップ5:メンテナンス
その後 テストデータ管理導入また、プロジェクトのライフサイクルに応じたプロセスを維持する必要があります。 TDMのメンテナンスには、トラブルシューティング、既存のテストデータのアップグレード、新しいデータタイプの追加などが含まれます。
テストデータ管理戦略
TDMは、開発プロセスのさまざまな要素に触れるため、すぐに複雑になってしまいます。 以下の戦略により、組織の集中力を維持し、継続的に改善することができます。 テストデータ管理アプローチ.
戦略1:データデリバリーの強化
テストデータの納期を一貫して短縮することを目指す
ソフトウェアテストサービス
テストデータの納期短縮を
ZAPTEST
. DevOps機能を持つツールは、ロータッチアプローチでテストを効率化します。
ZAPTESTでは、自動または特定の行数を使用して、シーケンシャル、ランダム、ユニークなテストデータを選択することができます。 データ範囲や「値域外」ポリシーを指定することで、機能テスト(UI、API)、パフォーマンステスト、RPAのための現実的なデータ駆動型テストシナリオを作成することができます。
さらに、自動テストソフトウェアは、ITの発券システムに代わって、ユーザーのためのセルフサービスシステムを提供することができます。
戦略2:インフラコストの削減
開発中にテストデータの量が増え、インフラリソースの使用量が増加する。 TDMツールは、データの統合、アーカイブ、テスト環境のスペースを有効活用するブックマークと呼ばれるプロセスを通じて、関連するインフラストラクチャのコストを最小限に抑えることができます。
戦略3:データ品質の向上
テストデータ管理ソリューション データの古さ、正確さ、大きさの3つの要素に着目し、データの品質特性を継続的に向上させます。
テストデータ管理の改善方法
TDMは静的なプロセスではありません。 初期設定後は、以下の点に注意して、継続的な改善に努めたいものです。 テストデータ管理のベストプラクティス.
1.データの切り出し
制御された環境でテストを実行することで、データを分離し、予想される出力と実際の出力をよりよく比較することができます。 また、データを分離することで、並行テストが可能になります。
2.データベースストレージの最小化
テストデータをデータベースに格納すると、自動テストのスピードが落ちると同時に、データの切り分けが難しくなります。 自動化されたツールに加え、データスライシングなどの技術により、必要なデータベースストレージの量を削減することができます。
3.単体テストを重視する
テスト自動化のピラミッドで確立されたガイドラインに従ってください。
テスト自動化ピラミッド
では、単体テストをテストの約半分にすることを推奨しています。 ユニットテストは外部データから独立して実行され、他のテストタイプよりもはるかに低コストで、比較的短時間で実装することができます。
テストデータマネジメントの測定方法
以下の指標は、TDM戦略の有効性について重要な情報を提供します。
1.十分なテストデータがあるか?
テストに使用するデータの管理に費やした時間を追跡することで、テストデータの可用性を測定することができます。 データが不十分だと、開発時間が遅くなり、開発者が窮屈な思いをすることになります。
2.自動テストに必要なテストデータがあるか?
自動化されたテストプロセスでは、オンデマンドでデータを必要とします。 利用可能なデータセットの割合、アクセス頻度、リフレッシュ頻度を監視します。
3.自動テストはテストデータによって制限されるか?
現在のテストデータで、いくつの自動テストを実行できるか? データの許容量を超える数のテストを実行する必要がある場合、より頻繁にテストデータを収集する必要があります。
これらの測定値を取得する最も簡単で正確な方法は、次のとおりです。 テストデータ管理ソフトウェア.
個人情報保護とその対策
テストデータ管理は、データを収集・分析するための手法として生まれましたが、時を経て、さまざまなプライバシー問題を防止する上でも同様に重要なものとなってきています。
1.データ規制
TDMは、CCPA、HIPAA、GDPR、その他すべての関連するデータプライバシー規制の遵守を貴社に保証します。 テスト時にデータを適切にマスキングできなかった場合、多額の金銭的損失や刑事罰を受ける可能性さえあります。
2.消費者の反発
情報漏洩が起きると、ユーザーは漏洩しやすいアプリケーションを使いたがらなくなるため、企業イメージは大きく損なわれることになります。 テストデータの管理は、漏洩を防ぐと同時に、潜在的なユーザーに対してデータの安全性を保証することで、ユーザーの信頼を獲得することができます。
結論
ソフトウェア開発におけるテストの必要性は、今後ますます高まり、より複雑になっていくでしょう。 品質管理を維持しながら開発プロセスを合理化するために、企業では次のようなことが必要になります。 テストデータ管理ソフトウェア、特にZAPEST社製のテスト管理ツールなどを活用する。
ZAPTEST
.
テストデータ管理ツール 最高のテストデータ管理ツール は、包括的で迅速なテストデータの作成と管理を提供し、より高機能で優れたソフトウェアをこれまで以上に迅速に提供することができます。
よくあるご質問
ここでは、ソフトウェアテストにおけるテストデータ管理に関するよくある質問に簡単にお答えします。
テストデータ管理とは?
テストデータ管理は、データウェアハウスの自動テストツールに必要なデータの作成、管理、分析です。 特定のテストパラメータに関連する高品質なデータを特定し、マスキングして、適切なチームに提供することに重点を置いたプロセスです。
最適なテストデータ管理ツール は、データの収集、難読化、保存などのプロセスの多くを自動化します。
ソフトウェアテストにおけるテストデータとは?
ソフトウェアのテストに使用されるデータの多くは、実際のユーザーによって生成された本番データです。 個人情報保護の観点から、本番データはテストに使用する前にマスキングが必要です。
ソフトウェアテストデータには、合成データもあります。つまり、実際のユーザーの行動をできるだけ正確に再現するために人工的に作られたデータです。 新機能やアップグレードを本番前にテストするためによく使われます。