テストカバレッジ、テスト仕様書

id:wildcatsさんに触発されて。 (2005-02-23
昔「全ケーステストしろよ」と言われて「全ビットパターン網羅するってことですか? 入力件数の問題もあるからそれでも足りませんよね?」(COBOLでファイルを読み込んで処理するプログラムだった)などと憎らしく言い返したことがありますが(いやな奴)、「カバレッジを網羅できない」というのはそういうことだとおもいます。
プログラム内部のフラグを意図せずして使いまわしてしまい、仕様からは想定できない条件でバグになってしまったりとか。
ホワイトボックスのケースというのは、そういうバグを見つけられるように、「えーと、このループに入るときにこっちのフラグがtrueだったら...」というふうにあげていくものですよね。(ほとんどの場合、この段階でバグを発見できるように思いますし、wildcatsさんの指摘するような不要なコードも発見できることが多いと思います)
「ホワイトボックスで洗い出したけど、もう全部ブラックボックスで挙がってたよ」というのは、美しくプログラムを書く人にはよくありますね。(スキルがなくて洗い出せないのは別)

なお、私は「テスト仕様書」という形で条件と得るべき結果を記述するのは、厳密にプログラムの仕様を定める(もしくは明らかにする)ことだと考えています。なので、テスト仕様書というドキュメントはシステム開発上欠くべからざるものだと思っています。古いですかね。ま、元はコボラーですから。