バグを指摘されたプログラマの返答への返答
http://www.geekpage.jp/blog/?id=2006/11/28
より。
ネタですが、ちょっとシミュレーション(揚足取り)してみました。
- 20 変だな。。。
では直してください。
- 19 初めての挙動だ。
テストのしがいがありました。
- 18 昨日は動作した。
今日までにソースコードをコミットした人は誰でしょう?
- 17 何でそうなるのかな?
どこかにバグがあるからでしょう。データの入力が想定外か、ソースコードに誤りがあるのでは?
- 16 ハードウェアの問題じゃない?
そうかもしれませんね。
- 15 どういう記入ミスで問題を発生させた?
〜〜というデータです。多分、データのフィルタリングが上手く出来ていないのでしょう。
- 14 あなたのデータに変な部分がある。
〜〜というデータです。変なデータを排除したり受け付けないコードを入れて欲しいです。
- 13 そのモジュールは数週間変更していない。
そのモジュールが元々おかしかったか、もしくはデータが想定外なのだろうと思います。
- 12 使ってるバージョンが間違ってない?
調べてみました。そうですね。or 違いました。
- 11 針の穴を通すような偶然だよ。
それを起こしてしまうことが大変なんです。
- 10 全部をテストなんてしてられないよ!
嗚呼、疲れているのですね。
- 9 これがそれの原因であるわけがない。
では、何処が原因か〜〜調べてみましたが〜〜やっぱりここです。or ここではなくあそこです。
- 8 動くけど、テストはされていない。
では、テストのしがいがあります。
- 7 誰かが私のコードを変更したに違いない 。
そろそろCVSかSubversionが必要ですね。
- 6 あなたのマシンがウィルスに感染しているんじゃない?
調べてみます。 or みました。
- 5 動かないけど、つかってみてどんな感じ?
動かないので、答えようが無いです。
- 4 このバージョンはあなたの環境では試せない
では、せめて環境により使えないことを標すメッセージボックスを出して欲しいです。
- 3 何故そういう方法で実行したいんだ ?
ユーザーの使い方はそれぞれなので、そこらへんも考慮して欲しいです。
- 2 誤動作を発生させたときに席を外していたんじゃない?
席を外しているだけで誤動作はよくないので修正して欲しいです。
- 1 私の環境では動作する
では、テスターの環境では動作しない事を標すメッセージボックスを出して欲しいです。
理由は様々。特にプログラミングしていく上で抱え込む問題に直結しているような項に共感しました。
個人的には1番の理由。「私の環境では動作する」という理由に特に共感しました。
正直、様々な環境で動作させるプログラムを書くのはとても大変なのです。DLLやOSのバージョンを逐一チェックするコードを書かないといけなくて・・・そこらへんを簡便化するようにしないと・・・というのがあります。それまでなら良いのですが作っている側としては様々な環境で動かしてもらいたいので、様々な環境で動くコードを書かなくてはいけなくなります。バージョンチェックで弾くか、バージョンチェックで分岐して沢山のコードを書くか・・・。そういうジレンマと戦わなくてはいけないところがとても大変です。
「仕様です」というのにも共感です。例えばstrcpyは引数に入れるデータが正当で無い場合、バッファオーバーフロー*1を引き起こしてしまいます。アプリケーションが落ちるのはまだよい方で、最悪、exploitを埋め込まれてしまいます。 これは大変です。しかし、strcpyの仕様では引数に入れるデータが正当かどうかを決めさせるのはstrcpy関数ではなくプログラマーなのです。ですのでテスト中に「仕様です」という現象があってもおかしくは無い気がします。
でも、ソースコードを直接見てテストする人ではなくアプリケーションを直接操作してテストするだけの人の場合には(極めてユーザーに近いテスト)では、「仕様です」では済まないのではと思っています。