web-dev-qa-db-ja.com

単体テストは、コードカバレッジ図の技術的負債を満たすために純粋に書かれていますか?

時間の中で失われた理由により、プロジェクトにはコードカバレッジ標準があります。残念ながら、この図の下のカバレッジを取るいくつかの新しいコードが使用されています。 John Doeは、より多くのテストを作成するよう正式に割り当てられています(Jane Doeはスノーボードを利用していないため)。 Johnはコードに慣れていないため、モックを使用してさまざまなコンストラクターおよびメソッドを呼び出すことにより、カバレッジを線上にドラッグします。これらのどれも受け入れられた与えられた与えられた...いつ...その後...パターンに準拠していないため、新しいテストコードの目的を確認することは困難です。

以下の権利と不利益を除外する:

a)コードカバレッジ図

b)テストがコードと同時に書かれていない

新しいテストは技術的な負債を構成しますか?それらについて(もしあれば)何をすべきですか?

6
Robbie Dee

はい、これらは技術的な負債だと思います。テストコードは、テストされているコードと同じで、保守と理解も必要です。テスト中のコードを理解するのに役立たないため、テストコードのポイントを理解していないという事実は、メンテナンスの問題です。テストを始めるのに役立つものの大きなコンポーネント。これは、テストをまったく行わないよりも困難になります。

カバレッジ要件は、コード以外の問題も指摘しています。これは、自分の仕事を適切に行うことを十分に気にしていない開発者です。コードを理解しないことは、ビルドを満たすためだけに役に立たないテストを書くための悪い言い訳です。これにも対処する必要があります。これがジョンの典型的な行動である場合、私は彼を私と同じチームから降ろしたいと考えています。

ビルドに含まれているメトリックは、ジョンのような人々に実際に想定されているテストを実際に記述させる試みである可能性があります。結果がビルドの破損である場合にテストを記述しないことを正当化することははるかに困難です。これは通常、ソフトウェアチームによってかなり真剣に受け止められます。

12
Andy

新しいテストは技術的な負債を構成しますか?

はい。最終的に、これらの恐ろしいテストは、おそらくジェーンがスノーボードから戻ったときに修正する必要があります。そのとき、彼女はテストの理解に苦労します。


それらについて(もしあれば)何をすべきですか?

恐ろしいテストが短期間に受け入れられる場合は、それらを保管してください。そうでない場合は、修正してください。ジェーンがスノーボードから戻ったとき、彼女は新しいテストをすべて削除し、それらを受け入れ可能なテストに置き換える必要があります(彼女がそうするのに最適な人であると想定しています)。

1
leo1

技術的な負債は、適切なテストカバレッジなしで機能が実装された時点で導入されました。

あなたがそれらの単体テストなしで文字通りうまくいっていない限り(その場合は今すぐそれらを削除してください)、テスト自体が技術的負債を構成していると述べるのは適切ではないと私は言います。むしろ、テストは適切なテストカバレッジの欠如に対処するための標準以下の試みです。

1
Justin