SAP ECCやOracle E-Business SuiteなどのレガシーERPシステムは、フォーチュン500企業にとって重要なビジネス運営を支えていますが、これらのモノリシックアーキテクチャは現代のAPIファースト設計パターンよりも数十年前にさかのぼります。この質問は、企業がコンテナ化やマイクロサービスの分解に抵抗するブラウンフィールド環境にDevOpsの変革戦略を適用しようとした結果、自発的に浮上しました。従来の自動化アプローチは、これらのシステムがプレゼンテーションロジックを独自のABAPやPL/SQLコードベースにビジネスルールと密接に結びつけているため、ここでは機能しませんでした。組織は、単にSeleniumを使用したウェブ自動化を厚クライアントのSAPGUIインターフェースに適用することが、壊滅的なメンテナンスのオーバーヘッドと誤検出をもたらすことを発見しました。
根本的な抵抗の不一致は、ERPシステムが重 client-side セッション管理を持つステートフルなGUIフレームワークに依存しており、公開されたRESTインターフェースを持たないことから生じます。直接データベースアサーションは、数千行のレガシートリガーコードに埋め込まれているアプリケーションレイヤーのビジネスルールに違反するリスクがあるため、テスト結果において誤検出を引き起こします。共有サンドボックス環境は、ABAPトランザクションがデータベースレベルのロールバックメカニズムをバイパスする自律的なコミットを利用することが多いため、これらの困難をさらに悪化させます。さらに、リアルタイム検証には、非同期のRFC(リモートファンクションコール)処理キューや夜間バッチジョブスケジュールのためにUI確認に遅れが生じる可能性のある状態変化を検出することが求められます。
RPAスタイルの画面自動化と、Change Data Capture (CDC)メカニズムを介したイベント駆動型のデータベース検証を組み合わせたハイブリッド自動化アーキテクチャを実装します。DelphixやRedgate SQL Cloneなどのデータ仮想化ツールを展開し、テストスレッドごとに孤立した書き込み可能なデータベースのサブセットをプロビジョニングし、テラバイト規模の環境全体の複製を避けます。Seleniumの周りのSAP CBTAやSapShellラッパーのような独自の自動化アダプターを利用し、壊れやすいXPathロケーターなしで動的なDynpro制御識別子を扱います。Apache Kafkaを使用してSAP Change Pointersやデータベーストランザクションログを消費するイベントバスを確立し、UIとデータベースの状態の一貫性を確認しながら、ポーリング遅延を排除する非同期アサーションを可能にします。