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

テスト

テストの男坂

ござ先輩の記事に触発されたので書いてみる。自分が書いたプログラムに対してテストをする必要があることについてはご認識の通りでしょう。自分の趣味に留まらず、そのプログラム(で作られたシステム)がビジネスを回す上で必要だったり、「お金」という対…

負荷テストの準備

負荷テストは、ある程度の規模でのシステム開発では避けて通れない工程です。これを疎かにすると、同時アクセスが増えた時やテーブルにデータが溜まった時に思うような時間でレスポンスが帰ってこないことになりかねません。擬似的に同時アクセスをかけたり…

テストの課題

一緒に仕事をしてもらうパートナーさんの面談をする時に 大体私は簡単なJavaのソースコードとテストクラスを書いてもらってます。*1 お題は1から100までの数値に対する「Fizz Buzz」で 標準出力に結果を出力する処理をテストクラスと一緒に書いて、というも…

RDBMSに関するテスト

単体テストにおいてDAO*1周りは、世の中の風潮として、 「テストがすぐに終わらないからその部分はMockで代替」 とされてしまうことが多いと思います。 たしかに重要なのは永続化することではなく、永続化する為のデータを作る ビジネスロジック部分であるこ…

こと単体テストに至っては部分最適を求めていいと思う

例えば、DBに格納されているデータを引っ張り出して ゴニョゴニョ計算する処理があったとします。 さて、皆さんはこの処理の単体テストを書くとしたら どうしますか? DBアクセス部分と計算部分を1つのロジックと見なし、 一気にテストしちゃいます? 確かに…

第10回 xUnit Test Patterns 読書会に参加してきた

参加してきましたー。 仕事に絡まない人たちとテストについて話をする機会が無いので 今回のような勉強会はやっぱり刺激がありました。 忘れちゃいけないのは 最終的に作らなければならないのは 動くアプリケーション*1であり、 その構成要素であるソースコ…

xUTP読書会に向けて

xUnit Test Patterns 読書会に参加するのに、本が無いと駄目ですよねー。洋書だけど勇気を出して購入。 xUnit Test Patterns: Refactoring Test Code (Addison-Wesley Signature Series (Fowler))作者: Gerard Meszaros出版社/メーカー: Addison-Wesley Prof…

Kent Beck氏、ごく短期のプロジェクトではテストを省略することを提案

InfoQの記事です。 Kent Beck氏、ごく短期のプロジェクトではテストを省略することを提案 うーん、リファクタリングだけの為にテストコードを書くとしている人は それでもいいのかもしれませんが、個人的には保守し続ける為にテストが必要だと思っています。…

Maven + JUnit4.5(2)

原因がわかりました。一般的なMavenのお作法では、公開サーバーからjarを取ってくることになっていますが、 私の開発環境では、jarはSVNで管理しているワークスペースを見るようにしてます。 junit-4.5.jar system ${basedir}/lib/junit-4.5.jar どっちでも…

Maven + JUnit4.5

ビルドを見直そうと、AntからMavenに移行中。 時間はかかりましたが移行自体は、大きくつまづくことはありませんでした。 皆さんが道を切り開いてくれたおかげです。 で、そのプロジェクトには、 JUnit3系で書かれたテストとJUnit4系で書かれたテストが混在…

ユーザー企業の受け入れテストって?

ユーザー企業の受け入れテストについて話を聞く機会がありました。 その会社は、 ・操作の流れが利用者にとってわかりやすいか ・文言にわかりにくい記述があるか を受け入れテストとして実施されるようです。 ・・・それが受け入れですか。 そんなもん画面…

Mockの是非

JUnitを通す為には必要かもしれないが、Mockを作る工数を考えると 本当のクラスを呼んだほうが効率がいいかもしれない。 (画面が呼び出すサービスをMockにしておき、 画面単体で動くようにしてServiceと画面を並行して確認するのも手だが)Mockが想定どおり…

テストしやすい実装【2】

テストをしやすくするために、アプリケーションの作りを工夫することは必要だったりします。どのシステムでも使われるのは、日付系。DBから日付を取得する場合でも、APサーバのシステム日付を取得する場合 面倒でもHelperクラスを作って、モードによって本当…

テストしやすい実装【1】

シグネチャ設計において、ジェネリックスは必須(ClassCastExceptionが出ないように) List + [0] -------------> Class A + [1] -------------> Class B + [2] -------------> Class A + [3] -------------> Class A + こんなListパラメータはありえない(C…