この記事について
この記事は、生成AIを活用した自動生成フローで作成しています。OpenAIとGoogleの公式情報を確認し、旧版を現在の実務向けに見直しました。検証ステータス:📘 公式情報確認済み/サンプルは説明用で実環境未実行
バグ修正では、モデルに長い思考過程を書かせることより、再現できる入力、期待結果、最小の修正差分、テスト結果を残す方が実務で検証しやすくなります。
最初に再現条件を固定する
対象: divide_list(values, divisor)
再現入力: values=[10, 20], divisor=0
現在: ZeroDivisionError
期待: 呼び出し側が扱える明示的な例外
変更禁止: divisorが0以外の正常系の戻り値
修正とリファクタリングを分ける
最初の変更ではバグを止めるための最小差分だけを求めます。命名変更、関数分割、型設計の見直しなどは、テストが通った後の別工程に分けます。変更理由が混ざらないのでレビューしやすくなります。
出力に必要なのは検証可能な成果物
- 原因の短い説明
- 変更箇所
- 修正後コード
- 追加したテスト
- 実行したコマンドと結果
- 未検証事項
機械処理する場合はStructured Outputsを使い、JSONの形をAPI側で制約すると扱いやすくなります。
テスト例
def test_zero_divisor():
with pytest.raises(ValueError):
divide_list([10, 20], 0)
def test_empty_list():
assert divide_list([], 2) == []
def test_normal_case():
assert divide_list([10, 20], 2) == [5, 10]
LLMの自己評価だけで完了にしない
「正しく修正できた」という文章ではなく、実際のテスト、静的解析、ビルド、lintなどを外部ツールで実行した結果を完了条件にします。
公式情報・一次情報
この記事の更新履歴
- 2026-09-13 追加:再現条件、最小差分、回帰テスト、外部ツール検証の流れを追加。
- 2026-09-13 変更:詳細なCoT出力を中心とした設計から、検証可能な成果物を中心とした設計へ変更。
- 2026-09-13 削除:内部メタ情報、本文H1、思考過程全文をJSONへ格納する要求を削除。

