読者です 読者をやめる 読者になる 読者になる

テスト

assertion養成ギプスを作ってみた

ちょっと前、id:t-wadaさんらがtogetterで「デフォルトでテスト成功にするという JUnit の設計判断とその功罪について」っていうテーマでいろいろつぶやかれてましたね。 http://togetter.com/li/138798 あったら便利かもしれないので、assertion養成ギプス…

Test Doubleを使うとテストの信頼性/保守性が下がるのか?

最近はユニットテストを行うテストコードにおいて、Test Doubleを多用してます。Test DoubleとはMockとStubを合わせた総称です。Test Doubleを用いると、信頼性や保守性が下がると言われることがあります。しかし、それはTest Doubleの用法を誤っているため…

次第に腐るテストコード

結論を最初に書くと、 テストコードを書くだけではダメで、デイリービルドなりCIしないと意味ないんじゃないっすか?という事です。 最近Hudsonを使っていてすごいいいなぁ、と思うのがこの画面。 「リグレッション」という表現はすごい的を射ているなぁ、と…

JUnitの実行結果をGrowlに通知するEclipse Plugin(2)

id:yamkazu氏とid:nobeans氏からの要望に答え、OKとFailureとErrorでNotificationを切り替えるようにしました。 http://kompiro.org/download/junit.extensions.eclipse.quick.mac.growl_0.2.0.201005272351.jar にあげました。取り急ぎ。

JUnitの実行結果をGrowlに通知するEclipse Plugin

作りました。 Quick JUnitシリーズになるかどうかは相談したいところなのですが、パッケージ等はそうなったらいいなと思ってそうつけました。 http://kompiro.org/download/junit.extensions.eclipse.quick.mac.growl_0.1.0.201005252224.jar に置いておいた…

Mockitoノススメ テストスタイルの変化

Mockitoを使うようになってから、僕はテストコードへの取り組みが変わりました。Mockitoを使うまで僕がUnit Testと思っていたものは、厳密にはUnit Testじゃないんじゃないか、と思うようになりました。なぜかというと、実装コードを書いていくと、たくさん…

Mockitoノススメ

モックライブラリ使ってますか? 僕はJavaの人なので、主にJUnitを使ってテストコードを書いています。テストコードを書いている最中、「もしこのオブジェクトから例外が帰ってきたら、ちゃんと例外のハンドリングができてんの?」等々、既存のオブジェクトの…

あなたは何をテストしますか?

昨日はDevLOVEに参加して来ました!「世界のすべてをテストせよ。〜Make the world Green by Test ! 〜」というサブタイトル。それを受けて自分は「何をそんなにテストしたいのだろう」と疑問がふと頭に浮かびました。 また地雷を踏んでみましょうか。InfoQの…

TDD、TDDと言うけれども。TDDのダークサイドについてそろそろ一言語ってみる。

id:t-wadaさんの話の中で、TDDが品質を保証するわけではない、という話があったんですが、それについて私見をつらつらと。ちなみに自分は2年くらい仕事でTDDをやってきました。 やってきた中で下記のTDDの利点を感じることができました。 その時に気づいた最…

第二回チキチキ 日本ペアプログラミングの会java-ja支部会(仮)に行ってきた。

さてと、日本ペアプログラミングの会、と聞いたらほいほいでかけないわけないじゃないですか。最近自分はTDD信者ではなくなりつつあります。これについては別のエントリで書きますね。 それとですね、JUnitMaxとQuickJUnitのデモをしてきました。JUnitMaxに…

テストコードを書く意味

那須のKentBeckこと咳さん曰く テストでは品質は上がらないですよ。テストはあくまでも品質をあげるきっかけ。品質をあげるのはプログラミングです。これは大昔からそう。 http://kakutani.com/20090213.html#p03 と言う言葉がありました。確かにそうだよな…

プラグインのテストコードを書く(ツールバー編:v3.3)

