きっかけ
社内でテストコード書きましょ的な気運が高まってるけど、そもそもなんでやるか理解しきれてない感があった。
なのでテストコードを書くメリット/デメリットを考えてみる。
メリット(想像)
- ①品質上がる
- ②テストしなくて済む?もしくはテスト工数が減る
デメリット(想像)
- ①時間かかりそう
- ②めんどくさそう(時間かかりそう
以下は実際にテストを書いた感想
Laravel×DDDで実装する機会があったのでついでにテストを書いた
メリット(実体験)
- ①品質上がる
- ②テストしなくて済む?もしくはテスト工数が減る
①⇒◎:バグは確実に減る。テストコードが溜まっていけば依存関係への影響もわかるようになる。
②⇒△:テスト完全自動化はやっぱ難しい、実際に動かしてみないと不安は消えない。 ただ、テストコードでカバーできる部分は多いので確認が必要な箇所は減る。
+α:テストを書いている最中にバグだったり考慮漏れに気づくことが結構ある。 あとそもそも結合度高すぎてユニット書きづらすぎ!ってパターンもあって実装の見直しの結果ソースがキレイになる。
デメリット(実体験)
- ①時間かかりそう
- ②めんどくさそう(時間かかりそう
①、②⇒○:やっぱめんどくさいっす。慣れてないと2倍くらい実装コストが増えそう。
まとめ
テスト書いた方がよさげ
テスト書くのはめんどくさいしコストは増すけどそれは短期的に見たとき。
長期的に見れば毎回手で行っている検証作業が一部自動化されるようなものなので、増えた分のコストは取り返せそう。 +αで品質は良くなるので割といいことづくし。