次第に腐るテストコード

結論を最初に書くと、
テストコードを書くだけではダメで、デイリービルドなりCIしないと意味ないんじゃないっすか?という事です。
最近Hudsonを使っていてすごいいいなぁ、と思うのがこの画面。

「リグレッション」という表現はすごい的を射ているなぁ、と思います。以前は「失敗」となっていたと記憶しています。
なんで的を射ているかと思ったかと言うと、テストコードって回帰テストの中で動かされると、その結果は「成功」と「失敗」だけではありませんよね。仕様変更による影響がテストコードので、テストコードが失敗すると言う事もある訳で。確かid:hyoshiokさんのブログだったかで拝見したかなんかだったんですが、Oracleでは毎朝デベロッパが出社すると、QA担当の人から失敗した回帰テストが回覧し、デベロッパに「これは障害なのか、仕様変更による影響なのか」を判断してもらった、と言う話を目にしました。テストコードは毎朝結果を確認しないといけないくらいセンシティブな生き物なのでしょう。

なので、テストコードを書いているから、「テスト自動化してます」なんて言ってたら微妙なのではないかと。そう。気づいた時にはリグレッションで動かないテストコードだらけ。あなたの周りに腐ったテストコードないですか?

と言う事で2011年初エントリ。みなさま、今年もよろしくお願い致します。