LLMにバグ修正を頼むなら思考過程よりテストを残す ― 再現・最小差分・回帰確認

プロンプト・LLM活用

この記事について
この記事は、生成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へ格納する要求を削除。

文書情報

記事タイトル
LLMにバグ修正を頼むなら思考過程よりテストを残す ― 再現・最小差分・回帰確認
作成日
更新日
Source URL
https://papanda925.com/?p=7576

ライセンス: 本記事のうち、当サイトが権利を有する本文・自作図表は、特記なき限り CC BY 4.0 で利用できます。生成AIを活用して作成・編集した内容を含みます。コードについて、別途ライセンス表示またはリンク先GitHubリポジトリのライセンスがある場合は、その条件を優先します。引用・第三者資料・画像・商標等は本ライセンスの対象外です。 利用ポリシー

タイトルとURLをコピーしました