コードなしで.NETアプリケーションのカバレッジを計測する

dotTEST の dottestcov を利用するとアプリケーションのソースコードが無い環境で実行したテストのカバレッジを計測することが可能です。dottestcov を利用することにより、受け入れテストやQAチームによるテストの妥当性を可視化し、アプリケーションのカバレッジを効率的に計測できます。
本記事では、dottestcov を利用したアプリケーションカバレッジの計測方法を詳しく紹介します。

なお、アプリケーション開発においてカバレッジを計測するメリットは以下の記事で取り上げています。ぜひご一読ください。

dottestcov とは

dottestcov は dotTEST 2023.1 で搭載されたカバレッジ計測専用のツールです。
このツールを利用すると、アプリケーションのアセンブリをスキャンしてアプリケーションテスト実行時のカバレッジレポートを作成し、Parasoft DTP にアップロードすることで包括的なカバレッジを計測できます。
さらに、これまでのバージョンでは必要だった静的カバレッジファイルの作成を省略し、アプリケーションカバレッジ計測の効率化を実現できます。

Parasoft dotTEST は テストコードは不要で、手動またはテスト自動化ツールで実行されたUIテストのカバレッジを計測、テストの精度向上やエビデンス作成工数を削減します。

>> Parasoft dotTEST の詳細はこちら <<

動的カバレッジデータの収集

dotTEST のカバレッジ計測にはソースコードを解析して作成する静的カバレッジファイルとアプリケーションの実行ログから収集する動的カバレッジデータを利用します。
最初にアプリケーションのテストを実行して動的カバレッジデータを収集します。

  1. 「動的カバレッジ」データを収集するには カバレッジウィザード (<INSTALL_DIR>\integration\coverage\agent\coverage_wizard.exe) を実行してテスト対象のアプリケーション情報を入力します。
  2. カバレッジウィザードを [終了] すると、[ターゲット スクリプトのディレクトリ] に指定したディレクトリにスクリプトが作成されます。
    • アプリケーションを実行しモニターする : monitorCoverage.bat
    • カバレッジ データをインポートしてレポートする : importCoverage.bat
  3. monitorCoverage.bat スクリプトを実行してテスト対象のアプリケーションを起動します。
    • カバレッジウィザードで [アプリケーションをただちに実行] オプションをオンにしてカバレッジウィザードを [終了] した場合はウィザードの終了後、自動で monitorCoverage.bat が実行されます。
  4. アプリケーションを操作してテストを実行します。
  5. アプリケーションを終了します。
  6. カバレッジウィザード [ターゲット スクリプトのディレクトリ] の 'CoverageLogs' に「動的カバレッジ」データが出力されます。
※coverage_wizard.exe の詳細な使い方は dotTEST のマニュアルをご確認ください。

dottestcov のアプリケーションカバレッジ計測

dottestcov では 3 パターンのカバレッジレポートを作成できます。

  1. 静的カバレッジファイルと動的カバレッジデータに基づいたカバレッジレポート
    • ソースコードを解析して作成する静的カバレッジファイルと動的カバレッジデータを利用します。
  2. 動的カバレッジデータとアプリケーションのアセンブリに基づいたカバレッジレポート
    • アプリケーションのアセンブリと動的カバレッジデータを利用します。
  3. 動的カバレッジデータに基づいたカバレッジレポート
    • 動的カバレッジデータだけを利用します。

各パターンのカバレッジレポートの作成方法について詳細を説明します。

パターン1:静的カバレッジファイルと動的カバレッジデータに基づいたカバレッジレポート

dotTEST がソースコードを解析して作成する静的カバレッジファイルとカバレッジエージェントで収集する動的カバレッジデータからカバレッジレポートを作成します。
※このパターンによるカバレッジレポート作成にはソースコードが必要です。

カバレッジ計測方法
1. 静的カバレッジファイルの作成

ソースコードの情報を含む静的カバレッジファイルを作成します。

  • カバレッジ計測対象アプリケーションのソリューションに対して "builtin://Collect Static Coverage" テストコンフィギュレーションを実行します。
<INSTALL_DIR>\dottestcli.exe -config "builtin://Collect Static Coverage" -solution <SOLUTION_PATH>
  • コンソールに静的カバレッジファイルの作成先が出力されます。

2. カバレッジレポートの作成

以下のコマンドを実行して、テスト実行時に取得した動的カバレッジデータと静的カバレッジファイルでカバレッジレポートを作成します。

