レガシーシステムを新しい技術環境へ移行する際、「新しいシステムが動作していること」と「従来と同じ業務結果を得られること」は、必ずしも同じではありません。
例えば、販売管理システムのコード変換が完了しても、金額の端数処理や顧客別の割引条件が変わっていれば、業務に影響する可能性があります。
特に、長期間運用されてきたシステムでは、仕様書が不足し、正しい処理結果を判断するための情報が十分に残っていない場合があります。
こうした状況で役立つのが、ゴールデンテスト(Golden Test)です。
ゴールデンテストは、既存システムの入力と出力を記録し、変更後のシステムと比較することで、意図しない動作の変化を発見するテスト手法です。
重要なのは、旧システムと新システムの結果が一致することだけではありません。差異が発生した場合に、その原因と業務への影響を判断できる状態を作ることです。
本記事では、Golden TestとSnapshot Testingの違い、実務での進め方、適用すべきケース、Migrationにおける判断基準を解説します。
1. ゴールデンテストとは?基本的な仕組みとSnapshot Testingとの違い
1.1. Golden Testの基本的な考え方
ゴールデンテストとは、既存システムで確認された動作や出力結果を比較基準として保存し、変更後の結果と照合するテスト方法です。
Golden Master TestingやCharacterization Testing(特性把握テスト)と呼ばれる考え方と密接に関係しています。
例えば、旧システムに同じ注文情報を入力し、生成された請求金額を記録します。
その後、新システムに同じ入力を与え、結果が一致するかを確認します。
これにより、コードの内部構造が変わっても、業務上必要な動作が維持されているかを検証できます。
ただし、旧システムの結果に不具合が含まれる場合、その不具合まで比較基準に含まれる可能性があります。
したがって、Golden Testは現在の動作を記録する手法であり、業務上の正しさを自動的に保証するものではありません。
1.2. Snapshot Testingとの違い
Snapshot Testingは、特定の時点における出力を保存し、次回のテスト結果と比較する方法です。
例えば、画面の構造、APIの応答、帳票の内容などをスナップショットとして保存できます。
Golden TestとSnapshot Testingは、どちらも保存した結果を比較する点で共通しています。
ただし、一般的にはGolden Testが既存システムの動作維持を確認する広い考え方として使われる一方、Snapshot Testingは特定の出力を保存・比較する実装方法を指すことが多くあります
実務では両者を厳密に区別せず、類似した意味で使用する場合もあります。
2. Legacy MigrationでGolden Testが重要になる理由
2.1. コード変換だけでは業務品質を保証できない
Legacy Migrationでは、旧言語から新言語へのコード変換や、データベース、実行環境の変更が発生します。
しかし、変換後のコードが正常に実行できても、業務結果が同じになるとは限りません。
例えば、数値型の違い、日付の扱い、文字コード、処理順序などによって、出力結果が変わる可能性があります。
Golden Testを利用すると、こうした差異を具体的な結果として把握しやすくなります。
2.2. 仕様書が不足しているシステムにも活用できる
レガシーシステムでは、業務仕様がドキュメントではなく、コードや実際の動作に残っている場合があります。
Golden Testを作成することで、現在の動作を比較可能な形で保存できます。
ただし、観測できていない処理や実行条件は、テスト対象に含まれない可能性があります。
そのため、事前にリバースエンジニアリングを行い、重要な業務ロジックや依存関係を把握することが有効です。
2.3. AIによるコード変換にも必要な検証方法
生成AIを活用したコード変換でも、Golden Testは重要です。
AIが変換したコードは、見た目が整理されていても、既存の業務ロジックを完全に再現しているとは限りません。
そのため、旧システムと新システムへ同じ入力を与え、結果を比較します。
3. Golden Test / Snapshot Testingの進め方:5つのステップ
3.1. STEP 1:比較する業務機能を決める
最初に、どの機能をテストするかを明確にします。
すべてのプログラムを一律に対象とするのではなく、業務への影響が大きい機能から優先します。
例えば、売上計算、在庫更新、請求書作成、外部システムへのデータ連携などです。
3.2. STEP 2:入力条件と期待する結果を収集する
次に、旧システムで使用するテスト入力を用意します。
通常の処理だけでなく、境界値、例外条件、月末処理なども含めます。
例えば、消費税計算では、金額の端数や税率の違いによる結果を確認します。
個人情報や機密情報が含まれる場合は、適切に保護された検証用データを利用します。
3.3. STEP 3:旧システムの結果を保存する
準備した入力条件で旧システムを実行し、結果を保存します。
保存対象には、数値、ファイル、API応答、帳票、データベースの更新結果などがあります。
ここで重要なのは、保存した結果を無条件に正しい仕様と判断しないことです。
業務担当者と確認し、既知の不具合や例外を記録します。
3.4. STEP 4:新システムで同じテストを実施する
次に、新システムへ同じ入力を与え、出力結果を取得します。
比較前には、日時、処理番号、生成ID、ファイルの並び順など、実行ごとに変化する値の扱いを決めます。
こうした値を適切に正規化しなければ、業務上の問題がなくても差異が大量に発生する可能性があります。
一方、業務上重要な値まで除外すると、検出すべき問題を見逃すため注意が必要です。
3.5. STEP 5:差異を分析し、承認する
旧システムと新システムの結果を比較し、差異が発生した場合は原因を分析します。
差異は、次のように分類できます。
Golden Testの基準データは、差異が発生するたびに自動更新するものではありません。
変更の理由を確認し、必要な承認を受けてから更新することが重要です。
4. Golden Testの適用判断基準と実務例
4.1. Golden Testが適しているケース
Golden Testは、既存の動作を維持しながらシステムを変更する場合に特に有効です。
例えば、次のようなケースが考えられます。
-
旧言語から新言語へコードを変換する
-
既存の業務ロジックを維持してシステムを刷新する
-
仕様書が不足している
-
多数の入力条件と出力結果を比較したい
-
AIによるコード変換の結果を検証したい
一方、業務プロセスそのものを大きく変更する場合は、旧システムとの完全一致が適切な基準にならないことがあります。
その場合、新しい業務要件に基づくテストを併用する必要があります。
4.2. 実務例:販売管理システムの移行
ここでは説明用の仮想事例を紹介します。
ある企業が、長年利用してきた販売管理システムを新しい技術環境へ移行するとします。
既存システムには、顧客別の価格計算、割引条件、消費税計算、請求データの生成などが含まれています。
移行前に代表的な注文データを用意し、旧システムで計算結果と帳票を保存します。
その後、新システムで同じデータを処理し、結果を比較します。
例えば、請求金額に差異が発生した場合は、端数処理、割引条件、計算順序などを確認します。
差異がプログラムの誤りによるものか、意図した仕様変更によるものかを判断したうえで、対応方針を決定します。
※この事例は説明用の仮想例であり、RIKAIの実際の顧客事例ではありません。
4.3. Golden Testだけでは確認できないこと
Golden Testは、保存した出力との一致を確認する手法です。
そのため、性能、セキュリティ、障害復旧、負荷への耐性などを十分に評価できるとは限りません。
また、比較対象に含まれていない業務機能の問題も検出できません。
したがって、単体テスト、結合テスト、性能テスト、セキュリティテスト、業務受入テストなどと組み合わせる必要があります。
4.4. Golden Testの結果をMigration計画に活用する
Golden Testによって確認された差異は、単なる不具合一覧ではありません。
移行に必要な追加改修、技術的な制約、テスト工数、業務への影響を判断する材料になります。
特に、重要な計算処理や外部連携で差異が発生した場合は、移行方式や切り替え順序を見直す必要があるかもしれません。
Golden Testの結果をMigration計画へ反映することで、コード変換の完了だけでなく、業務継続性を重視した移行判断につなげられます。
既存システムの現状分析から移行方式の選定、検証計画まで詳しく知りたい方は、RIKAIのシステムマイグレーションサービスをご覧ください。
まとめ
ゴールデンテストは、既存システムの動作を記録し、変更後のシステムと比較することで、意図しない差異を発見するテスト方法です。
特にLegacy Migrationでは、コード変換が完了しただけでは確認できない業務ロジックの違いを把握するために役立ちます。
実施にあたっては、次の5つのステップが重要です。
-
比較対象となる業務機能を決定する
-
テスト入力と確認条件を準備する
-
旧システムの結果を保存する
-
新システムで同じ条件のテストを実施する
-
差異を分析し、必要な承認を行う
ただし、既存の出力を保存するだけでは、その結果が業務上正しいことを保証できません。
Golden Testの目的は、単純に一致・不一致を判定することではなく、システム変更による業務への影響を可視化し、適切な判断につなげることです。
既存システムの分析、業務担当者による確認、他のテスト手法と組み合わせることで、Migrationの品質をより多面的に評価できます。
詳細はこちら
■RIKAIについて
高い技術と高い品質で事業を成功させる。
RIKAIはソフトウェア開発を軸に、「人と技術を中心としたビジネス」を展開しています。お客様に寄り添うことで、お客様の「真のニーズ」を把握し、本当に価値のあるサービスを提供します。私たちは、お客様と長期的かつ信頼できるパートナーになることを目指しています。
🏢 商号:RIKAI株式会社
📅 設立:2017年11月15日
👤 代表者:代表取締役 ドアン・ハイ・バン
📍 所在地:〒160‐0023 東京都新宿区西新宿6-12-1 パークウエスト5階
👥 従業員数:300名
🛠️ 業務内容:
・システム開発(業務システム、モバイルアプリ、インターネットサービスサイト、IoT・AIアプリ)
・システムマイグレーション
・システム保守・運用
・通信販売
🌐 公式WEBサイト:https://rikai.technology/
✉️ お問い合せ先:https://rikai.technology/contact




