アジャイル開発の中の1つのプラクティスであるTDD(Test Driven Development、テスト駆動開発)に使われるユニット・テスト、というものの役割について、よくテスト界の人との意見の相違がある。テストとしての完全性、や、品質保証についての考え方から見ると、テストとは呼べないのでは?ということ。

最近、アメリカテスト界の有名人であり、アジャイルコミュニティへの貢献も大きい、Brain Marick(www.testing.com/cgi-bin/blog) 氏とメールで話す機会があった。

アメリカでのコンセンサスは、TDDのテストはテストとしては二義的であり、一義的には、「設計ツール」だ

これは、以前「テストの役割=進捗管理+設計戦略」

blogs.itmedia.co.jp/hiranabe/2005/08/sd4__c05e.html

紹介した、t-wadaさんの「テストという言葉について」にも書かれている。

それであれば、

「テスト」の語彙を使わずに、「設計」の語彙をより積極的に使ってはどうだろう

testspc という試みがある。BDD(Behavior Driven Development、ビヘイビア駆動開発)だ。 Dan North がJUnit を改良して、jBehaveというツールを開発している(http://jbehave.codehaus.org/)。ここでは、テストの語彙群が振る舞い(もしくは仕様)の語彙群で置き換えられている。これは、非常に単純な置き換えに見えるかもしれないが、大きな飛躍への可能性でもある。

具体的には、test/assert という名前セットから、より仕様としての振る舞いを連想させる、should/Veiry という名前を使う。

例えば、空スタックのテストであれば、

public void testEmpty() {
        Stack stack = new Stack();
        assertTrue(stack.isEmpty());
}

ではなく、

public void shouldBeEmpty() {
        Stack stack = new Stack();
        Verify.that(stack.isEmpty());
}

当然だが、製品コード(Stack)よりも先に、この仕様コードを書き、それを満たすように製品コードを書く。さあ、どうだろう。より「仕様」が見えない?(※ このコードがすごいのは、仕様として「すらすら」読めること!Verifyクラスのstatic メソッドである that() というメソッドネーミングは絶妙だと思う)

「テストを使って仕様を設計する、そしてそれをテストと呼ばずにビヘイビアとよぶ」。これが新しいコンセプトだ。

「新しい名前」は、時として飛躍へのカギを持つことがある。

ちなみに、Ruby界隈にも、rSpec という同様の動きがある。http://rspec.rubyforge.org/

この翻訳をかくたにさんがやっている。http://kakutani.com/20051013.html#p02

※ぼくはAgile Development Conference 2004(レポートがhttp://www.objectclub.jp/community/adc/index2004 にあります)で、Dan NorthがjBehaveのデモを、廊下でやっていたのをみました。自分のPCで聴衆にみせてました。また、Alistair Cockburn の自宅に遊びに行った際も、この名前群の置換の重要性について、Ward Cunningham にとくとくと説いていましたっけ。

平鍋

Special

- PR -
コメント
なますて 2005/10/14 09:39

>Verifyクラスのstatic メソッドである that() というメソッドネーミングは絶妙だと思う

thatは「同格のthat」と考えればいいのでしょうか?

平鍋 2005/10/14 10:31

目的語を導く接続詞のthatで、I think that ... の that と同じです。

Verify that (the) stack is empty.
「スタックが空であることを、確かめる」

と読めます。

なますて 2005/10/14 11:39

ああ、そうか。
thatの前が動詞だから同格なわけないですね。
お恥ずかしい(^^;ゞ
でも、勉強になりました


コメントを投稿する
メールアドレス(必須):
URL:
コメント:
トラックバック

http://app.blogs.itmedia.co.jp/t/trackback/77444/2842751

トラックバック・ポリシー


» このブログのTOP

» オルタナティブ・ブログTOP



プロフィール

平鍋 健児

平鍋 健児

株式会社チェンジビジョン代表取締役社長、永和システムマネジメント副社長。
オブジェクト指向開発、UMLの勘所、アジャイルな開発手法の未来、マインドマップのソフトウェア開発での利用方法、プロジェクトファシリテーション(見える化)を語ります。現在、マインドマップとUMLの融合エディタ、astah*(アスター、旧JUDE)を開発中。

詳しいプロフィール

最近のトラックバック
カレンダー
2012年2月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      
カテゴリー
エンタープライズ・ピックアップ

news094.gif 富士通元社長の山本卓眞氏が残した次代へのメッセージ
富士通の社長、会長を務めた山本卓眞氏が亡くなった。哀悼の意を込めて、日本のIT産業界の大御所が残した次代へのメッセージを紹介しておきたい。(2/6)

news094.gif Facebook就活はもう古い?
約260人のブロガーが、ITにまつわる時事情報などを日々発信しているビジネス・ブログメディア「ITmedia オルタナティブ・ブログ」。その中から今回は「就活」「都心の雪」「ソーシャルメディア」などを紹介しよう。(2/4)

news094.gif 東北をコットンの生産地としてブランディングしたい──リー・ジャパン・細川取締役
塩害に強い綿の生産で東北に新たな産業を作りたい。オーガニックコットンの採用など、環境負荷を下げるジーンズ生産に取り組んできたリー・ジャパンの新たなチャレンジとは──。(1/30)

news094.gif 東北から始まるイノベーション
企業のICTを活用と若手IT技術者による東北発のイノベーションが、中長期的な震災復興の鍵となる。(1/27)

news094.gif 貧困国の雇用を創出する印刷屋、丸吉日新堂印刷の挑戦
全国から約2万7000件の名刺制作を受注をする札幌の小さな印刷会社の成功の秘密は、地道な社会貢献にあった。(1/16)

オルタナティブ・ブログは、専門スタッフにより、企画・構成されています。入力頂いた内容は、アイティメディアの他、オルタナティブ・ブログ、及び本記事執筆会社に提供されます。

Special

- PR -

サイトマップ | 利用規約 | プライバシーポリシー | 広告案内 | お問い合わせ