« 2005年10月7日

2005年10月13日の投稿

2005年10月16日 »

アジャイル開発の中の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 にとくとくと説いていましたっけ。

平鍋

« 2005年10月7日

2005年10月13日の投稿

2005年10月16日 »

» このブログのTOP

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



プロフィール

平鍋 健児

平鍋 健児

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

詳しいプロフィール

Special

- PR -
最近のトラックバック
カレンダー
2013年4月
  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 30        
hiranabe
Special オルタナトーク

仕事が嫌になった時、どう立ち直ったのですか?

カテゴリー
エンタープライズ・ピックアップ

news094.gif 顧客に“ワォ!”という体験を提供――ザッポスに学ぶ企業文化の確立
単に商品を届けるだけでなく、サービスを通じて“ワォ!”という驚きの体験を届けることを目指している。ザッポスのWebサイトには、顧客からの感謝と賞賛があふれており、きわめて高い顧客満足を実現している。(12/17)

news094.gif ちょっとした対話が成長を助ける――上司と部下が話すとき互いに学び合う
上司や先輩の背中を見て、仕事を学べ――。このように言う人がいるが、実際どのようにして学べばいいのだろうか。よく分からない人に、3つの事例を紹介しよう。(12/11)

news094.gif 悩んだときの、自己啓発書の触れ方
「自己啓発書は説教臭いから嫌い」という人もいるだろう。でも読めば元気になる本もあるので、一方的に否定するのはもったいない。今回は、悩んだときの自己啓発書の読み方を紹介しよう。(12/5)

news094.gif 考えるべきは得意なものは何かではなく、お客さまが高く評価するものは何か
自社製品と競合製品を比べた場合、自社製品が選ばれるのは価格や機能が主ではない。いかに顧客の価値を向上させることができるかが重要なポイントになる。(11/21)

news094.gif なんて素敵にフェイスブック
夏から秋にかけて行った「誠 ビジネスショートショート大賞」。吉岡編集長賞を受賞した作品が、山口陽平(応募時ペンネーム:修治)さんの「なんて素敵にフェイスブック」です。平安時代、塀に文章を書くことで交流していた貴族。「塀(へい)に嘯(うそぶ)く」ところから、それを「フェイスブック」と呼んだとか。(11/16)

news094.gif 部下を叱る2つのポイント
叱るのは難しい。上司だって人間だ、言いづらいことを言うのには勇気がいるもの。役割だと割り切り、叱ってはみたものの、部下がむっとしたら自分も嫌な気分になる。そんな時に気をつけたいポイントが2つある。(11/14)

news094.gif 第6回 幸せの創造こそ、ビジネスの使命
会社は何のために存在するのでしょうか。私の考えはシンプルです。人間のすべての営みは、幸せになるためのものです――。2012年11月発売予定の斉藤徹氏の新著「BE ソーシャル!」から、「はじめに」および、第1章「そして世界は透明になった」を6回に分けてお送りする。(11/8)

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


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