単体テストの重要性

あるシステムの仕様変更を行うとき、ソースを見て、呼び出されていず、使っていない関数をコメント化して抜いた。
ほかのところで、ifとelse ifで同じ条件(関数呼び出しの戻り値の判定)をしているところがあって、無駄なので整理した。
実は、ifとelse ifでは異なる条件で判断しなければならなかった。
それと、else ifの条件には、使っていないと思っていた関数を使用するべきであった。
そのままで、運用上支障が出なかったので、バグが見過ごされた。
そもそも、単体テストをきちんと通していれば、 ifとelse ifで同じ条件であるとか、使わなければならなかった関数が使われていないとか、開発の初期段階でわかったはずだが、それがなされていないと思われる。
その結果、リリース後時間がたったところで、あるパターンを行うとNGになる、という状況になった。
単体テストの重要性を思い知らされる事例である。