テストの実施とは高度にビジネス的な決断である

単体テストケースを書けば、当然その分時間が掛かる。ワンライナーごときに一々テストケースを書く人は(たぶん)いない。ワンライナーの機能テストとか言われても単体テストとどう違うのかいまいち意味が分からない。

でも、それがプロダクションコードであるなら、テストを書くのは当然のことだ。プロダクションコードとしての品質を保つための当然の措置だ。それが「ふつう」。だから、テストを実施するかしないかなんていうのは、一介の技術者が判断することじゃない。テストっていうのは書くか書かないかなんて考えてる間に、コードに先立って存在してしかるべきものなのだ。

そうじゃない場合もある。品質を下げてでも時間を短縮しなければならないとき。それは、プロとしては禁断の選択肢だけれど。本来の要求水準を満たせないものを納品する訳だから。でも、その禁じ手が必要な局面というのはあって。

でも、その局面というのは高度に政治的で、高度に営業や経営に関わる判断であるから。あとで追加リリースするなりお客さんに謝るなり機能を削るように交渉するなり、フォローは必要不可欠であって。だから、テストをするかしないかというのは一介の技術者が下してよい判断では無い。

だから、必要なときは経営の責任で判断があるから。だから、それ以外のときは文句いわずにテストケース書こうね。単体テストケースの無いコードは只のゴミです。

……ということを現場に言って聞かせないといけないという悲しい現実。慣れれば気持ちいいのにね、TDD。