電撃テスト

テストが自動化されていないプロジェクトにおいて、どのように自動化を進めていくかというTipsです。

深さ優先よりも、幅優先で行きまっしょい。例えば、10枚のページをもつポータルのテストをするならば、「ログイン→ページ遷移→ページのverify→ログアウト」というテストを書きます。これは「Hello World!」プログラムを作るのと同じくらい基礎的な行為です。これが出来たら、ポータルのすべてのページについて同じようなテストを追加していきます。...プリファレンスやコンフィグ、コンテントページなどなど。ポイントは、できるだけ多くの機能領域をテストがカバーすることです。決して、ひとつの領域で立ち止まってはいけません。国中を戦車で駆けめぐるのです。

これを電撃テストと呼んでいます。


この効能として、

  1. 一度、全機能について、テストを書いてしまえば、テストコードを書く障壁がぐんと下がる。
  2. この程度のテストでも、ちょっとした修正が他の機能に影響を与えていないかを見るのには、想像以上に効果がある。
  3. チームを勢いづかせることができる。一度始めてしまえば、テストを書くという癖をつけさせるのは割と簡単なことだ。

という点があげられています。

Automated testsは「先ず隗より始めよ」ということですね。