ArquillianとTDD

棚卸し5日目。Arquillianはあくまでツールなので、どんな使い方をしてもかまわない。だけどやっぱりTest Driven Developmentの思想はいろんなところで透けて見える。
例えばガイドもそうだし、下に載せるDan Allenのスライドにも謳ってある。
TDDで大事なところは例えばこんなところ

  • 開発者がテストを作成する。テストというよりは、テスト可能な仕様として作成する。
  • 網羅率100%は要求しない*1。開発者が仕様上、実装上で確認したいところを作成する。
  • 実行速度が重要。コーディングの手を止めないよう短時間でテストが終わる必要がある。

ほかにもいろいろあるけれど、この「速度」や「開発者のテスト」の観点を抜くと、Arquillianの魅力は半減すると思う。TDDって誤解されて伝わっていたり、拒絶反応があったりして、全面に押し出してArquillianを紹介することはちょっと躊躇する部分もある。特に過去のJavaEE開発においてはそれが顕著だったようだ*2
今年Arquillianを何度か紹介したが、時間の都合もあってバックグラウンドのTDDについて説明できてない*3ので、棚卸しとして書いてみた。

追記
Andrewに聞いたら、TDDはちょっと厳格にテストファーストすぎるから、それは目的ではないとのこと。もう少し広い意味で、テストの自動化を目的としているそうだ。
それは納得。ただ、個人的にはTDDではなくテスト自動化を推進している人ってあんまり知らない…。

そうそう、今日はJBoss 冬将軍ですよ!


ThoughtWorksアンソロジー ―アジャイルとオブジェクト指向によるソフトウェアイノベーション

ThoughtWorksアンソロジー ―アジャイルとオブジェクト指向によるソフトウェアイノベーション

テスト駆動開発入門

テスト駆動開発入門

実践テスト駆動開発 (Object Oriented SELECTION)

実践テスト駆動開発 (Object Oriented SELECTION)

*1:ThoughtWorksアンソロジーでは90%程度を目標、とある

*2:昔関わった案件で、JUnit禁止、って言われたことあったなー

*3:1時間じゃTDDのさわりも説明できません…