私は3つの質問があります:
- CodeCoverageとは何ですか?
- それは何のために良いですか?
- コードカバレッジの分析に使用されるツールは何ですか?
私は3つの質問があります:
あなたはSOWEBSITEから非常に良い情報を得ることができます
コードカバレッジは、自動テストの実行中に実行されたコードの行/ブロック/アークの数の測定値です。CCは、専用ツールを使用してバイナリをインストルメント化してトレース呼び出しを追加し、自動テストのフルセットを実行することによって収集されます。計装された製品。優れたCCツールを使用すると、実行されたコードの割合だけでなく、データをドリルダウンして、特定のテスト中に実行されたコードの行を正確に確認できます。
コードカバレッジアルゴリズムは、ソースコードを直接調べることによってソースコードを評価する問題に対処するために最初に作成されました。システム出力ではなくプログラムの内部部分でアサーションが行われるため、コードカバレッジは構造テストカテゴリに属します。したがって、コードカバレッジは、テストする価値のないコードの部分を見つけることを目的としています。
http://www.stickyminds.com/sitewide.asp?Function=edetail&ObjectType=ART&ObjectId=7580 alt text http://www.codecoveragetools.com/images/stories/software_lifecycle.jpg
その良い
実行された関数またはプロシージャの数を見つけることを目的とした機能カバレッジ。
ソースコードの行数を識別するステートメントまたはラインカバレッジが実行されました。
条件カバレッジまたは決定カバレッジは、プログラムで実行されたループ条件の数に関する質問に答えます。
コード内の特定の開始点から可能なすべてのパスを見つけることに焦点を当てたパスカバレッジが実行されました。
最初から最後まで実行されていた関数(C / C ++、Java)またはプロシージャ(Pascal)の数を検出する入口と出口のカバレッジ。
ツール
http://www.codecoveragetools.com/
http://java-source.net/open-source/code-coverage
http://www.codecoveragetools.com/index.php/coverage-process/code-coverage-tools-java.html
http://open-tube.com/10-code-coverage-tools-cc/
ウィキペディアの記事より
コード カバレッジは、ソフトウェア テストで使用される尺度です。プログラムのソースコードがどの程度テストされているかを表します。これは、コードを直接検査するテスト形式であり、したがってホワイト ボックス テストの形式です1。現在、コード カバレッジの使用は、ハードウェア記述言語 (HDL) に依存する現代の設計方法論であるデジタル ハードウェアの分野にまで拡張されています。
コード カバレッジ ツールは、コードのどの部分が実行され、どの部分が実行されないかを単純に追跡します。
通常、結果はコードの各行のレベルまで細かく表示されます。したがって、一般的な状況では、アプリケーションを監視するように構成されたコード カバレッジ ツールを使用してアプリケーションを起動します。アプリケーションを終了すると、ツールは、実行されたコード行と実行されなかったコード行を示すコード カバレッジ レポートを生成します。実行された行の総数を数え、実行された可能性のある行の総数で割ると、パーセンテージが得られます。コード カバレッジを信じるなら、パーセンテージが高いほど良いと言えます。実際には、100% に達することは非常にまれです。
コード カバレッジ ツールの使用は、通常、ある種の自動テスト スイートの使用と組み合わせて使用されます。自動テストがなければ、コード カバレッジ ツールは、人間のユーザーがどの機能を使用したかを覚えているだけです。このようなツールは、作成したコードに対してテスト スイートがどの程度完成しているかを測定する場合に、はるかに役立ちます。
関連記事
ソフトウェア テストにおけるコード カバレッジ ツールの有効性
ツール
コードカバレッジはメトリックであり、ソースコードがどの程度「適切に」テストされているかを示します。コードカバレッジには、ラインカバレッジ、関数カバレッジ、ブランチカバレッジのいくつかのタイプがあります。
カバレッジを測定するには、手動または自動テストでアプリケーションを実行する必要があります。
ツールは、次の2つのカテゴリに分類できます。-コンパイルされたコードを変更された環境(デバッガーなど)で実行し、必要なポイント(関数、行など)をカウントするツール。-特別なコンパイルが必要なもの-この場合、結果のバイナリには、実際にカウントを行うコードがすでに含まれています。
結果を測定および視覚化するためのツールがいくつかあります。それらは、プラットフォーム、ソースコードの言語によって異なります。
ウィキペディアの記事を読んでください
ツールを提供するために、使用するOSと言語を定義してください。
コード カバレッジは、ソフトウェア テストで使用される尺度です。プログラムのソースコードがどの程度テストされているかを表します。
http://en.wikipedia.org/wiki/Code_coverage
ウィキペディアの定義は非常に優れていますが、私自身の言葉で言えば、コード カバレッジは、自動化されたテストがどれだけ占められているかを示しています。100% は、アプリケーション内のコードの 1 行が単体テストでカバーされていることを意味します。
NCoverは .NET 用のアプリケーションです
この用語は、プログラムがテストでどの程度カバーされているかを示します。詳細については、次のウィキペディアの記事を参照してください。
良い答え。
私の 2 セントは、すべてのエラーをキャッチするテスト方法は存在しないということですが、テストを少なくしてもエラーを多くキャッチすることはできないため、どのようなテストでも問題ありません。私の考えでは、カバレッジ テストは、どのコードが実行されたかを示すことではなく、どのコードが実行されていないかを示すことです。バグが潜むのが好きな場所だからです。
これをシングル ステップと組み合わせると、コードをレビューしてバグを見つけるのに非常に適した方法になります。これが例です。
アプリケーションを開発するには多くの方法があります。それらの 1 つは、「エクストリーム プログラミング」または「テスト駆動設計 (TDD)」です。すべてのコードをテストする必要があると述べています。コード カバレッジは、どれだけテストされたかを測定する手段です。
これについて一言言いたいのですが、すべてのコードをテストする必要はないと思いますし、コード カバレッジの特定のパーセンテージを設定する必要もないと思います。また、ユニット テスト (コード テスト コード) でコードをテストすべきではないとも思いません。何をテストするのが理にかなっているのかを決める必要があると思います。このような理由から、私は通常、コード カバレッジを使用しません。
一部のツールが提供することの 1 つは、テストされた部分を強調表示することです。このようにして、テストされていないが実際にはテストされるべきコードに遭遇する可能性があります。これは、私がそれを使用する唯一のことです。
他の回答は、コードカバレッジとは何かをすでにカバーしています。私が強調したいのは、カバー率が高いからといって、すべてのシナリオをテストしたことを暗に意味するものとして扱わないように注意する必要があるということです。コードやテストの品質をどれだけうまくテストしたかを必ずしも示すわけではなく、実行中のテストの一部として特定の割合のコードにヒットしただけです。
高いコード カバレッジは必ずしも高いテスト品質を意味するわけではありませんが、高いテスト品質は高いコード カバレッジを意味します。
実際には、通常は達成可能な 90 ~ 95% のコード カバレッジを目指します。最後の数 % はコストが高すぎて、ヒットしようとする価値がないことがよくあります。
私が最近使用したコードの品質 (コード カバレッジを含む) を確保するためのもう 1 つの便利なツールは、Sonar です。ここにリンクがあります http://www.sonarqube.org/