ユニットテストのコスト
ユニットテストでは、これらの最後の週私のために定期的なテーマです; Stackoverflowと、他のフォーラムやテストの話の間に私は2つの進行中のプロジェクトの書き込みが, 私はユニットテストの実際の費用についていくつか質問を.
これは特に、トーマスブラントの記事です (ドイツ語: “デアTDDを (私) 実践 - 願いと現実”) それは私は真剣に考えさせられた. ブラントは彼の記事の理論と実践テスト駆動開発との間に非常によく、実際、この湾を説明します. ポイントブランク, むしろ、それはTDD方式の原則を遵守しています;
私が最初にテスト駆動開発を言わなければならない, 特に"最初のテスト"の原則, むしろ “セクシーな” 開発. それは確かにソフトウェアアーキテクチャを向上させることができる、特定のことから私たちを防ぐ (小) エラー.
— Tについての比較的自由訳. ブラント
彼はそのための強力なツールとしてTDDを考える – 少なくとも純粋に学問. しかし、すぐに結果が疑問です;
問題は、単に: 何の価格?
に述べたように, Tは除く. ブラントと私, 他の多くの人々が求めるように見える, 最も頻繁に尋ねられる質問は、次のとおりです: ユニットテストを使用すると、彼女は本当に良いソフトウェアをしないことです, 、投資するための努力は、彼らが現実的なことです?
凝縮, 質問は簡単に帰着する:
それは私の費用どのくらいのユニットテスト?
多くの場合、問題が含ま, 彼はその人たちのユニットテストも一貫して適用するために高価だと思うが発生. 私は理論的な理想を超えて全テストカバレッジの値がついていたの議論を覚えている. 報告の努力は私が言った提供する “は” 時.
と思う今日の時点でこれらすべての質問には、単に悪のように求められます, それは知っているされていないため、ユニットテストのコストが重要です。, 詳細:
どのようにしてユニットテストの省略を支払うのですか?
そして、ここに私の答えです, 具体的な例を使って説明;
私の現在のプロジェクトの一つは、分散コンポーネントの大規模な番号を含める. 私はドラフトでエラーを発見, これはリファクタリング両方のクラスに私を強制的に. すべては私に約かかった 1 時間. ユニットテストを起動します。? について 30 2番目. 30 秒、私はいくつかの行動は、当初計画されていないことを発見. これは、修正を私に約20分かかった. テストは45分を教えてコスト書く.
貸借対照表は、約2時間です.
ユニットテストなし, 私はおそらくすぐにエラーの一部を気づかないだろう. 私が持っていただろう 1 時間リファクタリング, 以上、多かれ少なかれ確定, 確かに数日間にわたって広がる, 問題は、変更時に気付かれずに修正する. この時間は1時間を超えてうまくいく確率が比較的高い (デバッグ “手”, マルチスレッドのアプリケーションなどの条件を再現…).
私としては, 私が定義されている時間を計算することがわかる (ソフトウェアの現実的な部分をカバーすることテスト – は 100%) もっと面白い暗闇の中でのナビゲーションは、練習の通りです.
実験!



