なるべく PHPUnit を使うようにしています。
http://phpunit.de/
私は別の言語での開発経験が長いのでユニットテストが流行る前から、単体テスト用のドライバを作ることは当たり前にやっていましたので TDD は苦になりません。
むしろテストを繰り返し実行できる環境が整ってきているので、ある程度寿命が長いプログラムを安心してリファクタリングできます。
少し言葉は悪いのですが、テストの際はいかにプログラムが不出来であることを証明する事を心がけるようにしています。
逆にバグのないプログラムだった場合、テストに抜けがあったと考えてやりなおします。
ツールは使いますがあまり固定しないようにしています。
一つのツールだけに頼ってしまうと必ずツールにも弱点や苦手なところがありますので、それがミスにつながります。
ただ、この辺はテスターの好みにもよると思います。
あらかじめ、ツールの弱点をしっかり心得ておいて使うのもいいと思います。