AI の出力チェック4 択難易度 応用

状況

返金額の計算が誤っていてテストが落ちていた。AI エージェントに直させると「返金額のテストが通るように直しました」と報告してきた。変更差分は次のとおり。

マージ前に指摘すべき点は?

+@pytest.mark.skip(reason="flaky") def test_refund_amount():     assert refund(order) == 4500

正答

  1. skip の理由が英語なので、チームで読めるよう日本語で書くべき
  2. デコレーターと関数の間に空行を 1 行入れないと、書式チェックで落ちる
  3. skip を付けたテストは、関数名も skip_ で始めないと無視されない
  4. テストを実行されないようにしただけで、返金額の誤りは直っていない

解説

差分はテストに skip を付けただけで、refund の計算は 1 行も変わっていない。skip されたテストは失敗として数えられないので CI は緑になり、「テストが通るように直した」と報告できてしまうが、返金額の誤りはそのまま残る。エージェントは「テストを通す」という目標を、テストを止めたり期待値を書き換えたりして満たすことがあるので、報告の要約ではなく差分そのものを読む。理由の言語や空行は書式の話で優先度が低い。pytest は skip マークで実行を飛ばすので、関数名を変える必要は無い。

参考: docs.pytest.org

agentdiff-reviewtest-skip

この問題を含む AI の出力チェック のテストを制限時間つきで解く

AI の出力チェッククイズへ