JUnit作成は本当はプログラミングスキルの必要な作業です
多くの開発プロジェクトで試験の自動化をきちんと行えているところはどのくらいの割合あるのでしょうか?理想的なプロジェクトでは単体試験はもちろん、画面の打鍵テストや性能のベンチマーク試験など多くの試験を自動化するのが良いとされていますが、私の経験上そこまでできているプロジェクトは時間やスキルの制約から皆無でした。
ただし、最低限JUnitの単体試験だけでもきちんと作成、メンテナンスできているだけでも相当優秀で、それだけでもまったく試験の自動化をやっていないところに比べるとプログラムの品質には雲泥の差があるように思います。
試験の自動化がしやすいアーキテクチャーの構築は開発に携わるアーキテクトの仕事としては非常に大切なポイントであると思います。そして、試験の基本である単体試験*1だけに絞って考えてみても
などさまざまなパターンを考えて適切な方法を考える必要がありますし、試験クラス自体のメンテナンス性を高めるためにはリファクタリングを積極的に行ってロジックの共通化などを随時図る必要があります。(誰も緑色の状態にメンテナンスできず、そもそも試験の内容自体適切でないようなJUnitのクラスはほとんどゴミでしかありません。)
xUnit Test Patterns: Refactoring Test Code (Addison-Wesley Signature Series (Fowler))
- 作者: Gerard Meszaros
- 出版社/メーカー: Addison-Wesley Professional
- 発売日: 2007/05/21
- メディア: ハードカバー
- 購入: 5人 クリック: 210回
- この商品を含むブログ (66件) を見る
*1:ここではPGの行う試験という意味。厳密にモジュールやクラスの単体試験のみではないので用語定義によっては結合試験まで含まれることに注意。