Hatena::ブログ(Diary)

music, statistics, and my life このページをアンテナに追加

2005 | 04 | 05 | 06 | 07 | 08 | 12 |
2006 | 05 | 07 |
2007 | 01 | 03 | 04 | 05 | 06 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 |

2008.11.10(Mon)

バグ取りの心得

| バグ取りの心得を含むブックマーク

 いろいろ思い悩んでいたが、意外とあっさりとカタがついた。maedaさんのおかげで・・・。手伝ってもらったおかげでできたのはよかったけれどまた「よし、これね」という感覚はお預け。とはいえ、次のことをやればいい、というのがわかったので収穫有り。今回の教訓。

 構造上のバグの見つけ方はなんとなくはわかっていたけれど、どうも今回はそれじゃなかった。すでにできあがったパッケージを使ったりして構造上のバグがなくても、数値を実際に入れてみると途中で計算できなくなったりしてエラーが出ていた。そんなときの対処法は以下のとおり。

  • バグが出たところでどの値がおかしいかを徹底的に調べる。
  • もともとのアルゴリズム(作業の流れ)をきちんと把握すること
  • 関数変数はもとをだとっていく必要があるが、計算された前の結果で問題があるのか、それとも計算後なのかをチェックする。計算前ならその関数に入れている引数の値に問題がないかどうかチェックする。計算後なら、変数の定義から閾値をとって制約できるならそれを書き加える。
  • 展開すれば同じ式でも計算機上での計算誤差がある場合があるので、同じ式でも展開前の式でもやってみて計算結果を比較する。
  • そして、最後は気合いと根性。粘り強く。
トラックバック - http://d.hatena.ne.jp/keiko-te/20081110/p2