今日は4年に1度の大肉の日。今日リリースとかやったらかっこいいのだけれども、今回も断念。へたれっぷりにがっくし。 さて、プラグインのテストコードを書く(コマンド編:v3.3) - Fly me to the Juno!/プラグインのテストコードを書く(ショートカット編:v3.3…

プラグインのテストコードを書く(ショートカット編:v3.3)

プラグインのテストコードを書く(コマンド編:v3.3) - Fly me to the Juno!に引き続きテストコードの型シリーズ。以外に簡単にいけちゃいそう。今回はショートカット編。題材もKenichi Takahashi氏のFontSizeChanger。リポジトリは https://eclipse-study.svn…

きっと第二回(仮)チキチキ日本ペアプログラミングの会 都元亭

行ってきたー。出鼻から道を間違えるというくじかれ具合だった上に帰りも逆の方向の電車に乗ろうとする具合の方向音痴っぷりでした。いつもながら都元さん(id:daisuke-m)のモテぶりはすごい。(男だらけだけどw) 今日はid:ykhr-kokkoさんとペアを組んでプラグ…

プラグインのテストコードを書く(コマンド編:v3.3)

TDDをしたいと思っていてもどうしてもできないことってあるじゃないですか。Eclipse Pluginの開発なんて諸にそうなんですが、振る舞いをコードに落とし込めない時はどうしようもありません。例えばツールバーをポチッと押したらアクションがあるアクションが…

Eclipse Pluginのテストを自動化するには(その10:JUnit4でも自動化できた)

とりあえずコンソール上からJUnit4でテストコードを書いたテストプラグインの実行がうまく行ったのでメモ。 バグレポート報告のページに添付されている『Eclipse Test Framework code』の方のパッチをEclipse3.3のテストフレームワークへpatch applyをする。…

Eclipse Pluginのテストを自動化するには(その9:JUnit4でも自動化する)

BugZillaを探したら、見つかりました。 https://bugs.eclipse.org/bugs/show_bug.cgi?id=153429結構要望が多いらしく、パッチも作成されているので、それを使って環境を作成してみます。

Pluginのテストを自動化するには(その8:テストの自動化まででけた)

はい。一日かけて、さらに深夜におよぶ作業でしたが、なんとかテストの自動化まで終わらせることがでけました。事前調査によってJUnit4とリンクしたテストクラスが動作しないことが分かってたので、はまる時間が少し減ってよかった。(結局はまってはいたんで…

Pluginのテストを自動化するには(その7番外編:ECFプロジェクトのCIプロジェクト)

ECF(Eclipse Communication Framework)プロジェクトではCIツールにCruiseControlが使われているということをこのプロジェクトで知りました。(これまでは噂で聞いたことがあったくらいです。)READMEがしっかりしていた点と、自分自身の備忘録をかねてどの辺に…

Pluginのテストを自動化するには(その7:拡張ロケーションを使ってデプロイする)

今回テストプラグインのデプロイをする方法を考えてみたんですが、直接テストをするためにEclipseのインストールロケーションにプラグインを展開するのはためらわれます。テストの初期化時に毎回100MB近いEclipseの配布ファイルを解凍し、テストプラグインを…

Pluginのテストを自動化するには(その6-3:テストのビルド)

ということで、テストプラグインのビルドまでできるようになってきた。明日はテストプラグインをEclipseの実行環境にデプロイしてプラグインのテストをやってみよう。やっぱ、猿真似は大切だ。SpringIDEのビルドコードからいろんなものをコピペしてます。

Pluginのテストを自動化するには(その6-2-2:後日談)

ビルドのできなかった理由javacコマンドの実行時に与えられるソースバージョン、ターゲットバージョンとして1.6を与えていなかったという罠。また、現在のプロパティの設定ではLinux環境でしか動かないようになっています。 これらのバージョンはbuild.prope…

Pluginのテストを自動化するには(その6-1:どこまで自動化したいのか確認)

まだちょっとだけしかできません。へたれです。とりあえず今回の自動化で目標とするものについて触れておきます。これを見てみるとEquinox上で動くCIツールを作りたくなるなぁ。 最低限のレベル SCM(今回はSubversion)から落とすことができる 起動するとビル…

Pluginのテストを自動化するには(その6準備編:Eclipsepedia上の自動化資料)

調べてみるといろいろと見つかりますね。 Eclipsepedia:Release Engineering このページを参考にしつつ、SpringIDEのビルドプロジェクトを修正していくことで自分のプラグインのビルドを自動化し、その後テストも自動化できそうですので、この週末挑戦してみ…

Pluginのテストを自動化するには(その5-2-2:Eclipseのビルドをしてみた:補足)

componentの指定の方法が分かりました。コマンドの中で -Dcomponent=[指定したいコンポーネントのフルパスを書く]を追加してください。Windowsだとフルパスを指定する必要はないかもわかりませんが、Linux環境だとフルパスを指定する必要がありました。コン…

Pluginのテストを自動化するには(その5-2:Eclipseのビルドをしてみた)

やっとこさビルドができましたよ。こんな感じでコマンドを打ちました。 java -jar ../org.eclipse.releng.basebuilder/plugins/org.eclipse.equinox.launcher.jar -application org.eclipse.ant.core.antRunner -DbuildDirectory=/home/kompiro/eclipse-buil…

Pluginのテストを自動化するには(その5-2:ビルドの自動化で泣いちゃうよ編)

まぁ、仕事あるのに調べながらやるのは大変だよ。えー、前回はEclipseの自動ビルド用のプロジェクトをCVSから落としてきました。で、ここ2,3日はreadme.htmlを眺めては泣かされているのです。まぁ、ドキュメントの更新は大変だよねー。で、readme.htmlを読ん…

Pluginのテストを自動化するには(その5-1:ということで、ビルドの自動化にも突っ込んじゃうよ)

まぁ、冬休みも終えたんで、のんびりとやらせてください。 プラグインのビルド自動化についての話はhttp://www.eclipse.org/articles/Article-PDE-Automation/automation.html:Titleが有名です。ちょっと前にはPluginbuilder - Build automation for Eclipse…

Pluginのテストを自動化するには(その4-2:eclipse-Automated-Testsのtest.xmlを見てみる)

今日はeclipse-Automated-Testsのtest.xmlを見てみます。 runtestsスクリプトでテストするターゲットを指定します。例として『ui』を指定した場合のスクリプトを見てみると 423行目から425行目にかかれ手います。 <target name="ui"> <runTests testPlugin="org.eclipse.ui.tests" /> </target> はい。runTestsってタスクは何?って思い…

Pluginのテストを自動化するには(その4-1:eclipse-Automated-Testsの中を見てみる)

さて、今日はeclipse-Automated-Testsを動かしてみるところをやってみました。 必要なもの ちょっと前に触れましたが、R-3.3.1.1のダウンロードサイトはこちらになります。また、直後でEclipse-SDKも必要になりますので、一緒に落としてください。 テストを…

Pluginのテストを自動化するには(その3のあとがき)

えぇと、前回ちょっとズルをしてみたんですが、気づかれましたかね。とりあえずコンソールから実行するために『-configurationや-devなどの指定はEclipseから実行したときのものをコピーしてきました』が、開発中のワークスペースをそのまま使って自動化する…

Pluginのテストを自動化するには(その3-2:テストクラスをHeadlessで動かす:後編)

さて、今日はeclipse-test-frameworkを使ってPluginのテストを実行してみましょう。eclipse-test-frameworkはEclipseのダウンロードサイトにあります。Eclipse Project Downloadsからテストを実行する環境のEclipseのバージョンを選びましょう。例えば2008/0…

Pluginのテストを自動化するには(その3:テストクラスをHeadlessで動かす:前編)

テーマ『Pluginのテストを自動化する』の第3回です。正月中に記事をまとめきろうとするのは精神上どうなのかと若干後悔。休めるときに休んどけという声もあるでしょう。でもやれるところまでやるよー! 世に出ている記事はeclipse-test-frameworkを使うとこ…

Pluginのテストを自動化するには(その2:テスト用のプラグインを作るには)

テスト用のプラグインを作るのは簡単なように見えますが、実は難解な作業です。本体のプラグインを必須プラグイン(Required-Bundle)に設定すれば一見クラスの参照関係が整うので、動作するように見えます。しかし、実際はプラグイン同士の依存関係が解決され…

Pluginのテストを自動化するには(その1:心構え編)

そもそもPluginのテストを自動化するためにはJUnit Plug-in Testで動作するテスト環境を構築する必要があります。プラグインのロジックのテストにはJUnit Testで充分やっていけるので、そちらでテスト環境を構築している方も多いと思いますが、Plug-inのテス…