Index: [Article Count Order] [Thread]

Date:  Wed, 2 Oct 2002 19:41:31 +0900
From:  iamcf2nd@....com
Subject:  [XP-jp:03786] Re: xUnit が最低限持つべき機能とは?  (was:  ExcelUnit)
To:  <extremeprogramming-jp@....jp>
Message-Id:  <DAV60OeyX6LCFeXumoL00003559@....com>
References:  <20021001005857ando@....jp> <20021001004224.17A9A331B8@....jp>
X-Mail-Count: 03786

安藤@るるねっと さんへ
> ※ MLの人がそそられそうな表題にしてみました。
> ※ どうでしょう?

良いです。
 → ExcelUnit は見つからなかったので自作してます。

>   ここに最低限のらしきことが書いてあります。
> http://c2.com/cgi/wiki?TestingFramework

これを見ると、
・テストケースは独立している
・テストケースに Setup/TearDown の事前/事後処理が必要
・スイートでテストケースを管理できる
・テストの統計が取られること
と、なんだか当たり前のような書かれていますね。

過去ログで話題になっていた TDD でも、似たようなことが書いてあるような
ので、これが最低ラインみたいです。
(英文なので、機械翻訳して意味をくみ取っていますが、理解できているかど
うか・・・。)

> 1、結果は、OKまたはNGの2値で返ってこなければならない。
> 2、OK, NG の数は、カウントできなければならない。
> 3、テスト用のメソッド(?)と、試験対象のメソッドはファイル
>     レベルで分離されていなければならない。

これも当たり前のような・・・今作っている ExcelUnit(名称は xlUnit)で
は、この点は作ってあります。

ファイルの分離は必要ですよね。Excel は「ソースが実行ファイルに含まれる」
形になっています。コメントなんかも、実行ファイルのサイズを増大させます。
なので、メソッド等の仕様コメントを、テスト用プロジェクトに移動させて、
ファイルサイズを縮小させようと思ってます。

>   私的には TestSuite相当と TestRepeated 相当があればなお
> 良いとか、XML 吐けると試験結果を web 化できるね。とか、
> あるのですが、言い出すときりがないですよね……。

XML は流行でしょうか? テスト結果を残したい要求はやっぱりあって、
どうせ残すならと XML になるでしょうね。出来るかなぁ。

TestRepeated は・・・参考にしている vbUnit では無いのですが何に使うも
のですか? 負荷テスト? マルチスレッドやデータベースなどタイミングで
問題が発生する可能性のあるものに対するテスト? すいません、教えてくだ
さい。



石井 さんへ。
> でも最低限すぎて開発効率が悪すぎるので,開発環境として
> 1. assertEquals で失敗した場合の期待値と実測値がわかりやすく表示される
> 2. 1. の期待値と実測値のdiffが簡単に見れる
> 3. 失敗した箇所のスタックトレースが表示される
> 4. 失敗した箇所にすぐジャンプできる
> 5. 実行するテストケースの範囲を簡単に指定して実行できる(全体,パッケー
>    ジ,テストクラス,テストメソッド単位で)
> ぐらいないとちょっとやってられないです.

1 は当然で、2 は作り込めば出来ますね。5 は始めに私も考えていたもので、
やりたいですね。今は、とりあえずスイート単位でしかテストできるように作
っていないのです。

3 4 は、どうなんでしょう? 失敗した箇所を「テストケースの中の失敗した
アサート」とすると意味がないような(特にトレース)。「実際に問題の起こ
ったコード」とすると、実プロジェクトにもトレースを書き込まないといけな
くなりますよね。

でも、テストケースの中としても、失敗したテストが 1 クリックで表示(ジ
ャンプ)されれば便利ですよね。必要な機能ですね。Excel だと、開発環境=
実行環境なので、ジャンプは簡単に出来るので実装したいと思います。


あと私は、今あるプログラムのテストを作るので「テストガバレッジ」を調べ
られるようにしたいと思ってます。テスト メソッドとメソッド、テストケー
スとクラス、テストスイートとプロジェクトが一対一になるように作るルール
を決めて作れば、わりあい簡単にガバレッジが調べられると思います。

既存のプロジェクトにテストを作る場合、一気に作るのは無理で無駄だと思う
ので、手を入れる部分についてまずテストを作る。で、手を入れて、動作を変
更していないことを確認する。これを繰り返すうちに「今、テストガバレッジ
 40 % か。けっこう網羅されてきたな。」とか、判断できれば、気分良く作業
できますよね。
# ここでお聞きしたいのですが、
 テストケースの名前    xxxTest
 テストスイートの名前  xxxTestSuite
 としているのですが、これは正しいですか? 自己流で良い!?

> 僕も Excel の仕事はやりそうにないんですが,もし仕事があれば ExcelUnit
> は当然使いたくなると思います.公開されてはいかがでしょう>藤代さん

今作っているのは「探索フェーズ」で作ったものを、そのまま使ってしまって
ます。コードは汚く、ユニットテスト用プロジェクトもないんです。テスト用
プロジェクトを作りつつ、リファクタリングして、コードがキレイに、動作保
証された状態になったら公開しましょうか。
(TclTkUnit を参考にして。)

安藤@るるねっと さん、石井 さん、ありがとうございました。



最後に。

実は Excel だと、エラー検知が出来ません。TestRunner を動かして、エラーが
あればそこで止まってしまいます。

エラー検知の出来ない xUnit って、ありですか?