>>311
いろいろと勘違いしてるねw

重要なのは、テストも含めた開発のコスト。問題点は早く見つかる方がコストは低くなる。

そしてもう一つ。型チェックというのは正確にはインターフェースのチェック。
引数(シグネチャ)が正しいこと。クラスの継承関係などが正しいこと。

インターフェースのチェックだけに限れば、静的型はほぼ完全にテストできている。
(ほぼというのは意図的に静的型の型安全性を捨てた場合を除くから)

テストコードというのは、単体テストが主で、これはインターフェースのテストではない。
単体テストでインターフェースのテストを静的型と同等レベルまで動的型でテストするには
漏れがないといえるレベル(少なくともカバッジ100%)の完全なテストが必要になる。
しかし漏れがないことを証明する方法はないし、そもそもテストに問題がないことを証明する方法もない。
ちなみに、カバレッジ100%を目指せと言うと、それはやめろと言われる(笑)

テストを書くというのはコストがかかる。メンテナンスするのにもコストは掛かる。
テストを書かなくてもテストを書いたのと同じ効果が得られるのであれば、それに越したことはない
それがテストの一部であったとしても、テストのコストを下げることになる。
テストはどれだけやっても十分とはいえないんだから多ければ多いほどいい。コストがかからない方法(静的)ならなおさらだ。

動的型は完璧なテストがあれば十分だというが、そのような完璧なテストは存在しない。

TDD再考 (1) ? テストファーストとユニットテストへの死刑宣告 ( http://ubiteku.oinker.me/2015/07/21/tdd-is-dead-long-live-testing/ )
TDD再考 (2) ? 何故、ほとんどのユニットテストは無駄なのか? ( http://ubiteku.oinker.me/2015/07/27/why-most-unit-testing-is-waste/ )
テスト駆動開発(TDD)はもう終わっているのか? ( Part 1 http://postd.cc/is-tdd-dead-part1/ )
テスト駆動開発(TDD)はもう終わっているのか? ( Part 2 http://postd.cc/is-tdd-dead-part-2/ )