プログラムにバグはつきものだけど、バグをどうやって発見するかというと、設計のレビューとか、コードレビューとかがあっても、結局最後はテストで発見するしかない。
テスト項目は、プログラマが開発を始める前に網羅されている必要がある。
プログラマが開発中に、「これテスト項目足りてないんじゃない?まずいんじゃね?」となれば、テスト項目は補充されるかもしれない。
テストの責務を負うのは、プログラムを開発したプログラマではなく、テスト設計を担当する人間だ。
テスト設計の担当は、たいていは設計者や、その上のプロジェクト管理者になる。
プログラマは設計作業に参加したり、レビューしたりするかもしれないが、あくまでプログラム開発という作業に責務を負うのであって、それ以外は責務を負わせてはいけない。
自分で開発したプログラムを、自分でテストすることはできないし、してはいけない。
それをしたら、開発プロジェクト全体の責務設計が破綻し、品質管理も、スケジュール管理も破綻するからだ。
ゆえに、プログラマを詰めてバグを治させようとするのは、無能なプロジェクト管理者の考え方だ。