貧弱なテストというのが現実です。QAチームに投資する気のない企業は、貧弱なテストをするというのが現実です。良いテストにはお金がかかり、時間もかかります。会社は時間とお金を承認しないことでリスクを受け入れているのです。
複雑なプログラムを通る可能性のあるパスは基本的に無限大なので、QAチームでもすべての可能性がテストされていることを保証することはできません。しかし、彼らはあなたを今よりもはるかに近づけてくれるでしょう。理由の一つは、開発者が自分のコードを適切にテストすることが不可能だからです。開発者はコードが何をするかを知っているので、コードが何をすると思っているかを中心にテストを設計する傾向があります。エッジケースを見逃したり、開発者が絶対にしないようなバカなことを見逃したり、要件を間違って解釈してしまうこともありますが、すべてのテストには元々の間違った解釈が反映されてしまいます。彼らはしばしば、要件の誤りを見逃してしまい、やるべきだったことではなく、やるように言われたことをやってしまうことがあります(これが、実際のユーザ(要件定義の際に相談されないことが多い)がソフトウェアを使ってみて初めて発見される膨大な数のバグの原因となっています)。特に専門家によって行われている部分(例えば、アプリケーションにとっては意味のある表の変更ですが、自動化されたイン ポートプロセスやレポートを壊してしまうようなものです。)
もし、より高い品質を望むのであれば、時間とお金の両方を払わなければならないでしょう。確かにNASAとその請負業者は近くに来ますが、完全なQAでも100%になることはできません。彼らはまた、あなたの会社が支出されているよりも偉大な取引より多くのお金を費やしています。
もし彼が望んでいるのは、問題があってもクライアントに危害が及ばないことを保証することであれば、テストのためのあなたのプロセスについて話してください(彼にあなたが実行したテストのリストを見せてください)、何が影響を受けると思うか、どのようにチェックしたか、悪いプッシュをどのようにして元に戻すかのあなたのプロセスと、ほとんどのクライアントが気づく前にそれらを見ることができるようにエラーを記録するためのあなたのプロセスについて。問題があったとしても、それは修正することができるという自信を彼に与えてください。コード(新機能や修正)を素早く出すことの価値について話してください。
また、あなたが変更を加えるたびに、システムの徹底的なリグレッションテストを提供するように彼に頼むこともできます。アプリケーションのすべてのページをテストしなければならないことを彼が知っているかどうか、そしてページ上で可能な限りの順序ですべてのことをテストしなければならないことを確認してください。そうそう、インポート/エクスポート、レポート、自動化されたジョブもテストしてください。そして、影響を受ける可能性のある関連アプリケーションもすべてテストしてください。彼が一度システムを徹底的に行使しようとしたら、彼はあなたがその保証をすることができない理由を理解するでしょう。
もう一つの試みは、あなたがその保証をすることはできませんが、もし彼がX時間のテストを許可するならば、あなたはその保証をすることに近づくことができることを彼に前もって伝えることです。彼に追加のテストの箇条書きにされたリストを与え、それが設計し、それぞれを実行するためにかかる時間。これらのテストをすべて実行した後に、あなたがどのくらいの割合の自信を持つことができるか、また、あなたが今持っている自信の割合はどのくらいかを彼に伝えてください。
それに関しては、この問題に関連しているかどうかに関わらず、あなたが持っている現在のユニットテストをすべて実行するだけでどのくらいの時間がかかるかを彼に伝えてください。もし、現在1000のユニットテストを持っていて、それぞれが5分で設定して実行して結果を評価するとしたら、83時間になります。その時間を費やして実行する許可を彼に求めてください。