📑

ローカル環境で動作確認しづらいプロジェクトの開発で、AIに結果を検証させてから実際に動作確認してみるようにした

に公開

背景

ローカル環境で動作確認しづらいJavaのプログラムの開発を行うことになりました。このプロジェクトではローカル環境でコードの変更を行った後、開発環境にデプロイして動作確認するというのが通常の開発フローです。ただ、デプロイするにも時間がかかるので、なるべく開発効率を上げるために考えたのが、AIに動作検証させるというやり方でした。
これが結構いい感じだったので、記事としてまとめてみました。

改めて、今のプロジェクトと私の状況です。

  • Javaのプログラムだが、私はJavaの開発経験がない。
  • 開発チームを移動してきたばかりで、プロジェクトの構造が理解しきれていない。
  • 動作確認を行う場合はGoogle CloudのCompute Engineにデプロイする必要がある。
  • テストコードがない。

今回検証する内容

XMLのdetailタグを作成する関数が期待した出力を行うか

AIへの指示の例

指示内容、入力、期待する出力、データベースから取得される値を記載したマークダウンファイルを用意し、AIに与えるだけです。
ちなみにselectUsersInfo.sqlcreateXmlDetailTag関数の中で実行されます。関数の中でいろんなテーブルから値を取得するような場合は、users.mdgroups.mdなど複数のファイルに分けて、これらのファイルを参照するように指示しています。
雑な指示内容ですが、これだけで十分理解してくれます。

test_output_xml_detail_tag.md
以下の関数が、期待するXML detailタグを出力するか検証してください。

確認対象: CreateXml.javaのcreateXmlDetailTag関数
selectUsersInfo.sqlでid=3のときに取得される値:

[
	{
		"ID" : 3,
		"GROUP_NO" : 1,
		"CONDITION" : "とても良い",
		"UPDA_DTE" : "2025-07-31 17:09:56"
	}
]


期待するXML detailタグの内容:

<detail>
    <members />
    <user_info>
        <info_tag>
            <condition>とても良い</condition>
        </info_tag>
    </user_info>
</detail>


AIの検証結果

下記のスクショは実際のコードを元に検証させた結果なので、上記のcreateXmlDetailTag関数の検証結果とは異なりますが、こんな感じで結果を返してくれます。

注目したいのが、検証結果の注意点として補足されている箇所です。データベースから取得されるはずの値と期待するXMLの値に差異があったようです。ユニットテストであればテストがfailで返ってくるケースですが、AIはうまく吸収し、success扱いとなっています。success扱いとしたけどここに差異があったよと教えてくれるので、人間は本当に期待した結果が得られているかどうか確認することができます。

ここが便利

検証の結果、期待した結果にならない場合はAIが修正案を提示してくれます。
もしくは、最初からcreateXmlDetailTag関数が期待したXML detailタグを出力するようにコードを修正してくださいと指示するのもありです。私はJavaに慣れたいこともあり、最初は自分で書いてみてからAIに検証を依頼する形をとりました。

この後の流れ

あとは開発環境にデプロイしてみて、実際の動作を確認するだけです。コードを1行変えた結果を確認するためにデプロイする、というケースをかなり減らすことができたので、開発効率はだいぶ良くなったような気がします。

レスキューナウテックブログ

Discussion