カテゴリ:仕事:徒然日記
仕事:詳細設計、開発、単体テストの工数
既存システムに対して大幅カスタマイズの見積の話が来て、開発者の意見として工数算出を求められました。 私のおおよその算出の際の割合は ・詳細設計、開発、単体テスト(自社同一人物) 4:3:2 ・詳細設計(自社)と開発+単体テスト(自社他の人間) 5:3:3(単体テスト2+受入1) ・詳細設計(自社)と開発+単体テスト(他社) 6:3:4(単体テスト2+受入2) です。 上の人に言われたのが「テスト工数が多すぎ」です。 一般的には「開発×0.25」だそうです。 …納得いかない。 私が単独開発する場合は、詳細設計=テスト仕様書とほぼ同義になります。 基本設計書で記述されている要求仕様をプログラムで実現する際の制約事項や基本的な考え方を詳細設計書の起こし、更に個々の動作(体裁よく残すかどうかは別として)を考えます。 で、それを実際のソースに落としていくのが開発。作っていく際に各動作を確認していくわけだから単体テストは同時進行で行います。 で、開発終了時に単体テストの8割が終了し、後は、最終的な見直しと再テストをして終わりになります。 なので、厳密に開発と単体テストを分けろと言われても困るのですが、極論で言えば、開発とテストは1:1、もしくはテストの方が工数が多くなります。 詳細設計で考える個々の動作(=テスト仕様書につながる部分)が、詳細設計者と開発者とのコミュニケーションが疎になればなるほど、厳密に記述しておかなければならないので、大量に増加します。 開発は「詳細設計をソースに落とす」のであって、「要件を実現する場」ではないと考えています。記述の仕方を開発者に委ねることはあっても要件の実現方法(処理内容)は、詳細設計者の担当だと思います。 開発者との作業場所が同一フロアであったり密にコミュニケーションがとれて、開発者のレベル+作業内容を把握できる時のみ開発者に実現方法をある程度は委譲出来るのだと思っています。 じゃないから、言った言わない、書かれてなかった、そんな仕様知らない常識だろそんなの、どうして他と同じ動きしてないのっていう話になるし、「受入れって結局、単体テストと同じことするんだよね。」とかいうふざけた会話が成り立つんじゃないでしょうか? 私の受入れは、やったテストを全て具体的に1つずつ明記してもらい、テスト結果に書かれていないことは「テストしていない」と見なします。 なので、大抵、あまりにテスト項目が少ない為、やり直ししてもらいます。 (「正しく値を取得する。(○)」みたいな項目があれば論外。) また、テスト結果で「○」があるものは、開発者が動作を保障しているものなので、1つでも「○」になっているのにその通りに動かないものがあれば、全テストやり直ししてもらいます。 なので、受入れは、原則、詳細設計者側から見て伝わりにくい部分と致命的な部分のみテストになります。 ただ、こうした理由で、開発者のテスト結果が使用できるレベルになるまで、相当の時間がかかり、2度手間に近い状態になります。 そう考えると、開発と同等かそれ以上テストでかかるのは当然のような気がするんですが。。。 お気に入りの記事を「いいね!」で応援しよう
Last updated
2007/06/26 10:43:02 PM
コメント(0) | コメントを書く |
|