テストについて。

最近はテストについて、どのようにすれば作業時間を減らせるのか、について考えている。
単体テストでは現在JUnitなどの自動テストツールがもてはやされてはいるが、
実際のところJUnit等で自動化できる部分にはどうしても限界がある。


たとえばWeb系の画面遷移テストなどは単体レベルとはいえ、
(画面遷移などを単体と見るか結合と見るかはモジュール分割の単位にもよるが)、
結局手作業になりがちであり、これらをテストおよび検証するには
当然準備〜テスト実行〜結果採取の手順を踏むわけであり、
あらゆる作業が自動化された現在においても莫大な時間がかかってしまう。


一般的なWeb系の標準的なシステムであれば、まずDB等のデータ作成から始まり、
DBに値を登録し、ファイル等があれば所定の場所に置くなどの
各種テストデータのセットアップ、
テストの実行についても画面を直接動かして行うため、
手作業での入力を行い、画面スナップショットをとりながら、
オペレーションを実行しなければならない。
テスト後にEvidence(テスト結果)について採取するにも、
DBのダンプなどの出力データの取得が必要であり、
たとえツールを各所で使ったとしても、全体の作業量はかなりのものになってしまう。


こういうテスト全体の作業を自動テストのように標準化し、
品質を確保しつつ確実なテストを行えるようにするという時期がきているのかもしれない。
全体の手順を規格化することによって、
作業時間の減少と品質の向上が可能になるのではないだろうか。