バグ修正を任せる
バグ報告は3つで書く
バグ修正を AI に任せるとき、「動きません」だけでは直りません。人間の同僚に頼むときと同じで、必要なものは3つです。
プレーンテキスト
再現手順 どう呼んだら起きるのか
期待 本当はどうなってほしいのか
実際 いまどうなっているのかこの3つが揃うと、AI は原因を探す範囲を絞れます。逆に1つでも欠けると、AI は「たぶんこういうことだろう」と推測で埋めて、別のところを直しはじめます。
悪い報告と良い報告
プレーンテキスト
悪い 合計がおかしいので直してこれでは、何が「おかしい」のか分かりません。金額がずれているのか、エラーで落ちるのか、順番が違うのか。AI は当てずっぽうで手を入れることになります。
プレーンテキスト
良い kakeibo.py の total_by_category を
[{"category": "食費", "amount": 300}] で呼ぶと
{} が返ります。{"食費": 300} が返るはずです入力そのものを書いているのが要点です。再現できる入力を渡せば、AI は自分で動かして確かめられます。
原因を先に決めつけない
つい「たぶんループの条件が悪いので直して」と書きたくなります。しかしその推測が外れていると、AI は間違った場所を熱心に直します。
プレーンテキスト
避ける ループ条件がおかしいので直して
良い この入力でこうなる。原因を調べて直して原因の特定は AI の得意分野です。症状だけを正確に渡して、原因の推定は任せるほうが速く直ります。原因に心当たりがあるなら、「〜かもしれません」と参考情報として添える程度にとどめます。
直ったことの確かめ方
修正が返ってきたら、報告に書いた再現手順をそのまま実行します。ここで直っていなければ、まだ終わりではありません。
もう1つ大事なのは、壊れていなかったところが壊れていないかです。バグ修正は既存の動作を巻き添えにしがちです。空のリストを渡したとき、複数件を渡したときなど、周辺も一度は動かしてください。
今回の演習
おこづかい帳の集計にバグを仕込んであります。カテゴリごとの合計を出す関数ですが、同じカテゴリが複数回出てくると、最後の1件だけが残って前の分が消えます。
再現手順と期待と実際の3つを書いて、AI に直させてください。
完成条件
- 触ってよいのは kakeibo.py だけです
- 再現手順と期待と実際の3つを指示に含めてください
- total_by_category 関数の戻り値で採点します