Index: [Article Count Order] [Thread]

Date:  Thu, 26 Jul 2001 17:09:41 +0900
From:  Takashi Abe <abetaka@....jp>
Subject:  [XP-jp:02279] Re: assert  で表現できないメソッドのテスト
To:  extremeprogramming-jp@....jp
Message-Id:  <200107260809.AA00569@....jp>
In-Reply-To:  <200107261554.EGI38913.JBIH@....jp>
References:  <31096999.996123125804.JavaMail.imail@derby>	<200107260556.AA00567@....jp>	<200107261554.EGI38913.JBIH@....jp>
X-Mail-Count: 02279

阿部です。

>> というパターンです。なんせ上司の目があるので、テストコードを書くのに
>> 時間を取られて機能の実装が遅い、というのはご法度ですから、執拗なテスト
>> などというものは後回しになります。
>> 
>上司の目は関係ないでしょう。
>テストする項目は、失敗しそうなすべてのことです。
 進捗が気になってしょうがないのは上司の常では?と思ってるんですが。
ですから、テストの半分くらい(エラーコードが帰ってくるパターンとか)
は後回しにして、基本的なテストを先に書いてから機能の実装に入ります。

 テスト項目として考え付く全パターンは最終的には挙げますけど、
私の場合「テスト・ファースト」は半分しか守らずに複雑なテストは
後回しにする、という事です。理由の半分は、全テストを最初に列挙する
ほど頭が良くない、という事です。正直言って、コードを書きながら有効な
テストを思いつくことも多いです。

 後半分は、複数のメソッドを利用するテスト(別発言にあるDBアクセスとか)
などは、例えばinsertとselectが両方実装できていないとテストが成功しない、
という意味では単体の実装より後回しにしているという事です。

 基準としては、1日、あるいは数時間でメソッドの実装を終えられないテストは
せめて必要なメソッドがそろってから実装する、としています。


 そうすることで「テスト・ファースト」は破られてしまいますが、毎日
ほぼ確実にテストが100%成功するコードをコミットできます。
 XPで「テスト・ファースト」が重要であっても、私的なプライオリティでは
「テストに成功したものだけをコミットする」という方が重要です。これは
チーム開発する上でCVSを用いて開発している関係上、動きもしないコードを
コミットされると困る、との判断からです。
 と同時に、XP自体の導入を1つ1つ試して効果を見ながら行っている関係上、
いきなりチーム全員に厳密な(書籍に書いてあるとおりの)XPの全プラクティス
を守らせることはできませんから、徐々に楽な方向から、チームに合った、
できうる限りのプラクティスを盛り込んだ形に徐々に変えていく、というスタイル
を取っています。いずれは「テスト・ファースト厳守」というスタイルになる
かもしれませんけど、今はまだ様子見、という事です。

-------------------------------------------------------------
Takashi Abe  <abetaka@....jp>
HP: http://homepage1.nifty.com/taka-page/

合気道 薫友会 : http://homepage2.nifty.com/kun-yu/index.html
-------------------------------------------------------------