動的言語が広まった理由の一つには、自動テストがしやすいからって側面がある。

そもそも「静的チェックで全体の整合性をチェックできる」ってのが幻想なんだよ。
ビルドエラーだけで全ての問題が解決できるならテストは不要なはずだろ?

実際には静的動的の両方で自動や手動のテストを行うわけだ。

この部分で動的言語は静的言語に比べて良い仕事をする。

CやC++ではABIが弱すぎてテストの自動化で不利だし、
Javaではリフレクション周りのコードがかったるくて重量級のフレームワークの出番になる。
たとえば、import不可のinterfaceをコールバック引数に持つメソッドの呼び出しとかな。

これが動的言語だと、
「モジュールを公開するときはテストコードもセットにするのが当然」という状態になっている。
perlですらそうだ。 http://gihyo.jp/dev/feature/01/test-perl