2016-12-01 10 views
1

私は、複数のテストドライバアプリケーションにわたってコードカバレッジを測定する際に実行するワークフローの理解に疑問を呈していました。コードカバレッジを測定する典型的なワークフロー

  1. は、コードカバレッジを測定することが可能なアプリケーションの特別なビルドをコンパイル...正確なこのワークフローです。
  2. アプリケーションを実行して、コードカバレッジ結果ファイルを生成します。
  3. コードベースで実行された一連のテスト(ユニット、統合、回帰など)からコードカバレッジの範囲を測定するマージコードカバレッジ結果ファイル。
  4. マージされたファイルから全体的な結果を報告します。

各テストアプリケーションごとに個別のレポートが生成されているようですが、このサブレポートの中にはいくつか、このサブレポートの中にはいくつかの部分レポートがあり、重複するものはあいまいです。

だから私の主な混乱はポイント3程度であり、それは、複数のテスト・アプリケーションや各種試験からの貢献を/マージされたプールされるかに関しては、コード・カバレッジ・ツールの設計にどのように関連しますか。

ただ、いくつかの視点のために、私は一つの言語、コードベースの1つのリビジョン、およびそのコードベースを行使し、複数のテストアプリケーションに焦点を当てています。そして、「コードカバレッジツールの設計」に関して、私はレポートを生成する開発者の視点を探していますが、結果ファイル形式の内部的な詳細やマージの実装方法に関する詳細は探していませんが、開発者がツールのUX設計のおかげで行う、ステップバイステップのアクションセット。コードカバレッジツールによって生成される成果物と、それらがどのように発生し、最終的には互いに適合するかをよりよく理解したいと思います。

答えて

0

ツールは情報を一括してマージすることができるような方法でその情報を表現する方法に同意しない場合は、カバレッジ情報をマージすることはできません。

これは、テスト・カバレッジ・ツールベンダーのほとんどが唯一の言語のためのツールを作るので、あなたはかなり、複数の言語のためのツールからカバレッジ情報を組み合わせることはできませんを意味します。

その一つのlangaugeのための1つのツールで生成された情報を組み合わせることが明らかに容易に、かつ特定のプログラムのインスタンスに対して複数のテスト実行のための単一のツールからの情報を組み合わせることも簡単。

テストプロセス中にアプリケーションが変更されても、問題が発生します。昨日のようにアプリケーションからのカバレッジ情報と、今日からの新しい情報があります。このデータを安全にマージできますか?ほとんどの場合、コードの変更はプログラム機能に任意の影響を与える可能性があるためです。本当に洗練されたプログラム分析は、そのようなカバレッジ・データをマージすることを可能にするでしょう。私はこれを行うことができるプロダクションテストカバレッジツールを見たことがありません。

は(私の会社は:)アプリケーションの変更全体を除く上記のすべてのケースを扱う...それは本当に難しいですので、テスト・カバレッジ・ツールになります。

+0

これは、複数の言語と表現形式についての優れた違いです。私はしかし、単一の言語、C + +、およびGoogleテストの実行可能ファイルの束を基本的に検討しています。私はコードベースのスナップショットも考えています。進化しているものではありません。マージは、同じリビジョンの同じコードベースの異なるテストアプリケーション間で行われます。 (btw Semantic Designsには印象的なツールセットがいくつかあります。私はまだキャッチーなラインを "覚えていません...おっと、三角形は何ですか?" – jxramos

+0

1つのコードベースに適用された複数のテストのテストカバレッジデータのマージについて質問がありましたか?原則として、これは難しくありません。テストカバレッジは実際には実行された場所のセットです。合併は組合となる。トリッキーな問題は、「位置情報」とはどういう意味ですか、集合はどのように表されていますか(集合要素は何ですか?)、マージを引き起こすためにツールに何を伝えなければなりませんかカバレッジセット)が発生するかどうか –

+0

本質的にはい、1つの質問は、この複数のテストシナリオでテストカバレッジデータがどのように正確に分散されているか、各テストアプリケーションがファイルシステムに異なるコードカバレッジ結果ファイルを生成するか、コマンドライン引数を使用して単一の結果ファイルに何かとそれにプール?私は数年前にBullsEyeテストを実行しましたが、これらの詳細は忘れてしまいました。私は、ここのチームがVisual Studioで何らかの機能を使っていると思います。 – jxramos

関連する問題