basyura's blog

あしたになったらほんきだす。

書いてて良かったテストケース

障害対応とはいえ今週は久々にコードを書いている。コードを書いていると1日があっという間に過ぎてびっくりするんだけど、あーだこーだ悩みながらも結構楽しんでいたりする。
とあるシステムのとある集計ツールの修正なのだが関連する条件やパラメータが多いのもあって、それらを考慮した仕様がものすごく複雑。完璧に網羅できていないとはいえ、判定に関するテスト項目が 400 件程度。それに加えて今回の修正で 200 件の追加テストが発生。いちいち手動で画面を動かしてデータを作るのではなく JUnit を用いたテストケースを使用する。本プロジェクトでテストケース書いてるの僕ぐらいじゃないかと思うんだが、実際の所は分からない(強制はされていない)。
最初の 400 件分はあらかじめ作っていたので、それらのテストケースが通る事が大前提として仕様変更をプログラムに組み込み、追加の 200 件も通す。
仕様が決まっているのならプログラムに落とすのは簡単だ、という訳でもなく新しい仕様のために既存の判定ロジックを変える必要が出てきたりする。普通は既存のロジックを触るのが怖すぎるのだけど、テストケースがあれば「これが通れば以前の仕様を満たしている」事になるのでものすごく心強い。併せて 600 ケースを書くのは大変だったけど、一度書いてしまえば有り余るほどの恩恵を受ける事ができる。
テストケースを書いた方がいいとは思うけど、未だに JDK 1.4 だから TestCase を継承した専用の基底クラスを作って、リフレクションを使いまくったりとかなりゴテゴテした感じなのが難点。テストケースを書くのに一苦労。もう一つぐらい java のバージョンが上がれば楽になるのかもしれないけど・・・乗り換える日がくるのかなぁ。世の中から乗り遅れてる感がするのが切ない。
twitter に何回も投稿してるけど、書いてて良かったテストケース。オールグリーンが気持ちいい。