1. ホーム
  2. テスティング

[解決済み】コードカバレッジとその測定方法について教えてください。

2022-03-25 11:50:19

質問

コード・カバレッジとは何ですか、また、どのように測定するのですか?

コードカバレッジの自動化テストについて、こんな質問を受けました。自動化されたツール以外では、それは科学というより芸術であるようです。コードカバレッジをどのように使うか、実際の例はありますか?

どのように解決するのですか?

コードカバレッジとは、自動テストが実行されている間に、あなたのコードの何行/ブロック/円弧が実行されたかを測定するものです。

コードカバレッジは、専用のツールを使ってバイナリにインスツルメンテーションを行い、トレースコールを追加し、インスツルメンテーションされた製品に対してフルセットの自動テストを実行することで収集されます。優れたツールは、実行されたコードの割合だけでなく、データを掘り下げて、特定のテスト中に実行されたコード行を正確に確認することができます。

私たちのチームでは マゼラン - は、社内で開発したコードカバレッジツールのセットです。.NETショップであれば、Visual Studioにコードカバレッジを収集するためのツールが統合されています。また、以下のようなカスタム・ツールも用意されています。 この記事 を記述しています。

C++ショップであれば、インテルはいくつかの ツール 私は使ったことがないのですが、WindowsとLinuxで動作するものです。また、GCC用のgcovツールがあると聞いたことがありますが、私は何も知らないのでリンクは張れません。

コードカバレッジは、各マイルストーンの終了基準の1つです。ユニットテスト(開発チームによる)、シナリオテスト(テストチームによる)、そして複合カバレッジです。

ところで、コードカバレッジは、どれだけテストをしているかを示す良い指標ですが、必ずしも製品のテストがうまくいっているかを示す良い指標ではありません。品質を確保するためには、コードカバレッジと一緒に使うべき他の指標もあります。