なお、アプリケーション開発においてカバレッジを計測するメリットは以下の記事で取り上げています。ぜひご一読ください。
dottestcov とは
dottestcov は dotTEST 2023.1 で搭載されたカバレッジ計測専用のツールです。
このツールを利用すると、アプリケーションのアセンブリをスキャンしてアプリケーションテスト実行時のカバレッジレポートを作成し、Parasoft DTP にアップロードすることで包括的なカバレッジを計測できます。
さらに、これまでのバージョンでは必要だった静的カバレッジファイルの作成を省略し、アプリケーションカバレッジ計測の効率化を実現できます。
動的カバレッジデータの収集
dotTEST のカバレッジ計測にはソースコードを解析して作成する静的カバレッジファイルとアプリケーションの実行ログから収集する動的カバレッジデータを利用します。
最初にアプリケーションのテストを実行して動的カバレッジデータを収集します。
- 「動的カバレッジ」データを収集するには カバレッジウィザード (<INSTALL_DIR>\integration\coverage\agent\coverage_wizard.exe) を実行してテスト対象のアプリケーション情報を入力します。
- カバレッジウィザードを [終了] すると、[ターゲット スクリプトのディレクトリ] に指定したディレクトリにスクリプトが作成されます。
- アプリケーションを実行しモニターする : monitorCoverage.bat
- カバレッジ データをインポートしてレポートする : importCoverage.bat
- monitorCoverage.bat スクリプトを実行してテスト対象のアプリケーションを起動します。
- カバレッジウィザードで [アプリケーションをただちに実行] オプションをオンにしてカバレッジウィザードを [終了] した場合はウィザードの終了後、自動で monitorCoverage.bat が実行されます。
- アプリケーションを操作してテストを実行します。
- アプリケーションを終了します。
- カバレッジウィザード [ターゲット スクリプトのディレクトリ] の 'CoverageLogs' に「動的カバレッジ」データが出力されます。
dottestcov のアプリケーションカバレッジ計測
dottestcov では 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レポート
カバレッジレポート作成時に Parasoft DTP にパブリッシュすれば専用のウィジェットでカバレッジのパーセンテージを、カバレッジエクスプローラーでソースコードベースのカバレッジデータを確認できます。
パターン2:動的カバレッジデータとアプリケーションのアセンブリに基づいたカバレッジレポート
アプリケーションのアセンブリ (exe, dll) ファイルと動的カバレッジデータからカバレッジレポートを作成します。
この方法で計測したカバレッジデータの詳細を確認するにはアプリケーションのソースコードと静的カバレッジファイルが存在する DTP にカバレッジデータをアップロードする必要があります。
カバレッジレポートの作成
テスト対象アプリケーションのディレクトリと、テスト実行時に取得した動的カバレッジデータでカバレッジレポートを作成します。
<INSTALL_DIR>\integration\coverage\dottestcov\dottestcov.bat -app [アプリケーションのディレクトリパス] -runtime [動的カバレッジデータの出力先ディレクトリ] |
作成されたレポートには計測したカバレッジのパーセンテージとメソッド毎の詳細が出力されます。
- HTML レポート
- [カバレッジ - パーセント] ウィジェット
このパターンで作成したカバレッジレポートはソースコードの情報を含まないため、カバレッジエクスプローラーではメソッド毎のパーセンテージのみを確認することができます。
- カバレッジエクスプローラー
パターン3:動的カバレッジデータに基づいたカバレッジレポート
テスト実行時に収集した動的カバレッジデータからカバレッジレポートを作成します。
この方法で作成されるレポートは、アプリケーション上で実行されたクラスの情報だけが含まれる簡易的なカバレッジレポートであり、カバレッジデータの詳細を確認するにはアプリケーションのソースコードと静的カバレッジファイルが存在する DTP にカバレッジデータをアップロードする必要があります。
カバレッジレポートの作成
動的カバレッジデータに基づいてレポートを作成します。
<INSTALL_DIR>\integration\coverage\dottestcov\dottestcov.bat -runtime [動的カバレッジデータの出力先ディレクトリ] |
作成されたレポートにはアプリケーションの包括的なカバレッジ情報(クラスごとの実行された行数)が出力されます。
- HTML レポート
カバレッジレポート作成時に Parasoft DTP にアップロードしても専用のウィジェットにカバレッジのパーセンテージは表示されず、実行された行数のみが表示されます。
- [カバレッジ - パーセント] ウィジェット
このパターンで作成したカバレッジレポートをカバレッジエクスプローラーで表示した場合、クラス毎のパーセンテージのみを確認することができます。
- カバレッジエクスプローラー
まとめ
ソースコードを利用できない環境におけるテストのカバレッジ計測や効率的なアプリケーションカバレッジ計測の実現に興味がございましたら、ぜひ一度 dottestcov をお試しください。