恥ずかしいことですが、筆者は、先述した4つのパターン全てのバグを作ったことがあります。以下、筆者の失敗談を紹介します。
ある条件を入力すると、異常処理を起こすテスト項目を作成していたのですが、異常になりません。プログラムのバグと思い、ソースコードの処理内容を見直すと、この入力条件では異常処理とならないことが分かりました。結果、テスト項目を修正して再テストしました。テストの入力値が正しければ、ソースコードを細かく見る必要はなく、余計な時間をかけることもありませんでした。
プログラムの細部を修正後、テストをすると、修正が反映されていないことが分かりました。「修正不十分だったのかな」と思い、ソースコードを細かく見直すと、修正は問題なさそうでした。念のため、実行可能形式ファイルのタイムスタンプを確認すると、日付が違っており、間違ったバージョンをテストしていました。「バージョン違い」は、なかなか気が付きません。あちこちを散々チェックした結果、「バージョン違い」が分かった時、ホッとしたのと同時に、自分の不注意に腹が立ちました。
何回も同じテストを実施していると、疲労やモチベーションの低下で、出力結果が正しく見えることがあります。ある時、テスト項目を見直していると、テスト結果がおかしいことに気付きました。前のバージョンに戻しても同じ結果となり、とても焦りました。このテスト項目は、最初から正しく通っていないのです。この時も、余計な作業が大量に発生し、「あの時ちゃんと確認しておけば……」と強く後悔しました。
正しいテストするには正しい条件で実行しなければなりません。通信系プログラムを作成していて、データを正しく送信できなかったことがありました。Linuxコマンドの「ping」を打ってもアンサーが来ないため、なぜだろうと思っていたところ、そもそも、LANケーブルを接続していないことが分かりました。お粗末で恥ずかしい失敗ですが、顧客先で起きると、とても焦りますね。
Copyright © ITmedia, Inc. All Rights Reserved.