こんにちは、懸田です。
>>>>> In [extremeprogramming-jp : No.01712]
>>> Hada Akihiro <Akihiro.Hada@....jp>さん wrote:
> 牛尾さん、懸田さん、今日は。
> 平鍋さん、紹介ありがとうございます。
> 筆者に成り代わり、回答します。
わざわざありがとうございます。
> At 午後 04:53 01/03/12 +0900, Takeshi Kakeda wrote:
> snip.
> まず、前提として(アンケートにも書きましたが)
> この事例は、XP を実践することを目的としている訳ではなく、
> 短期開発で、プログラマーの生産性を最大にすることが必要となり、
> XP を念頭に置きつつ、開発し、あとで XP 的に振り返ってみた、ということです。
> >> ところで、上記の資料ですが、どうやらUnitTestはしてないみたい
> >> ですね。UnitTestはXPの肝と思っていたので、かなり意外です。
> >> #計画ゲームやオンサイト顧客までできてるのに、、。
> >私も拝見しました。非常に興味深い内容でしたが、牛尾さんと同様にUnitTest
> >が実現できていないという部分が気になりました。
> 単体テストはしていますが、(extreme な)Unit Test はしていない、ということです。
> つまり、
> ・ 単体テストに、testing framework を利用していない。
> ・ 単体テストを、インテグレーション時に自動的に行なうようなことをしていない。
> ・ 単体テストを、コーディングより先にしていない。
> ということです。
> なぜか、というと、端的に言えば、アプリケーション・ロジックが単純である。
> ということです。
> 単純なアプリケーション・ロジックである場合、コードの外側に、intention を
> 書く必要があると考えていません。
> (オブジェクト指向言語なのですから。)
> 実際、JavaDoc とシナリオで十分でした。
> では、例外的なこと(失敗すべきテスト)はどうなるかですが、
> ・J2EE 環境で開発していて、失敗すべきテストは、
> 基本的に環境に任せればいい。
> ・システム的、言語的には把握できない"失敗"は、
> function test で書けばいい。
> と考えました。
> >UnitTestが徹底されていないが、機能テストを徹底してフィードバックする
> >ということを行ったと記述してありますが、品質の上で可なのでしょうか?
> で、十分な品質を持ったシステムとして、稼動しています。
> (そうでない事例を、ユーザ名・システム名を明示して紹介できません(^^))
> 単体テストは、各自に任せましたが、一例は、
> シェル+peanuts+Java
> で、テスト環境を築いています。
> >またUnitTestなしのRefactoringも非常に辛い気がします。このあたりをどのよう
> >に回避していたのかも気になります。
> まず、test first について。
> 難しいアプリケーションであれば、やっています。
> というか、オブジェクト指向言語で書く場合、そうしないと書けない、
> というのが実感です。
> しかし今回のアプリケーションは単純なので、
> Refactoring するというほどのプログラムではありません。
> "機能を変えずに、実装を替える"という余地がほとんど無いのです。
> ほんとにナイーブなプログラマーから見れば、自由度はあるのかも
> 知れませんが、ある程度の域に達していれば、一つの解しかない、
> といような類です。
> ので、辛くありませんでした。
> >
> >あと文中には触れられていませんが、メタファーの実践について詳しく話を
> >伺いたいですね。
> 白板に、クラス図とシーケンス図を書いて、共有した、というのが
> 実践の全てのようです。
> "詳しく"とは、どのようなストーリを期待していますか?
> >
> >私がお客さんにXP(というかJUnitによるTesting)を紹介した時に「短かい納期でテス
> >ト書い
> >ている時間があるのか?」と反論されたことがありますが、この記事のプロジェ
> >クトも同様の理由でUnitTestをはしょったのでしょうか...
> このお客さんの"時間があるのか"という質問の意図が不明ですね。
> 納期が、短かろうが、長かろうが、
> 書く必要のあるテストは書き、必要の無いテストは書かない。
> 仕事なのですから。
> 今回のシステムの特徴と、必要な品質を確保するための手段を考えた場合、
> Unit Test が必要と考えなかった、ということです。
> XP を前提にしても、
> そもそも、プラクティスにあるのは、Testing であって、Unit Tests では
> ありません。Unit test と Function(Acceptance) test の分業?は、
> ケースバイケースなのではないでしょうか。
> 確かに、自動的なテストは役に立ちます。
> しかし、残念ながら、
> 以前、GUI のテストで話題になったように、十分に実用的な web ベースの
> testing framework が無いのが、現状(少なくとも半年前には)でしょう。
> 如何ですか?回答になっていますでしょうか?
> はだ