※ 商品のリンクをクリックして何かを購入すると私に少額の報酬が入ることがあります【広告表示】 XPではテストファーストで開発を行うことを、TDD(Test Driven Development)と呼ぶ。
生きてまさん や、 アジャイルの人の一部 はBDD(Behaviour Driven Development)という考え方にしたらよいのではないかと提唱中。
現場ではテストというものは開発後にテスターが行うという認識が未だに強いので、名前を変えようと言うのが趣旨。
主にテストメソッドの名前を次のように変えようということらしい(生きてまさんはドキュメントまで出るといいなと夢想中みたい)。
TDD:testXXXValidUser (XXXはメソッド名)
BDD:shouldAllowValidUser
テストファーストにアレルギーのない現場にいる身としては、testがshouldに見た目的に代わり「テスト」という対外的なものいいから「仕様」という対外的ないいわけに変えられる、ということよりも"test"から"should"に変わったことで「どのメソッドにどういう条件の入力や状態を渡した際のテスト」から「どういう状態の物はどうされるべき」という仕様として非常にわかりやすい名前が付くであろう事が想定されることこそが利点に思える。
われわれのテストの名前付けに問題があるのかもしれないが、テストメソッドの名前+メソッド内のアサーションの双方を見ないと1年前に書いたテストの内容がわからないことが多い。
#次に出てくる問題は、アサーションではなくメソッド名で仕様を表す英語を現場の全員が記述できるかという部分だが、それは置いておく。。。
eclipseで完全に回る実装が現れるまで現場で使うことは出来ないけど(勝手に実装しろ?いやいや)、またこれで一つ開発フローが改善されるような気がする。