並列テストとは?方法、アプローチ、例

⚡ スマートサマリー

並行テストでは、既存システムと新開発システムを同じ入力データに対して同時に実行することで、移行されたデータ、計算、および業務フローが依然として同一の結果を生成することをテスターが確認できます。

  • 🎯 目的: 新バージョンが旧バージョンと同じ、あるいはそれ以上に優れた動作をすることを証明してください。
  • 🗓️ トリガー: システム交換、データ移行、および2つのシステム間の同期期間。
  • 🚪 基準: 参加基準はサイクルを開始させ、退出基準はサイクルを終了させる。
  • 🔍 方法: 両方の出力を一行ずつ比較し、すべての相違点を分類してください。
  • ⚠️ 費用: 製品に関する十分な知識と、結果に関する包括的な説明能力が求められます。

並列テストの定義、アプローチ、および例

並列テストとは何ですか?

並列テスト 並列テストとは、ソフトウェアテストの一種で、アプリケーションの複数のバージョンまたはサブコンポーネントを、異なるシステム上で同じ入力を用いて同時にテストすることで、テスト実行時間を短縮する手法です。並列テストの目的は、旧バージョンと新バージョンの動作が同じか異なるかを確認し、新バージョンの方が効率的かどうかを検証することです。

下の図は、並列テストを示しています。

旧システムと新システムが1つの入力を共有する並行テストフロー

並列テストの例

組織が新しいシステムに移行する際、既存データは移行作業の重要な要素であり、その移行は複雑です。

ソフトウェアテストでは、新しく開発されたシステムと古いシステムとの互換性を検証するために、以下の図に示すように並行テストが行​​われます。

レガシーシステムの出力と新しいシステムの出力を比較する並列テストの例

並列テストを行う理由

並行テストは、これらの理由から実施されます。

  • 新しいバージョンのアプリケーションが正しく動作することを確認するには
  • 新旧バージョン間で結果の一貫性を確保するため
  • 2つのバージョン間でデータ形式が変更されたかどうかを確認する
  • 新しいアプリケーションの整合性を確認するには

例えば、ユーザーが現在アプリケーションのバージョン1.0を使用している場合、3月からバージョン1.1に移行することになります(下図参照)。

バージョン1.0とバージョン1.1は、移行中に並行してテストされました。

このような場合、テスターは並行してテストを実行し、データ移行が正常に完了したこと、および新バージョンの変更がシステム機能やユーザーが期待する出力に影響を与えないことを確認します。

並列テストをいつ行うか

並列テストは、次のような場合に広く利用されます。

  • 同社は旧システムから新システムへ移行している。
  • Sync2つのシステム間で同期化が行われます
  • レガシーデータは、あるシステムから別のシステムにインポートされます。
  • すべての結果は正確に定義されなければならない。例えば、金融や保険の分野では、計算がシステムの主要な機能となる。

並列テストの方法: 完全なアプローチ

並列テストを行うには、アプリケーションの異なる部分をそれぞれテストする複数のプロジェクト(スレーブプロジェクト)と、それらを実行する1つのプロジェクト(マスタープロジェクト)を作成します。

並行テストには2段階の基準がある。

  1. 並行試験の​​参加基準 並列テストを効率的に実行するために満たさなければならないタスクを定義する。
  2. 並行テスト終了基準 ―並行テスト段階の成功裡の完了を定義する。

まず、いくつかの前提条件を満たす必要があります。

  • 並行テストは開始できません。 テスト環境 セットアップが完了しました
  • すべての前提条件とシナリオを最初に定義する必要があります
  • レガシーデータと新しいデータは正常に移行される必要があります
  • 並行テストは、すべての終了条件が満たされるまで完了しません。

並列テストを以下の5つのステップで実行する。

  1. 旧システムと新開発システムを比較してテストする。
  2. 2つのシステムの違いを理解する。
  3. 同じ入力値を使用して、完全なサイクルを実行します。
  4. 新しく開発したシステムの出力と、旧システムの出力を比較して測定する。
  5. 発見されたバグの原因を報告してください。

並列テストのグッドプラクティス

いくつか役立つヒントをご紹介します。

並列テストで特定された典型的なバグ

  • 内部ロジックが変更される
  • 製品の流れが変わる
  • 主要な機能が変更されました

必要なサイクル数はいくつですか?

テストサイクルの数はモジュールの複雑さによって異なります。事前に定義されたシナリオを使用して、複数のシナリオサイクルを実行します。 テストデータ それは以前のシステムで引き継がれたものです。

違いを分類する

新システムと旧システムの結果は、行ごとに測定し、相違点を強調表示し、すべての相違点をエラーの種類別に分類する必要があります。

サイクル中に発生したエラーの種類

それぞれの相違点について、テスターはどちらが該当するかをメモしておくべきである。

  • 入力エラー
  • 旧システムに起因するエラー
  • 説明可能または許容できる差異
  • 予期しないエラー

並列テストではないもの

表が境界線を描きます。

並列テストです 並列テストではありません
更新されたアプリケーションを以前のアプリケーションと比較してテストします。 XNUMX つのソフトウェアのみをテストします。
同じ入力条件下で、新しいソフトウェアを使用して古いシナリオを実行する。 クロスブラウザまたはクロスプラットフォームテスト。
目的は、以前のシステムに従って結果を確認することです。 目的は設計上の問題点を見つけることです。
旧システムと新開発システムの両方に関する知識が必要です。 その違いを知っている必要はありません。

並列テストの課題

  • 製品に関する完全な知識が求められます。
  • あらゆる結果をテストする必要がある
  • データ入力と製品の流れには絶え間ない注意が必要である。

よくあるご質問

回帰試験 ビルド結果を、そのビルドが想定する結果と比較します。並列テストでは、2つの別々のシステムを比較し、古い方を基準として使用します。

モデルは2つの結果セットの差分を比較し、不一致をクラスタリングすることで、説明可能な丸め誤差と真の欠陥を区別できます。このトリアージは、各サイクルの中で最も時間のかかる手作業の部分です。

はい。レコードの比較やレポートの書式設定は、アシスタントが適切に処理できる反復的なコードです。許容範囲のルールについては、許容差が業務上の判断となるため、人間の判断が必要です。

テスターはテストサイクルを実行し、ビジネスユーザーが差異を判定する。金融・保険業界では、ドメインエキスパートが許容できる不一致を判断する。

旧システムからの実際の運用データ(必要に応じてマスキング処理済み)。合成データは、移行時に最も頻繁に問題となる過去の特殊なケースを隠蔽します。

この用語は両方の意味で使われます。 自動の グリッド上で複数のスイートを同時に実行することで実行時間は短縮されますが、2つのシステム間の比較は行われません。

すべての終了基準が満たされた場合:すべてのサイクルが実行され、すべての差異が分類され、説明のつかない不一致がオープンされていない。通常、サインオフの前に ユーザー受け入れテスト.

2つの稼働環境、重複データ、そして両方のシステムを熟知したスタッフ。計算ミスが規制上の問題につながる場合、コストは許容範囲内とみなされる。