安藤@るるねっと さんへ
> ※ 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 って、ありですか?