2024/5/8
製品
カテゴリー
タグ
1679 Views
C1カバレッジを「カバレッジレポート」上に表示させたい
本稿では、C1カバレッジの解析結果をカバレッジレポート上に出力する方法を説明します。C1カバレッジの設定を行う事で、テストレポートを解析し、実機上での操作/テストで対象となる関数内の分岐処理が真/偽両方の動作を網羅できているか、実行されていない分岐条件を確認し、不足している操作/テストパターンの検討などに活用する事ができます。
概要および手順
DT+Traceでは、プロパティ設定からC1カバレッジ解析の設定を行う事でレポート解析の際にカバレッジレポートにC1カバレッジの結果を出力する事が可能です。大まかなフローは以下の通りです。
C1カバレッジを行う
1. 環境設定でレポート解析設定からC1カバレッジ解析を設定します。
ツールメニューの環境設定より、「解析」を選択し、「レポート解析時にC1カバレッジを解析する」にチェックを入れてください。
チェック後、OKボタンを押してダイアログを閉じてください
2. テストレポートを開き、レポートデータの解析を行います。
メニューバー [レポート解析] > [テストレポートの表示] などから、C1カバレッジ解析を行いたいテストレポートを選択し表示します。
(※既にテストレポートが開かれている状態や複数レポートデータの合算解析を行う場合であればこの操作は不要です。)
メニューバー [レポート解析] > [レポートデータの解析] を選択し、テストレポートの解析を行います。
C1カバレッジ解析が有効になっている場合、以下のダイアログが表示されます。表示されない場合はメニューバー [ツール] > [環境設定]より手順1を再度ご確認ください。
チェックボックスが有効になっているソースファイルに対し、パス解析、C1カバレッジ解析を行います。チェックを外したソースファイルにはC1カバレッジ解析は行われません。
3. 解析後のカバレッジレポートからC1カバレッジの結果を確認します
レポート解析が実行されると、カバレッジレポートの右側にC1カバレッジ結果が表示されます。
関数単位のC1カバレッジ率の結果が右端のC1/C1(有効)に表示されます。リストの各カラムをクリックする事で、昇順/降順のソートが可能です。
C1lカバレッジの結果が100%の結果は赤字で表示され、分岐がないものは"-"で表示されます。
ルート計算に必要なテストポイントが挿入されていない場合、"X"が表示されます。該当の関数にFuncIn/Outなどのテストポイントが正しく挿入されているかご確認ください。
C1カバレッジ計算式は以下の通りです。
C1
(通過分岐ルート) / (分岐ルート数) × 100[%]
C1(有効)
(通過分岐ルート) / (分岐ルート数 – 無効分岐ルート) × 100[%]
※ 無効分岐ルートは、テストポイントのチェックボックスが無効になっているルート。
各関数単位の結果をダブルクリックすると、C1カバレッジ詳細レポートが表示されます。
補足:C1カバレッジ解析の種類について
C1カバレッジの解析には [ルート推定] の他に [クイック]があり、以下の特徴があります。
ルート推定
-
解析時に構文解析を行って割り出した「分岐ルート」のうち、通過した「分岐ルート」の割合を示します。
-
if文節で省略されたelseを推定しvirtualステップとして検出・ルート算出を行います。
-
switch文でのdefaultが省略されている場合はルート算出に使用しません。
-
for、while、doの分岐ルート算出は、
基本的には、trueのみを算出で用いますが、
同一関数内で、ループ処理の後に別の分岐系テストポイント(if,switchなど)があり、
ループ処理のテストポイントを通らず、同一関数の次の分岐系テストポイント(if,switchなど)を通った場合は、
ループのelseを推定し、virtualステップとして検出・ルート算出を行います。
クイック
- 挿入された分岐系のテストポイントのうち、通過したテストポイントの割合を示します。
- 省略されたelse、defaultなどは考慮されません。
- for、while、doの分岐ルート算出は、trueのみを分岐ルート算出します。
クイック方式は省略された分岐のルート算出を行わず、手動挿入や条件付きコンパイル解析などの設定をユーザー側で補完する必要があるため基本的に「ルート推定」を推奨します。