それが良くないかもしれない微妙な理由があります: 何かを壊したことの責任は、関係のないはずの変更を加えてコードを壊した人ではなく、自動化されたテストなしで壊れやすいコードを書いた個人に本当に責任を負わせるべきです.何処か別の場所。
想像できる例の 1 つは、誰かが実装時の動作に固有の動作を想定しているが、既存のコントラクトでは保証されていない方法で、インターフェイスに対してプログラミングを行う場合です。次に、他の誰かが契約に適合する実装に変更を加えますが、依存するコードを壊します。依存するコードに対してテストが作成されていないため、失敗するテストはありません。本当に誰のせい?
これは人のせいにするのではなく、責任を理解することを目的としており、「壊せば買う」というのはとても良い方針です。
編集:私はこれを本当に下手に言いました。隠れた依存関係を含め、依存関係に関して正しいソフトウェアを作成する方法について説明するつもりでした。これは、予期せぬバグが見つかったときにどうするかではなく、バグを回避することはプログラマーの責任であるという問題であることを意味していました。しかし、すでに多くの回答が寄せられているので、質問をそのままにして、それに応じて回答を示します。