2016/2/21(日)「JaSST東北2016準備会(仮)」:テスト上流設計の嬉しいところ

テスト上流設計を体験したのだけど、人に教えるときには「テスト上流設計はイマドキ皆ヤッテマスヨ」では心には響きません。嬉しいことがあるからテスト上流設計をするのです。そのテスト上流設計の嬉しいところをまとめます。

テスト実行の戦略を立てられ、出戻りの発生を減らせる

テスト上流設計を行うことで、出てきたテストコンテナは不具合が起きた修正コストの見通しが立ちやすい。例えば、パフォーマンステストで失敗した場合、大規模な修正が必要になる場合がある。テストコンテナ間の依存関係を整理した上で、修正コストの大きいパフォーマンステストをできるだけ早く実行するテスト実行計画を立てることで、開発・テストの総工数を小さくすることができる。また、テスト計画が明確になれば、それに合わせて開発計画を最適化できる場合がある。テスト実施タイミングの設計はテストコンテナクラスのような抽象かされた項目が検討しやすい。

仕様変更時のテスト修正コストが低くなる

派生開発による機能追加が起こった場合、すべてのテストケースを洗い出すのにはとても多くの時間がかかる。しかし、テストコンテナのように抽象化されているモデルが存在すれば、テストケースの洗い出しを変更が必要なテストコンテナに限定できる。修正を毎回総当たりで行う必要がなくなり、テストケースの修正が容易になる。

ノウハウが溜まりやすい

テスト観点やテストコンテナでテストは抽象的なため、別案件へ応用しやすい。その別案件の検討で新しい観点が見つかれば、さらに別案件を成長させることに繋がる。例えば、未知のバグが出てきた場合に、そのバグから新しいテスト観点が生まれるかもしれない。それらのテスト観点はそのままテスト設計者のノウハウになる、と考えている。

感想

適切なテスト上流設計は製品の品質向上の道しるべとなる。テスト上流設計を学ぶと、テストと開発は自転車の両輪のような関係であると感じる。良いテスト設計は開発設計と繋がり、品質管理と品質開発が良い循環をすることで素晴らしい製品をつくることに繋がると感じた。