Java/JavaScriptによるWEBアプリケーションのユニットテストについて考えてみた

最近、テストについて悩んでいる。
製造工程終盤から参画したプロジェクトなのだが、なかなかバグが収束しない。私が考えるに、原因は1つ。

-テストが自動化されていない

テストが自動化されていないため、デグレードしても気がつかない(場合がある)。
デグレードを防ぐために、プログラム修正時に手動でリグレッションテストを行っているかと言えば、そうではない。時間がないからリグレッションテストを行えない、行ってもテストケースに漏れがある。

これは由々しき事態である。早急に自動化しなければ・・・。

そのように考えた際に、今後のことも考慮して、WEBアプリケーションを作成する際に使用できるテストツールについて一度整理してみようと思った。整理した結果が下図*1

実は上記の図、名前を聞いたことがあるだけで、使ったことのないフレームワークも含めてある。それが、まさに現在参画しているプロジェクトで自動化されていない部分だ。その部分とは「Viewのテスト」である。

つまり、Viewのテストを自動化することが、プロジェクトの成功に繋がるはず。
これまで、ControllerとModelのレイヤーしか扱ったことがなかったのだが、早急にViewのテスト方式を整備する必要がある

というわけで、JsUnit、QUnit、FuncUnit、Jasmine、YUI Test、JsTesterを使用(私の場合は試用かな?)し、次回以降の記事で感触を書こうと思う。

*1:JSPをViewに分類するか、Controllerに分類するか迷った。今回は、テストツールについて考えることが目的なので、Cactusでテストする対象としてServletと同じControllerに分類した。私はJSPにロジックを書くのは嫌いなので、気持ちとしてJSPはViewに分類したい。これと似たような観点で、HTMLとJSをまとめてViewに分類しているのも微妙。ViewはHTMLだけで、JSはControllerに分類すべきかと思うが、今回はクライアントサイドのテストという観点でJSはViewに含めた。