黒柴的ソフトウェアテスト考 #11

コンポーネントテスト(単体テスト)に関する調査の考察#6

※この記事は、テスト考#10の続き

テスト考#10で整理したように、コンポーネントテストについては、過去に見積もりを行っていたよりも、大きなコストがかかることが分かった
ちなみに、1990年代くらいに見積もりを行っていた時は、製造工数と単体テスト工数は、ほぼ等しいと考えていた
すなわち、製造(プログラミング)に10人月費やすなら、単体テストも10人月費やすものとして見積もりに計上していた
もっとも、このころは「単体テストとして、何をどう確認するか?」などはきちんと定義されておらず、ドライバ・スタブを用意して関数を個別に呼び出し、その動作を確認するとしていた

QAに寄与する形でコンポーネントテストを行う場合、かなり大量のコストがかかるのだが、コストをかけてまで、コンポーネントテストを実施する必要があるのだろうか?
黒柴は、「実施できるのであれば、実施した方が良い」と考える
ただ、コンポーネントテストにかけるコストとその費用対効果を、プロジェクトオーナーが承認してくれることが前提となる
おそらく製造に費やす費用の5~10倍の費用でコンポーネントテスト(単体テスト)を実施するという見積もりを提示したら、「高すぎる」とか「そこまでコストをかけて、何ができるのか?」という反応が返ってくることは容易に想像できる
プロジェクトオーナーの承認が得られず、コストがかけられないのであれば、自腹を切ってまで実施する必要はない
また、プロジェクトオーナーが容認するコストの範囲内で実施できることを検討すべきである

こう考えると、正直なところ黒柴は「QAに寄与する形でコンポーネントテストを実施します」とは、言いきれなくなっている
なぜなら、そこまでのコストをかける費用対効果を、プロジェクトオーナーに認めさせることが難しいからである

見積もり、契約において、「何をどのように実施するのか?」ということをきちんと定義・説明することは重要であるが、「やらないことを、なぜやらないのか?」ということをきちんと説明することも重要と考える

現状、自社で請負の開発はほとんどなくなっているため、この手の説明をする機会はないのだが、黒柴は社内向けにはプロジェクト開始時に、プロジェクトの実施要綱、計画書を整理して、クライアントと確認するのと合わせて、品質保証計画書を作成し「どの工程で、何を、どのように確認するのか?」を整理した上で、クライアントと確認しろと提案している

もっとも、この辺りを考察したこともないエグゼクティブ層には、まったく響いていないようだ
しかし、今後請負開発を受注せず、作業者派遣だけに絞るならそれもよかろうと思う


この記事が気に入ったらサポートをしてみませんか?