Index: [Article Count Order] [Thread]

Date:  Thu, 26 Jul 2001 16:48:16 +0900
From:  "YAMAMOTO, Keiji" <keiji.yamamoto@....jp>
Subject:  [XP-jp:02278] Re: JUnit: Java World 9 月号
To:  extremeprogramming-jp@....jp
Message-Id:  <20010726164810.EAF6.KEIJI.YAMAMOTO@....jp>
In-Reply-To:  <20010726005121.1353.SHIMADEN@....jp>
References:  <20010726005121.1353.SHIMADEN@....jp>
X-Mail-Count: 02278


こんにちは、やまもと@ウルシステムズ です。
はじめまして。

# On Thu, 26 Jul 2001 01:05:50 +0900
# <20010726005121.1353.SHIMADEN@....jp> as
# [XP-jp:02256] JUnit: Java World 9 月号,
# Hiroyuki Shimada <shimaden@....jp> wrote:

>  こんにちは。島田です。

>  「Java World」9 月号に、JUnit についてかなり詳しく書かれていますね。
> JBuilder に組み込む方法まで紹介されています。いまのところ、あまり Java 
> はいじっていないのですが、思わず買ってしまいました。

ありがとうございます。
特集記事の方をウチの社員3人で書かせていただきました。

>  あたりまえですが、XP についても触れられていて、理解が深まる感じがしま
> した。
>  特に、リファクタリングとテストとの関係、つまりしっかりしたテストが用意
> されていればリファクタリングも怖くない、っていうあたりが面白かったです。

Cactus の方はともかく、JUnit については、もう JavaWorld でも何回
か取り上げられていることもあって、単なるインストール記事ではつま
らないな、と。最近なんでユニットテストが取りざたされるの? とい
うところを書いてみました。

記事中に「8月にサイトをあけて、関連記事を公開する」と書きました。
本当は JavaWorld の発売日に合わせてオープンしたかったんですが、
今月末に会社の移転があるなどの事情で移転後のオープンとしました。
XP専門のサイトではないのですが、開設の際にはまたアナウンスなどさ
せていただいて、こちらのリストのみなさんともコラボレートできれば
と思います。

>  これを C++ に移植して DLL 化するという計画があがりました。ただし、関数
> のシグニチャは変えちゃだめ、変えたくない、バグが入り込むのが嫌だから、と
> いうのが多くの意見でした。VB 特有のコンポーネントを引数にしているものが
> あったりと、そのままでは C++ で DLL にできません。
>  XP に従い、しっかりしたテストを書けば、安いコストでリファクタリングで
> きると思うのですが、そういうことは知られていないようです。VBUnit に限ら
> ず、テスト・コードというものも書かれていません。

関数のシグネチャは変えない、ということが必須であれば、まずそこの
ところ(外部インターフェース)のテストケースだけ書くことになるんで
しょうね。単体テストの域ではないかもしれませんけれども、テストケー
スが常にクラスと一対一になる必要がないこともあるでしょう。で、そ
のテストが通りつづけるようにリファクタリングをすればよいのかと。
リファクタリングしていけば内部の構造が変わっていくでしょうから、
そのときどきに必要に応じたテストを書く、と。納得いくまでリファク
タリングできれば、一緒に洗練されたテストができている、というのが
理想ですね。
# あとからテストを書くことの是非は置くとして。

ただ、これが安いコストかどうか、というと、あまのさんも仰っておら
れるように、直感的に「あまり安くはつかないだろうなぁ」という気が
ワタシもしますが。
# でも「必要なことは(武器と勇気を持って)する」というのは、YAGNI 
# の裏返しだと思いますから、やらなきゃいけないならやるんですよね。

>  テスト・コードを書いて、いつもプロジェクトといっしょに使えるようにして
> おくことがとても有用で、そうしてあればリファクタリングも恐れることはない
> んだよということを説得するのにいい方法ってありますでしょうか。

う〜ん、ワタシは必要にかられて始めたクチなので、「仕様が変わるの
は、ある程度はしょうがないことなんだ」ということを受け入れられる
かどうかなのかなぁ、と思ったりします。上司を説得するなら、「『仕
様変更は一切受け付けません』なんて、お客さんに云えます?」という
線から攻めてみたり、とか。

つまり、リファクタリングはしないわけにはいかない、ということを受
け入れてもらえれば、リファクタリングはテスティングに依存している
ので、と話を進められないものかと思います。
きっと、みんな「なんとかリファクタリングなしでやっていきたい」と
思ってると思うので。だって、リファクタリングってテスティングなし
じゃやっぱり怖いですものね。(^^;

それではまた。

---
#  UL Systems, Inc.
#  YAMAMOTO, Keiji <keiji.yamamoto@....jp>