SSブログ

ソフトウェア開発組織が持つべきカルチャー 011 [ソフトウェア開発組織が持つべきカルチャー]

テストを自動化する

継続的インテグレーションを行い、テストを自動化して実行することは、1990年代までは普及していません。そのため、技術的負債を多く抱えて機能追加が行われているようなソフトウェアでは、今でも手作業でテストが行わているものが多数存在すると思います。

レガシーコードのテストの自動化には困難を伴いますが、それ以前に問題なのは、テストを自動化することの本当の意味を理解していない開発組織です。たとえば、テストの自動化に本格的に取り組んだことがない開発組織であれば、新たな開発であってもテストの自動化を最初から導入しなかったりします。あるいは、テスト駆動開発と言いながらも、実行は開発者が手作業で行うことで、継続的に実行されなくなり、結果としてテストコードが保守されなくなったりするかもしれません。

また、テストの自動化というのは設計に大きな影響を与えますし、そもそもテストコードがきちんと書かれて保守されていることも重要です。しかし、テストは後で良いという開発スタイルでは、テストするのが困難な設計が行われたり、テストコードがいい加減だったりして、実際には何も成果が上がっていないし、現場のエンジニアの意識の改善やスキル向上がなかったりするかもしれません。