テストと開発工数と...
最近自動テストをすることは必須って風潮で、それはそれとして良いんだけど...って話
いにしえのSIerの手動テストが良いとか言うつもりは全く無い前提で
テストには色んなレベルがあって、それらを認識しつつ「必要なテストを必要最低限作り込む」っていう方向にならないかなぁ〜って思ってみてる
TDDはそもそも開発手法なので、TDDで作ったテストは「実装作業として必要な物」であって、そこで作られるテストは本来の意味ではテストじゃないと思ってる(全部捨てても問題ない)
じゃあ何がテストなのかって話になると
(「要件を満たすことを確認するもの」,「例外的動作をシミュレーションして正しく動作するもの」)
(「定期的に実施して基本的な品質を確認するもの」,「必要に応じて実施して正しい動作を確認するもの」)
これらの組み合わせ
その中で定期的に実施しして〜の部分は自動テスト化しないとかなりしんどい(大抵は相当多めの数になるので)
必要に応じて〜の部分は、再現可能な作業手順さえ存在して居れば自動化されてなくても良い(頻繁に変化しないならの条件付き)
って考えると実はテストは「自動化しなければならない」という必然性はなく、むしろ「再現可能であれば良い」「工数を削減するために自動化しましょう」程度の話になる
あとは「組織として心の平穏を保つため」に何処をどの程度自動化・定期実行していくのかだとおもう
必然性が無いものに、本体の開発工数を超えてのテストを自動化する意味ってなんなんだろうって考える今日この頃