株式会社バックテックでは一緒に働く仲間を募集しています
テストのないコードはレガシーコード
何で見たか忘れました。誰が言ったかも知りません。
ただ、この一言でテストを書こうと思いました。
EOF2019で講演されていた和田卓人さんのスライドです。
以下引用
保守性を犠牲にするとスピードが・・・
短期的には得られる
1ヶ月後には逆効果になる
長期的には致命傷になる
思ったよりも損益分岐点は早くくるらしいです。
これは開発していて実感しています。
テストがないと
テストがないと、手動でポチポチしたり、APIのツールを使ってテストしたりしますが、ちゃんと網羅しようとすると、時間がかかります。そして大体漏れます。
漏れるとバグがでます。
バグの対応に時間がかかります。
バグの影響範囲によってはユーザーに迷惑をかけ、その対応にも時間がかかります。
ここまでくると、テストを書くコストよりも遥かに大きいです。
テストを書かないとどんどん負債がたまります。
既存のコードがテストで担保されていないので、手動で全てテストしなければなりません。
当然漏れるのでバグがでます。
そして、バグに怯えながら開発することになります。
ということで、最近自分が実装している範囲はテストを書くようにしています。
ただ、テストをどこまで書くかというのが、やっていて難しいと感じました。
主にAPIのテストを書いていますが、すべての組み合わせを網羅しようとするとすごい数になるので、ある程度絞ってますが、不十分だなと感じています。
また、手探りでテストを書いているので、書き方に統一性がなかったりしています。ベストプラクティスをやりながら見つけていきたいです。