Agile2009初日
- 本日聞いてきたお話。
New Approaches to Risk Management
- フィーチャは優先順位付けが必要。
- ただし、フィーチャが実現できなかったときのリスクを考えることも重要。
- そしてリスクを管理するには「割り振り(Allocation)」で考えること。
- 投資におけるポートフォリオ設計に通じるものがある。
Build and Test in the Cloud – CI and Cloud Provisioning for Agile Teams
- 最近はCloud+Agileというお題で仕事をしているので、どんぴしゃりというテーマだと思った。
- 期待した俺が阿呆だった。
- 中身はCollabNetの宣伝。
- たまにこういう発表が入るのがAgile2009にケチつけたい部分。
Integration Tests Are A Scam
- SCAM=インチキ
- 発表したのはJB Rainsberger。
- そう。JUnit Recipeの人。
JUnit Recipes: Practical Methods for Programmer Testing
- 作者: J. B. Rainsberger,Scott Stirling
- 出版社/メーカー: Manning Pubns Co
- 発売日: 2004/07/01
- メディア: ペーパーバック
- この商品を含むブログ (10件) を見る
- インチキというのは「偽りの安心感を生み出す」ということ。
- つまり、JBは「結合テストを網羅的に実施しても、それは偽りの安心感しか生み出さない。だから結合テストはインチキだ。」と主張している。
- なぜか?
- それは結合テストは時に(というか、ほぼ常に)必要なテスト件数が発散するから。
- 必死になって網羅的なテストを組んだとしても、それでどれほどの網羅率になるのかは明らかではない。
- そして実行時間はどんどん増える。
- テストの実行時間が増えるということは、問題検知が遅れる、ということ。
- それだけバグの摘出と対策は難しくなる。
- だったら、Unit Testの延長で「Collaboration Test」と「Contract Test」をやればいいじゃん、というのがJBの主張。
- もちろん、インターフェースをきっちりとくくり出すなどの工夫は必要。
- これだとテスト件数はクラス・メソッドの数に比例するだけ。組み合わせみたいに級数的には増えない。
- 賛否両論あるだろうけど、自分はJBの主張に同意したい。
- ただし、たまに(?)みかける巨大クラスや巨大メソッドには適用できない。
- あと、JBは要件を確認するためのテスト(UATなど)は否定していないし、やるべきだと言っている。そこは勘違いしないでほしい。