製品の総所有コストを測定値として使用するTDDで行われた科学的研究はありますか?


11

Dogsa T、Batic Dでの以前の作業の要約を読んでいたとき、テスト駆動開発の有効性:産業のケーススタディ。ソフトウェア品質ジャーナル。2011; 19(4):643-661。TDDに関する多くの研究で使用されている測定値は、コードの行、欠陥、開発に費やされた時間などに基づいていることが印象的でした。

TDDを使用して開発された製品と従来の開発またはテストラストを使用して開発された製品の総所有コストに焦点を当てた研究はありますか?

私は、買収と運用の総費用に特に興味があります。

回答:


3

TDDを行うことの意味と利点に関する研究はいくつかありますが、結果は矛盾しています。一部のプロジェクト(これは私の経験では)は、機能を変更するコストが大幅に削減されるため、TDDを使用した結果、バグ率と所有コストが低くなります。他のいくつかは停止するために停止します。

いくつかの研究(ここに1つあります-スライドn50を確認してください)は、バグの数がカバレッジとともに増加したことを示しています。カバレッジが大きいということはTDDを意味し、バグの数が多いほど所有コストが高いことを意味すると思います。

私の観点からは、品質や所有コストの低下に関連するメトリックやプラクティスはありません。何らかの相関関係をもたらす要因の組み合わせがあります。そして、これらの要因はチームとプロジェクトの間で変わります。

チームの話を聞いたことがあると思います。TDDを始めたばかりで、100行のテストメソッドを書いています。テストの更新には費用がかかるため、所有コストが増加します。

私の実用的なルールは、にし、学びたい願う人々は、彼らをサポートする環境で働き、彼らのアイデアはより良い品質と所有コストであるということです。


スライドn50は非常に誤解を招きます。「対象範囲が広いほどバグが多い」というのは、「対象範囲が広いほどバグが増える...」という意味です。可能性はありますが、カバレッジが増えると、注入される欠陥が増えるとは思いません。これは単に、カバレッジが多ければ多いほど、開発フェーズからの欠陥の発生率が高くなることを示しています。そして、はい、品質と所有コストを測定できる多くのメトリックがあります。#フェーズごとに注入された欠陥、フェーズごとの欠陥の歩留り、およびリワークはすべて、品質とコストに直接影響する測定可能なものです。これらのメトリックの優れた例については、PSP / TSPをご覧ください。
マイケル

マイケル、そのスライドの文脈で、プレゼンターは、バグ密度の増加と相関するものを示します。メトリックの1つはテストケースであったため、クラスのテストケースが多いほど、クラスのバグが大きくなります。プレゼンターが言おうとしていることは、それ自体のメトリックは小さなバグ密度と相関しないということです。
アウグスト

0

特定の研究はありませんが、個人的な経験から、また他の開発者の経験から、中規模および大規模プロジェクトに正しく適用すると、TDDが市場投入までの時間を短縮し、バグや欠陥を減らし、コード品質を向上させることがわかります。

彼らは特効薬ではないと言ったので、TDDなしで良いコードを書くことができますか?はい、TDDを使用して不正なコードを記述できますか?また、プロジェクトに応じてTDDはコードの所有コストを大幅に増加させる可能性があります。良い例はNASAです。NASAでは、コードの行あたりのコストは莫大ですが、所有コストは焦点ではなく、欠陥がありません。

TDDを正しく適用すると、開始コストとコードベースが増加しますが、回帰テスト、早期バグ検出、およびコード設計の長期的なメリットが得られるため、欠陥とテストコストとメンテナンス時間が削減され、全体的なコストが削減されます所有権。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.