Buzzurlの中の人日記
昔新人にバグとは何かについて偉そうに語ったことがある。
バグとは何か。以下のようなものである。
- バグの定義
- 「Aという入力に対して、Bという結果を期待したのに、Cのような結果になった」
B≠Cな状態がバグである。
最低限必要な要素は三つ:入力条件、期待する動作、実際の挙動 である。
入力というのは関数への引数でもいいし、何かの操作とか設定とか環境とかでもいい。結果というのも返り値でも挙動でも表示されるメッセージとかでもいい。
プログラマがバグ報告をするならば、上記のような書き方が好ましい。
Aという入力が100%Cという結果を引き起こすならバグ報告としてなおよい。再現状況が判明しているということだからだ。
したがって、tracにバグ報告のチケットを作るならば、必ず上記の3要素(条件、期待する動作、実際に起きたこと)を書きなさいという風に教えた。
このようにバグを定義した場合、バグ"#the_bug"が直ったとは次のような状態である。
- あるバグが修正された状態の定義
- 「#the_bugの修正としてXを行った。結果、Aという入力に対して、期待通りBという結果が返ってきた」
最低限必要な要素は4つ:何をしようとしたか(どのバグを直そうとしたかのポインタ)、修正内容、入力条件、期待通りの動作をしたという事実
したがって、commit logには必ずバグ報告へのポインタ、修正内容、入力条件、実際の挙動を書きなさいと教えた。
そんな僕の commit log はこんな感じである。
$ svn log
------------------------------------------------------------------------
r3574 | y-sudo | 2007-11-13 20:01:09 +0900 (火, 13 11月 2007) | 2 lines
アレ直した
------------------------------------------------------------------------
r3572 | y-sudo | 2007-11-13 19:46:11 +0900 (火, 13 11月 2007) | 2 lines
hogehoge
------------------------------------------------------------------------
r3571 | y-sudo | 2007-11-13 18:49:09 +0900 (火, 13 11月 2007) | 2 lines
hogehoge
...(略)
$
※この物語はフィクションです。実在の人物団体コミットログ等とは関係ありません。
プロフィール
HN:
ajiyoshi
性別:
男性
自己紹介:
カレンダー
| 10 | 2007/11 | 12 |
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 20 | 21 | 22 | 23 | 24 | |
| 25 | 26 | 27 | 28 | 29 | 30 |
カテゴリー
最新コメント
[02/11 Katz]
[02/10 出会い]
[02/10 テレフォンレディ]
[01/27 レズの出会い]
[01/26 葬儀屋がじろう]
最新記事
(03/16)
(03/09)
(02/22)
(02/20)
(02/04)
最新トラックバック
ブログ内検索
忍者ポイント
カウンター
アクセス解析

