バグの再現条件を特定することは大事
ごく当たり前のことですが、最近ひしと感じたので。
バグは単純なものから複雑なものまでありますが、たまに再現条件がよくわからないものに出くわすことがあります。
ある日「よくわからないけど、こういうエラーが発生する」という報告を受けてソースコードを調べ、エラーログからそれっぽいバグの箇所を見つけて修正するとバグが発生しなくなりました。
ところが、まだ完全に治っていなかったようで、またエラーが発生していると言われました。こちらとしてはエラーログを手がかりに修正していて、開発環境では再現しなくなったのでもう治したつもりだったのですが。
そこで色々と画面遷移させて入念に調べてみると、偶然ある条件でエラーが必ず発生することがわかりました。
エラー自体は「B」という画面で発生していたので「B」のプログラムのみ調べていたのですが、実際にエラーが発生する条件は、「A → B」という順で画面遷移した場合で、バグの原因は「A」のほうに潜んでいました。
再現条件がわからない間はエラーの発生している「B」のみ調べていたので、完全に原因が特定できなかったわけです。しかも原因は「A」のほうにあったとある一行だったという単純なもの。
というわけでバグを修正するときは、なんとなくではなく、再現条件を突き止めることを心がけましょうという話でした。
コメントを残す