根本原因デバッグ は何をしますか?
- 再現する: 正確なエラー、スタックトレース、およびそれを引き起こす最小の手順を取得します。再現できない場合は、推測する前にその旨を伝えてください。
- 特定する: スタックトレースをたどって失敗行を特定し、そこから逆方向に読み進めて、不正な状態が作成された場所を見つけます。
- 仮説を立てる: 原因を一文で述べます。ログ、テスト、またはコードを読んで検証します。原因が確認されるまでは修正を行いません。
- 根本で一度だけ修正する: 変更する関数のすべての呼び出し元をgrepします。呼び出し側ごとに修正するのではなく、共有コードを修正します。
- 証明する: 修正前に失敗し、修正後に成功するテストを追加または実行し、関連するテストも再実行します。テストプロジェクトがない場合は、影響を受けるプロジェクトをビルドし、コード上で失敗ケースをウォークスルーします。
- 報告する: 原因、修正、検証方法の3行で報告します。
禁止事項: エラーを黙らせる、盲目的な try/catch を追加する、または失敗理由を理解せずにリトライすること。