続・強い型付け vs. 強いテスト

強いテスト万歳という結論になっているが、本当にそこで終わって良いのだろうか。
偽偽夜食日記:強い型付け vs 強いテスト

とのことなのでもう少し書いてみる。


強い型付け vs. 強いテストで言いたかったのは動的型付け言語に対する不安はテストで補えばいいんだということであり、「テストの品質と保守のこと」を考えないということではない。
また、「自動化テストさえあればいい」なんてことを言っているつもりも全くない。「テストがないと不安だ」と言っているだけだ。


確かに静的型付け言語であればコンパイラがチェックしてくれるようなことをわざわざテストとして書くというのはいきすぎかも知れない。いきすぎだと思ったり全く不安を感じない人はテストを書かなければいい。でも、俺のようにテストがないと不安に感じる人はテストを書くだろう。
俺は動的型付け言語での開発経験がないので実際のところどこまでテストを書くことになるのかは分からないが、「動的型付け言語に対する不安はテストで補えばいい」という考えは今後、動的型付け言語での開発をやることになった場合に非常に安心できる考えだ。

テストの品質と保守

確かに悩ましい。
実コードを修正したらテストコードも修正するのが筋であるが、実際は修正されていないこともよくある。
ただ、テストコードの修正そのものが難しいということはないと思う。
どのテストを修正しなければいけないかはテストがredになることによってすぐに分かるし。
ようは修正するかどうかは「今さえよければOK」と思うか将来のことも考えるかによるだろう。
俺の経験上、協力会社や派遣に開発を任せた場合、「今さえよければOK」という判断でテストコードの修正はされないケースが多いように見える。
彼らにとっては関わるのはまさに「今だけ」であり、ぶっちゃけて言えばその後はどうなろうが知ったことじゃないからね。
「今だけ」しか関わらない人に「将来も考えろ」と言ったって無理だよな。将来も見据えた対応をしてもらえるような金を払っているわけじゃないし。
そのあたりは過度な期待はしない方がいい。たとえ動かなくなっているテストコードであってもあるだけましと思って残された人達で保守していくしかない。