掲載済み (2025-08-16号)
#195 533文字 • 3分

## Agentic CodingでJavaのレガシーコード100クラス以上にテストコードを書いてもらった

掲載情報

概要

https://creators.oisixradaichi.co.jp/entry/2025/08/13/103607

詳細内容

## Agentic CodingでJavaのレガシーコード100クラス以上にテストコードを書いてもらった https://creators.oisixradaichi.co.jp/entry/2025/08/13/103607 オイシックス・ラ・大地は、Agentic Codingと独自の学習ループを組み合わせることで、リソース制約のある中でレガシーJavaコード100クラス以上のユニットテスト自動生成に成功し、大幅な効率化を実現しました。 **Content Type**: ⚙️ Tools **Scores**: Signal:4/5 | Depth:4/5 | Unique:4/5 | Practical:5/5 | Anti-Hype:4/5 **Main Journal**: 86/100 | **Annex Potential**: 84/100 | **Overall**: 84/100 **Topics**: [[Agentic Coding, Javaテスト自動生成, レガシーコード対応, AIフィードバックループ, 開発効率化]] オイシックス・ラ・大地は、長年蓄積されたJavaレガシーコードのユニットテスト不足という課題に対し、限られた人的リソースで解決するためAgentic Coding(GitHub CopilotのAgentモード及びClaude Code)の活用に挑戦しました。一般的なAIによるコード生成がモダンな開発で語られがちな中、彼らは既存の複雑なシステムへの適用に焦点を当てています。 この取り組みの核心は、AIがプロジェクト固有の文脈を理解し、適切なテストコードを生成できるよう「学習」させるプロセスにありました。初期段階ではAIが既存のDB接続設定やDIコンテナの慣習を理解できず期待通りの結果は得られませんでした。そこで、まず1クラスに対しAIとの「ペアプログラミング」を実施。この過程で得られた知見を詳細な「instructionファイル」として体系化しました。この指示書には、DBアクセスのモック化方針、プロジェクト固有のユーティリティクラスの利用、例外処理の考え方、そしてJaCoCoのカバレッジ目標(Instructions 80%以上、Branch 80%以上)といった具体的なガイドラインが段階的に追加され、AIの出力品質を飛躍的に向上させました。 特に注目すべきは、AIが自身でカバレッジを測定し、不足部分のテストを自律的に追加できるよう、JaCoCoカバレッジレポートを標準出力に表形式で出すカスタムGradleプラグインを開発した点です。これにより、AIと人間が共通の認識で進捗を確認できるフィードバックループが確立されました。また、AIとの相性が悪いExcelファイルを用いたテストデータ管理から、Javaコードでの直接記述へと方針転換したことも、実用的な知見として挙げられます。 約1ヶ月間の取り組みで、100クラス以上のテストコード生成と平均カバレッジ約85%(Instructions)を達成。この事例は、Agentic Codingが単なる補助ツールに留まらず、初期投資と適切なコンテキスト付与、そして継続的なフィードバックを通じて、レガシーシステムの技術的負債解消に大きく貢献できることを示唆しています。特に、明確な数値目標設定とAIが理解しやすいフィードバック環境の整備が、大規模な開発効率化を実現する鍵であると強調されており、同様の課題を抱えるWebアプリケーションエンジニアにとって具体的な実践ヒントとなります。