ソフトウェアテストにおけるテスト環境
テスト環境とは何ですか?
テスト環境は、テスト チームがテスト ケースを実行するためのソフトウェアとハードウェアのセットアップです。 つまり、ハードウェア、ソフトウェア、ネットワークを構成した状態でのテスト実行をサポートします。
テスト ベッドまたはテスト環境は、テスト対象アプリケーションのニーズに応じて構成されます。場合によっては、テスト ベッドはテスト環境とそれが実行するテスト データの組み合わせになることがあります。
適切なテスト環境をセットアップすると、ソフトウェア テストが確実に成功します。 このプロセスに欠陥があると、クライアントに余分なコストと時間がかかる可能性があります。
テスト環境のセットアップ: 主要な領域
テスト環境の場合、セットアップする重要な領域は次のとおりです。
- システムとアプリケーション
- テストデータ
- データベースサーバー
- フロントエンド実行環境
- クライアントのオペレーティング システム
- ブラウザ
- ハードウェアにはサーバーが含まれます Operaティンシステム
- ネットワーク
- リファレンスドキュメント/構成ガイド/インストールガイド/ユーザーマニュアルなどの必要な文書
ソフトウェアテスト環境構築の流れ
テストは、テストできるものとテストすべきではないものに限定されます。
テスト環境の設定には以下の人々が関わっています
- システム管理者の皆様
- 開発者向け
- テスター
- 場合によっては、テストに親和性のあるユーザーや技術者もいます。
テスト環境では、次のようなさまざまな数の個別の領域を設定する必要があります。
ステップ 1) テストサーバーのセットアップ
すべてのテストがローカル マシンで実行されるとは限りません。 アプリケーションをサポートできるテスト サーバーの確立が必要になる場合があります。
たとえば、Fedora は次のようにセットアップされています。 PHP, Javaメールサーバーの有無にかかわらず、cron設定のあるアプリケーション、 Javaベースのアプリケーションなど
ステップ2) ネットワーク
テスト要件に従ってネットワークが設定されています。 それには、
- インターネットの設定
- LAN Wi-Fi設定
- プライベートネットワークの設定
これにより、テスト中に発生する輻輳が他のメンバーに影響を与えないようになります。 (開発者、デザイナー、コンテンツライターなど)
ステップ 3) PC のセットアップをテストする
Web テストの場合、テスターごとに異なるブラウザを設定する必要がある場合があります。 デスクトップ アプリケーションの場合、テスター PC ごとにさまざまな種類の OS が必要です。
例えば、Windows Phoneアプリのテストでは、
- Visual Studioのインストール
- Windows 電話エミュレータ
- あるいは、テスターに Windows Phone を割り当てます。
ステップ 4) バグ報告
バグ報告ツールをテスターに提供する必要があります。
ステップ5) テスト環境用のテストデータの作成
多くの企業は、ソフトウェア製品をテストするために別のテスト環境を使用しています。 使用される一般的なアプローチは、本番データをテスト用にコピーすることです。 これにより、テスターは、運用データを破損することなく、運用中の運用サーバーと同じ問題を検出できます。
運用データをテスト データにコピーするアプローチには、次のものが含まれます。
- データを共通のテスト環境にコピーするための実稼働ジョブをセットアップする
- すべての PII (個人を特定できる情報) は、他の機密データとともに変更されます。 PII は、論理的に正しいが非個人データに置き換えられます。
- テストに無関係なデータを削除します。
テスターまたは開発者は、これを個々のテスト環境にコピーできます。 要件に応じて変更できます。
コピー制作データにおける主な問題はプライバシーです。 プライバシーの問題を克服するには、難読化および匿名化されたテスト データを調べる必要があります。
データの匿名化には XNUMX つのアプローチを使用できます。
- BlackList: このアプローチでは、すべてのデータ フィールドは変更されません。 ユーザーが指定したフィールドを除きます。
- WhiteList: デフォルトでは、このアプローチではすべてのデータ フィールドが匿名化されます。 ただし、コピーが許可されているフィールドのリストは除きます。 ホワイトリストに登録されたフィールドは、データをそのままコピーしても問題がなく、匿名化が必要ないことを意味します。
また、実稼働データを使用している場合は、データの入手方法について賢明である必要があります。 を使用してデータベースにクエリを実行する SQL スクリプトは効果的なアプローチです。
テスト環境管理
テスト環境管理は、テスト ベッドのメンテナンスと維持を扱います。
テスト環境管理機能によるアクティビティのリストには、次のものが含まれます。
- テスト環境のすべての更新バージョンを含む中央リポジトリのメンテナンス。
- テストチームの要求に応じたテスト環境管理。
- 新しい要件に従って新しい環境を作成する
- 環境の監視
- 古いテスト環境の更新/削除
- 環境問題の調査
- 問題解決までの調整。
テスト環境チェックリスト
Hardware
- テストに必要な機器が利用可能かどうかを確認しますか? そうでない場合は、供給時間を分析してください。
- 周辺機器の有無を確認してください。 スキャナー、特殊プリンター、ハンドヘルドなど。
ソフトウェア/接続
- 必要なアプリケーションは指定されていますか?Excel、Word、図面などのアプリケーション。
- 新しいソフトウェアのテスト環境は組織に存在しますか? 組織はソフトウェアの使用とメンテナンスの経験がありますか?
環境データ
- 標準のテスト データ セットが利用可能かどうかを確認しますか? 回帰テスト セットを使用して、次の点を考慮します。 欠陥 管理者がテストデータを収集します。
- テスト データに関するテスト データ所有者との合意は存在しますか? 機能維持を考慮してください。
メンテナンスツール/プロセス
- テスト環境の保守に関する単一の窓口が存在するかどうかを確認しますか? 「いいえ」の場合は、テスト環境の実行維持に関与する可能性のあるすべてのメンバーのリストを準備します。 連絡先情報も含める必要があります。
- テスト環境の準備と品質について合意に達しましたか? たとえば、受け入れ基準、メンテナンス要件などです。また、環境のその他の/特別な品質属性が一致しているかどうかも確認します。
- メンテナンスプロセスに関与するメンバーは全員把握されていますか?
これらに加えて、テスト環境をセットアップする前に回答する必要のある質問がさらにいくつかあります。
- 社内のテスト環境を開発するか、それとも外部委託するか?
- 社内標準に従うべきか、それとも外部標準 (IEE、ISO など) に従うべきか?
- テスト環境はどのくらいの期間必要ですか?
- テスト システムと運用システムの違いと、それらがテストの有効性に及ぼす影響を判断する必要があります。
- 既存のセットアップを社内の他のプロジェクトに再利用できますか?
テスト環境管理のセットアップにおける課題
- リソースの使用に関する適切な計画リソース使用量の非効率な計画は、実際の生産量に影響を与える可能性があります。 また、チーム間で衝突が起こる可能性もあります。
- リモート環境テスト環境が地理的に離れた場所にある可能性があります。 このような場合、テスト チームはさまざまなテスト アセットについてサポート チームに依存する必要があります。 (ソフトウェア、ハードウェア、その他の問題)。
- 綿密なセットアップ時間次のような場合には、テスト設定が複雑になりすぎることがあります。 統合テスト.
- チームでの共同利用テスト環境が開発チームとテストチームによって同時に使用されると、テスト結果が破損します。
- 複雑なテスト構成特定のテストでは、複雑なテスト環境の構成が必要になります。これはテスト チームにとって課題となる可能性があります。
テスト環境管理をセットアップするためのベスト プラクティス
- テスト要件を徹底的に理解し、テスト チームのメンバーを教育します。
- テストを開始する前に接続をチェックする必要があります
- 必要なハードウェアとソフトウェア、ライセンスを確認する
- ブラウザとバージョン
- テスト環境の計画的な使用を計画します。
- 自動化ツールとその構成。
ソフトウェアテストにおけるテストベッドとは何ですか?
A ソフトウェアテストのテストベッド ソフトウェア開発環境です。 これにより、開発者は稼働中の運用サーバーに影響を与えることなくモジュールをテストできます。 テストベッドは開発者だけでなく、テスターも使用します。 これは、新しいテクノロジーの厳格かつ透明性のあるテストのためのテスト環境と呼ばれます。
まとめ
- テスト環境は、テスト チームがテストを実施するソフトウェアとハードウェアのセットアップです。
- テスト環境の場合、セットアップする重要な領域は次のとおりです。
- システムとアプリケーション
- テストデータ
- データベースサーバー
- フロントエンドの実行環境など
- テスト環境をセットアップする際のいくつかの課題には、次のようなものがあります。
- リモート環境
- チーム間での併用
- 綿密なセットアップ時間
- 統合のためのリソース使用に関する非効率的な計画
- 複雑なテスト構成