5

これは .NET ライブラリ (DLL) に関するものです。

単体テスト ケースでカバーされるコードを測定するためのオプションは何ですか? 実際に努力する価値はありますか (コード カバレッジの測定)? コードの 70% をカバーするのは簡単すぎて、90% を超えるのはほとんど不可能なのではないでしょうか。

[編集] もう 1 つの興味深い質問 ("E Rolnicki" によって提起された) は、次のとおりです。妥当なカバレッジ % とは何ですか?

4

6 に答える 6

10

NCover (商用のものと同じ名前のオープン ソースのものの両方) と Visual Studio のコード カバレッジ ツールは、MS の世界ではほぼ主要なツールです。

コード カバレッジは逆の指標です。どのコードが適切にテストされているかは実際にはわかりません。ニックが言ったように、そのカバーをテストすることはできますが、実際にはあまりテストしません。コード カバレッジは、コードのどの領域にまったくテストがないかを示します。そこから、このコードのテストを作成する意味があるかどうかを判断できます。

一般に、コード カバレッジを行うべきだと思います。セットアップにそれほど労力を必要とせず、少なくとも以前よりもコードに関する詳細な情報が得られるからです。

コードの最後の部分を取得することはおそらく最も困難であり、その ROI が意味をなさないポイントがある可能性があることに同意します。

于 2009-03-19T17:46:15.990 に答える
4

コード カバレッジを調べる際に考慮すべき点が 2 つあります。

  1. コード カバレッジは収穫逓減の戦いです。特定のポイントを超えると、パーセンテージが増えるごとに価値が低下します。一部のコード (コア ライブラリなど) は 100% カバーする必要がありますが、UI コード/インタラクションはカバーするのが非常に難しい場合があります。
  2. コード カバレッジは、誤解を招きやすい指標です。コード カバレッジが 100% であっても、アプリケーションが完全にテストされているとは限りません。

たとえば、次のスニペットを見てください。

if (a == 2)
{
    do_A_Stuff();
}

if (b == 3)
{
    do_B_Stuff();
}

a = 2 のテストを実行し、b = 3 の 2 番目のテストを実行します。これは 100% のコード カバレッジです。しかし、a = 2 & b = 3 のテストではどうなるでしょうか? これらは「変数関係」であり、カバレッジ メトリックの過信につながる可能性があります。

于 2009-03-19T17:48:45.063 に答える
1

Visual Studio Team System Developer Edition には、コード カバレッジが含まれています。これは、単体テストを実行するときに含めることができます。

.testrunco​​nfig を開き、データが必要なアセンブリを選択します。

于 2009-03-19T18:16:53.063 に答える