デバッグ・テストを行わないソフト開発はありえるか?

http://q.hatena.ne.jp/1147756978
興味深いはてな。裁判資料として使えるレベルで「ソフトウェア開発に、テスト工程は必要です」と言える必要があるのだとか。
ソフト開発の厄介な点の一つに、開発者によって力量が数十倍も数百倍も違うところが挙げられる。ダメプログラマーとスーパープログラマーの成果物を比較した場合に、バグの数が一桁、あるいは二桁違う、という事が起こってしまう。つまり、「優秀なプログラマーなら、テストせずともバグ0のプログラムを生み出せるはず」という仮定を立てることが可能になってしまうのだ。
とはいえ、実際問題、ロジックが複雑であったり、スレッドを多用するプログラムでは、如何に優秀なプログラマーといえど、デバッグ抜きでバグ0というのは困難だし、プログラムそのものに誤りがないケースでも、プラットフォーム(OSの機能など)に起因するバグにより、ソフトウェアとしての障害が発生することも十分にありえる。結局のところ、テスト抜きで納品、というのは許されざる行為、だと思うんだけど。
さて、この質問の難しいところは、「裁判資料として使いたい」という事。上記のような一般論では、裁判を闘う上で不十分、ということになってしまう。
私個人の意見では、言語がJavaC++, Perlあたりならば、ソフトウェアメトリクスを使って、定量的にデータを示すのが、一番有効ではないかな、と思う。「客観的に見ても検証が必要といえる程、このソフトウェアは複雑です」と言えれば、テスト不要とはいえないはずだから。
数あるソフトウェアメトリクスのうち、直感的に分かりやすく、検証の必要性を説明しやすいのは「サイクロマティック複雑度」だと思う。これは、大雑把に言うと、分岐の多いプログラム、たとえば「Aの条件を満たし、Bの条件は満たさず、Cの条件は満たし、Dの条件を満たさない場合に、画面に"XXX"と表示する」というようなプログラムは、検証が大変ですよ、という事を数値化してくれる指標なのだ(ちゃんとした説明はこちらのリンク先などにある)。
テスト工程抜きで納品、というような体制で開発されているソフトのようなので、普通に検査すれば、「テストが必要」といえるレベルの値のソースは確実に複数表示されるはず。一度、試しにツールで検査してみるくらいの価値はあると思う。
ただ、小規模開発なんかで特に多用されるPHPについて、サイクロマティック数測定のツールが見つからないんだよなー・・・。もしPHPだったら・・・。経験者によるソースレビューとか?・・・うーん。決定的な方法が見つからないや。