Dogsa T、Batic Dでの以前の作業の要約を読んでいたとき、テスト駆動開発の有効性:産業のケーススタディ。ソフトウェア品質ジャーナル。2011; 19(4):643-661。TDDに関する多くの研究で使用されている測定値は、コードの行、欠陥、開発に費やされた時間などに基づいていることが印象的でした。
TDDを使用して開発された製品と従来の開発またはテストラストを使用して開発された製品の総所有コストに焦点を当てた研究はありますか?
私は、買収と運用の総費用に特に興味があります。
Dogsa T、Batic Dでの以前の作業の要約を読んでいたとき、テスト駆動開発の有効性:産業のケーススタディ。ソフトウェア品質ジャーナル。2011; 19(4):643-661。TDDに関する多くの研究で使用されている測定値は、コードの行、欠陥、開発に費やされた時間などに基づいていることが印象的でした。
TDDを使用して開発された製品と従来の開発またはテストラストを使用して開発された製品の総所有コストに焦点を当てた研究はありますか?
私は、買収と運用の総費用に特に興味があります。
回答:
TDDを行うことの意味と利点に関する研究はいくつかありますが、結果は矛盾しています。一部のプロジェクト(これは私の経験では)は、機能を変更するコストが大幅に削減されるため、TDDを使用した結果、バグ率と所有コストが低くなります。他のいくつかは停止するために停止します。
いくつかの研究(ここに1つあります-スライドn50を確認してください)は、バグの数がカバレッジとともに増加したことを示しています。カバレッジが大きいということはTDDを意味し、バグの数が多いほど所有コストが高いことを意味すると思います。
私の観点からは、品質や所有コストの低下に関連するメトリックやプラクティスはありません。何らかの相関関係をもたらす要因の組み合わせがあります。そして、これらの要因はチームとプロジェクトの間で変わります。
チームの話を聞いたことがあると思います。TDDを始めたばかりで、100行のテストメソッドを書いています。テストの更新には費用がかかるため、所有コストが増加します。
私の実用的なルールは、気にし、学びたいと願う人々は、彼らをサポートする環境で働き、彼らのアイデアはより良い品質と所有コストであるということです。
特定の研究はありませんが、個人的な経験から、また他の開発者の経験から、中規模および大規模プロジェクトに正しく適用すると、TDDが市場投入までの時間を短縮し、バグや欠陥を減らし、コード品質を向上させることがわかります。
彼らは特効薬ではないと言ったので、TDDなしで良いコードを書くことができますか?はい、TDDを使用して不正なコードを記述できますか?また、プロジェクトに応じてTDDはコードの所有コストを大幅に増加させる可能性があります。良い例はNASAです。NASAでは、コードの行あたりのコストは莫大ですが、所有コストは焦点ではなく、欠陥がありません。
TDDを正しく適用すると、開始コストとコードベースが増加しますが、回帰テスト、早期バグ検出、およびコード設計の長期的なメリットが得られるため、欠陥とテストコストとメンテナンス時間が削減され、全体的なコストが削減されます所有権。