ソフトウェア開発自動化の今
ソフトウェア開発の自動化と言えば、以前はコードの自動生成を指しましたが、近年では設計書の自動生成やテスト自動化など、製造工程だけでなくその前後の工程への広がりを見せています。一方、Maven参考1、NEXUS参考2、Jenkins参考3、4等の開発管理ツールの成熟・普及に伴い、コーディング、コンパイル、パッケージング、デプロイといった一連のビルドプロセスの自動化、および継続的インテグレーション(CI)にも注目が集まっています。
JavaScript用のユニットテストツール参考5
JavaScriptには様々なテストツールが存在します。有名なものでは、JsUnit、YUI Test、QUnit、JsTestDriver等が挙げられます。また、画面のテストを実施する観点から、SeleniumやSilkTestを利用される方もいらっしゃると思います。その中で、今回はJsTestDriver参考6に焦点を当てたいと思います。
JsTestDriverの特徴
JsTestDriverはJavaのテストで一般的に使われるJUnitと似た使用感を持ち、初めての方でも違和感なく使えます。図のようにEclipse上で操作でき、ブラウザをエミュレートして利用するのではなく、テストしたいブラウザを複数キャプチャ(例えばChromeとIE)し、同時にテストできるので、クロスブラウザでテストを行いたい場合に有効です。
他にも以下のような特徴があり、注目しています。
- Coverageツールが用意されており、結果をHTML化することが可能。
- Gateway機能があり、ボタン押下によるsubmitを行いサーバサイドと通信するテストに利用できる。コマンドラインで実行でき、Mavenのプラグインも用意されているため、CIとの親和性が高い。
- QUnit Adapterが用意されており、QUnitのテスト資産を流用できる。QUnitでテストコードを組み、テストランナーとしてJsTestDriverを利用する、といった使い方ができる。
まとめ
ソフトウェア開発自動化の肝は、ソフトウェア開発におけるコスト構造のうち、労働集約的になっている箇所を、知識集約的に変えていくことです。現状で工数比率が大きいテストの自動化を検討する中で、CIとの親和性が高いJsTestDriverは、今後の選択肢の一つになると考えています。
参考文献
- 参考1Apache Maven(外部リンク)
- 参考2Sonatype Nexus(外部リンク)
- 参考3Jenkins(外部リンク)
- 参考4Jenkins実践入門 -ビルド・テスト・デプロイを自動化する技術-
- 参考5ユニットテストツール(外部リンク)
- 参考6JsTestDriver(外部リンク)