【英語版やってみました】http://taichiw-e.hatenablog.com/2015-04-26テストを整備するよりもアーキテクチャを変更するほうが効果が高そうと思った話Test2月の半ばに、これまで3年弱携わらせてもらったプロダクト/チームを離れて、新しいプロダクトを担当することになりました。プロダクト面での一番大きな違いは、これまでは主にデータ更新/参照系のAPI(HTTPでコールして、JSONとかXMLとか返す)ばかりを担当してきたのですが、今回担当させていただくことになったプロダクトはいわゆる普通のWebアプリケーションで、「画面」があります。これまでは担当プロダクトがAPIだったので、EndToEndテストの整備もある程度いい感じにできてきていて、リグレッション系の不具合はほぼ0!という素晴らしいプロダクトとチームを作ってくることができました。思っていた矢先、早速、リグレッションにあたってしまいました。前の案件で、直さなくていいところまでJSPを直してしまっていたそうです。エンドツーエンドテストで細かくテストできるかここで一旦、Seleniumなどのツールでで細か目のエンドツーエンドテスト(=イメージ的には画面レベルのユニットテスト)と思いました。一ヶ月ほど前にGebというものを覚えたこともあり、GebというかSpockのデータテーブル機能が、いろんな組み合わせのテストケースを並べるにはイケそうじゃん!と思ったのですが...ダメだこれ、遅すぎる。HTMLが古くてタグにIDすら振られてねーとか言う以前に、自分のやろうとしているテストをやろうとしたら、どれだけハイスペックなマシンを使っても埒が明かねーなこれ、という結論に至ってしまいました。そんなのよりアーキテクチャ変更なんだろうな結局Viewに近いところのバグを減らすためには、Viewにロジックを持たせないことなのだろうという結論に至りました。複雑なロジックはAPI化してそこのE2Eテストを充実させるとか、JSPなんぞ使わないでテンプレートエンジンを使うとか。読者になる検索リンクはてなブログブログをはじめる週刊はてなブログはてなブログPro最新記事awkで特定の列を除外して出力するWindows10にOracleをインストールしようとしたらありがちな罠にハマった古いプログラムからも学ぶことがある...と思う。#rtechconf月別アーカイブ参加グループプログラミングインターネットテクノロジーはてなブログをはじめよう!taichiwさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。