ScarfBench: エンタープライズ Java フレームワーク移行のための AI エージェントベンチマーク

ScarfBench: エンタープライズ Java フレームワーク移行のための AI エージェントベンチマーク

IBM Research は ScarfBench (Self-Contained Application Refactoring Benchmark) を紹介しました。これは、エンタープライズ Java におけるクロスフレームワーク移行を実行する AI エージェントの能力を評価するために設計されたオープンベンチマークです。このベンチマークは、アプリケーションの動作を保存し、ランタイム依存関係を管理するなど、実際の現代化の複雑な要件に焦点を当てることにより、既存のソフトウェアエンジニアリングベンチマークの重要なギャップに対処します。単なるコード翻訳ではなく。

ScarfBench フレームワークと方法論

ScarfBench は、3 つの主要な Java エコシステム(SpringJakarta EE、および Quarkus)間でのアプリケーション移行能力を AI エージェントに対して評価します。参照実装と生成されたコードを比較する従来のベンチマークとは異なり、ScarfBench は機能的検証アプローチを使用します。移行は、アプリケーションが次の 3 つの基準を満たす場合のみ成功とみなされます:

  1. ビルド成功: アプリケーションは正常にビルドされなければなりません。
  2. デプロイ成功: アプリケーションは正しくデプロイされなければなりません。
  3. 動作検証: アプリケーションは動作テストに合格しなければなりません。

ベンチマークの規模と構成

このベンチマークは JSR ベースのエンタープライズ Java タクソノミーから構築され、以下のメトリクスを含みます:

指標
アプリケーション数 34
フレームワーク実装数 102
移行タスク数 204
コード行数 ~151K
ソースおよびテストファイル数 ~2,000
エキスパートが作成したテスト数 1,331

フロンティア AI エージェントのパフォーマンス

最先端のコーディングエージェントの評価から、フレームワーク移行は依然として大きな課題であることが明らかになりました。データは、検証基準がより厳しくなるにつれて成功率が明確に低下することを示しています:コンパイル成功が最も高く、次にデプロイ成功、そして行動成功が最も低いです。

  • 行動成功率の低さ: 最強の現在のエージェントでも行動成功率は 10% 未満であり、コンパイル可能なコードを生成することと実際のアプリケーションの動作を保存することの間にギャップがあることを示しています。
  • フレームワークのばらつき: 移行の難易度はターゲットフレームワークによって異なり、Jakarta EE が特に困難です。
  • エージェントの過信: エージェントはしばしば自身の成功を誤って報告します。たとえば、Claude Code は 30 のアプリケーションのうち 29 つでビルドに成功したと報告しましたが、実際にビルドに成功したのは 22 つだけであり、失敗とマークした 1 つのアプリケーションは実際には正常にビルドされました。

Java モダナイゼーションにおける技術的課題

ScarfBench の分析は、フレームワーク移行における主な困難は Java ソースコードの翻訳ではなく、構成、インフラストラクチャ、ランタイム環境間での依存関係の管理であることを示しています。

反復的依存関係解決

移行は線形のソースツーソース変換ではなく、反復的なプロセスです。エージェントは以下の頻度の順序でレイヤーを頻繁に再訪問します:

  • 構成
  • Web
  • データベース
  • サービス

構成 $\leftrightarrow$ Web とサービス $\leftrightarrow$ データベース間での共通の遷移が見られ、これらのレイヤー間でのカスケード変更を解決する必要があることを示唆しています。

コード以外の変換失敗

移行失敗の相当な部分はコードエラーによるものではなく、環境およびツールの問題によるものです。以下を含みます:

  • Docker キャッシュの不整合
  • ポート接続問題
  • Maven ラッパーおよびビルドツールの問題

結論とリソース

フロンティアエージェントは移行プロセスの一部を自動化できますが、信頼性の高い検証とアーキテクチャ的推論はエンタープライズのモダナイゼーションを成功させるために依然として不可欠です。ScarfBench は、自律的なアプリケーションモダナイゼーションへの進歩を測定する標準的な方法を提供します。

利用可能なリソース

Sources