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
性別:
男性
自己紹介:
プログラマです。
ソーシャルブックマークサービス「Buzzurl」の開発者です。

はてなブックマークカウンタ


旧*「ふっかつのじゅもんがちがいます」カウンタ
Buzzurl

powered by Buzzurl

Twitter

カレンダー
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
最新コメント
[07/23 つらら]
[07/23 れいら]
[06/16 婚活]
[05/28 あっだ]
[05/28 もも]
最新トラックバック
バーコード
ブログ内検索
忍者ポイント
カウンター
アクセス解析
あわせて読みたい
あわせて読みたい
Powered by ニンジャブログ  Designed by ゆきぱんだ
Copyright c *「ふっかつのじゅもんがちがいます。」 All Rights Reserved
忍者ブログ / [PR]就職 結婚相談所