<INSTALL_DIR>\integration\coverage\dottestcov\dottestcov.bat -static [静的カバレッジファイル(static_coverage.xml) のパス] -runtime [動的カバレッジデータの出力先ディレクトリ]
作成された HTML レポートには計測したカバレッジのパーセンテージとメソッド毎の詳細が出力されます。
  • HTMLレポート

カバレッジレポート作成時に Parasoft DTP にパブリッシュすれば専用のウィジェットでカバレッジのパーセンテージを、カバレッジエクスプローラーでソースコードベースのカバレッジデータを確認できます。

  • [カバレッジ - パーセント] ウィジェット
  • カバレッジエクスプローラー

パターン2:動的カバレッジデータとアプリケーションのアセンブリに基づいたカバレッジレポート

アプリケーションのアセンブリ (exe, dll) ファイルと動的カバレッジデータからカバレッジレポートを作成します。
この方法で計測したカバレッジデータの詳細を確認するにはアプリケーションのソースコードと静的カバレッジファイルが存在する DTP にカバレッジデータをアップロードする必要があります。

カバレッジレポートの作成

テスト対象アプリケーションのディレクトリと、テスト実行時に取得した動的カバレッジデータでカバレッジレポートを作成します。

<INSTALL_DIR>\integration\coverage\dottestcov\dottestcov.bat -app [アプリケーションのディレクトリパス] -runtime [動的カバレッジデータの出力先ディレクトリ]

作成されたレポートには計測したカバレッジのパーセンテージとメソッド毎の詳細が出力されます。

  • HTML レポート
カバレッジレポート作成時に Parasoft DTP にアップロードすれば専用のウィジェットでカバレッジのパーセンテージを確認できます。
  • [カバレッジ - パーセント] ウィジェット


このパターンで作成したカバレッジレポートはソースコードの情報を含まないため、カバレッジエクスプローラーではメソッド毎のパーセンテージのみを確認することができます。

  • カバレッジエクスプローラー

 

パターン3:動的カバレッジデータに基づいたカバレッジレポート

テスト実行時に収集した動的カバレッジデータからカバレッジレポートを作成します。
この方法で作成されるレポートは、アプリケーション上で実行されたクラスの情報だけが含まれる簡易的なカバレッジレポートであり、カバレッジデータの詳細を確認するにはアプリケーションのソースコードと静的カバレッジファイルが存在する DTP にカバレッジデータをアップロードする必要があります。

カバレッジレポートの作成

動的カバレッジデータに基づいてレポートを作成します。

<INSTALL_DIR>\integration\coverage\dottestcov\dottestcov.bat -runtime [動的カバレッジデータの出力先ディレクトリ]

作成されたレポートにはアプリケーションの包括的なカバレッジ情報(クラスごとの実行された行数)が出力されます。

  • HTML レポート


カバレッジレポート作成時に Parasoft DTP にアップロードしても専用のウィジェットにカバレッジのパーセンテージは表示されず、実行された行数のみが表示されます。

  • [カバレッジ - パーセント] ウィジェット


このパターンで作成したカバレッジレポートをカバレッジエクスプローラーで表示した場合、クラス毎のパーセンテージのみを確認することができます。

  • カバレッジエクスプローラー

Parasoft DTP に集約したカバレッジ

Parasoft DTP では、各カバレッジレポートのイメージタグを利用してカバレッジデータを集約することができます。

パターン2およびパターン3のカバレッジレポートをコードベースで確認するには、イメージタグを利用して集約した全体のカバレッジデータを参照します。

  • [カバレッジ - パーセント] ウィジェット

  • カバレッジエクスプローラー

 

 

※今回はスタンドアロンの Windows アプリケーションのカバレッジ計測方法をご紹介しましたが、dotTEST では WEB アプリケーションのカバレッジ計測もできます。各カバレッジレポートの作成方法や dottestcov の利用方法の詳細はdotTEST のドキュメントをご確認ください。

まとめ

今回 dotTEST のカバレッジツール dottestcov を利用したアプリケーションカバレッジ計測をご紹介しました。
ソースコードを利用できない環境におけるテストのカバレッジ計測や効率的なアプリケーションカバレッジ計測の実現に興味がございましたら、ぜひ一度 dottestcov をお試しください。

Parasoft dotTEST について

dotTEST は、C#言語/VB.NET言語対応した静的解析・動的解析テストツールです。製造業、医療、金融など幅広い業界で利用されており、WindowsアプリケーションやWebアプリケーションなど、さまざまな.NETアプリケーションの開発に活用されています。
ソースコードに存在する問題点を自動的に検出し、テスト実行時にカバレッジを計測することができます。さらに、AIと連携することで、静的解析による違反修正作業の負荷を軽減することができます。