振舞駆動開発

2005年07月20日(水) 22:31 この記事をクリップ!

XPではテストファーストで開発を行うことを、TDD(Test Driven Development)と呼ぶ。
生きてまさんや、アジャイルの人の一部はBDD(Behaviour Driven Development)という考え方にしたらよいのではないかと提唱中。
現場ではテストというものは開発後にテスターが行うという認識が未だに強いので、名前を変えようと言うのが趣旨。

主にテストメソッドの名前を次のように変えようということらしい(生きてまさんはドキュメントまで出るといいなと夢想中みたい)。

TDD:testXXXValidUser  (XXXはメソッド名)
BDD:shouldAllowValidUser

テストファーストにアレルギーのない現場にいる身としては、testがshouldに見た目的に代わり「テスト」という対外的なものいいから「仕様」とい う対外的ないいわけに変えられる、ということよりも"test"から"should"に変わったことで「どのメソッドにどういう条件の入力や状態を渡した 際のテスト」から「どういう状態の物はどうされるべき」という仕様として非常にわかりやすい名前が付くであろう事が想定されることこそが利点に思える。

われわれのテストの名前付けに問題があるのかもしれないが、テストメソッドの名前+メソッド内のアサーションの双方を見ないと1年前に書いたテストの内容がわからないことが多い。
#次に出てくる問題は、アサーションではなくメソッド名で仕様を表す英語を現場の全員が記述できるかという部分だが、それは置いておく。。。

eclipseで完全に回る実装が現れるまで現場で使うことは出来ないけど(勝手に実装しろ?いやいや)、またこれで一つ開発フローが改善されるような気がする。


 
ponybadge

Powered by

Feedbacks

Tweets

Tags

Calendar