アサーションフリーのテスト
2004年8月3日
友人から聞いた話です。どこかの誰かにはきっと本当の話でしょう。
大規模システム開発のプロジェクトが始まりました。仕事は、皆さんが名前を知っているソフトウェア/コンサルティングの大手企業に外注されました。同社は入札のために素晴らしいチームを編成しましたが、当然のことながら、実際の作業では全員が新人に差し替えられました。標準的な手順です。
ひねりを加えたのは、同社がJUnitを使用した大規模なテストを強調したことでした。すべてのpublicメソッドにはJUnitテストが必要でした。同社は、テストと緑色のバーをクライアントに誇らしげに見せました。
しかし、JUnitテストにアサーションはありませんでした。
確実にこのプロジェクトでコードカバレッジ分析を行ったかどうかは分かりませんが、もちろんそれを行ってコードカバレッジを100%にすることができます。コードカバレッジデータの解釈に注意しなければならない理由の1つです。[1]
注
1: アサーションフリーのテストはほとんどがジョークですが、まったく無意味ではありません。カルロス・ビレラから教えてもらったように、一部の障害はコードを実行することで明らかになります(たとえばNullPointerException)。