To be a professional

プログラミング関係の情報

Software Debuggingまとめ

目的

UdacityのSoftwareDebuggingのコースを、ずっと受けていましたが全て終了したのでまとめを残しておきます。

まあ演習問題は面倒だし、使用言語がPythonなので実際に使わないためやってないんですが。

Ch1 How Debbugers Works

科学的手法

デバッグには以下の科学的手法を使うべし。

  1. エラーを観察する。
  2. 仮説を立てる。
  3. 予測する。
  4. 実験する。
  5. 実験結果を観察する。
  6. 仮説が正しいか、確かめる。
  7. 仮説が正しい場合は、仮説を強化する実験を行う。
  8. 仮説が正しくない場合は、仮説を却下し新たな仮説を構築する。
  9. 上記のステップを、バグの原因が説明できるまで繰り返す。
チェック項目

バグの修正後は必ず以下をチェックするべし。

  1. 同じバグが存在していないか。
  2. エラーが再び起こらないか。

デバッグに5分以上かかる場合、系統的デバッグを行うべし。
系統的デバッグとは、デバッグの過程を記録するやり方。

これには下記の利点が存在する。

  1. エラーをいつでも再現できる。
  2. デバッグをいつでも再開できる。
  3. 同じエラーが出現したとき、すぐに解決できる。

他の人と会話するのもよい方法である。

参考

Udacity

 

Why Programs Fail, Second Edition: A Guide to Systematic Debugging

Why Programs Fail, Second Edition: A Guide to Systematic Debugging