テストとデバッグは分けて考えろ。
テストして欠陥を見つける。
欠陥を修正するのがデバッグ。

TDDのUnit Testは、ちょっと違うけどな。
TDDだと、欠陥の修正=開発。

アサーションはプログラマの意図の表明。
早めに欠陥を見つけるためには役に立つこともあるが、
デバッグに使うものじゃない。
むしろ、ドキュメンテーションの一部と考えたほうがいい。