アサーションのないテスト
http://martinfowler.com/bliki/AssertionFreeTesting.html
友人の友人に聞いた話である。が、少なくともところどころは実話に違いない。
ある巨大システムのプロジェクトが始まった。 それはとある大手のソフトウェア/コンサルタント会社に外注された——みんなも聞いたことがあるようなところだ。 彼らは入札時にはとても素晴らしいチームを参加させたが、実開発では当然のように全員が若手に置き換わってしまった。 全て通常の手順なのだ。
(この手順からは)意外なことに、その会社はJUnitを使った十分なテストを重視していた。 全てのpublicなメソッドにはJUnitのテストコードがついていなければならないとされていた。 彼らはクライアントに対して誇らしげに全てのテストと緑色のバーを示したのである。
しかしながら、そのJUnitのテストコードにはassertionが一切含まれていなかった。
彼らがこのプロジェクトでコードのカバレッジ解析を行ったかどうかはわからない。 しかし、たとえやったとしても、結果は100%を示したことだろう。—— つまり、コードカバレッジのデータを読み取るときには注意しなければならないのだ。