2022/12/6

2022/12/5

製品
DT+Trace
カテゴリー
How-to
タグ
テストポイント, 設定
5 Q&A 5 変更した関数や呼び出し関数、複雑度の高い関数を自動で検出してテストポイントを挿入する(DT+Advisor)

変更した関数や呼び出し関数、複雑度の高い関数を自動で検出してテストポイントを挿入する(DT+Advisor)

DT+Traceの補助ツールであるDT+Advisorを使用することで、以下の関数を自動で検出してテストポイントを挿入できます。

  • 変更された関数
  • 特定の関数の呼び出し元の関数
  • サイクロマティック複雑度の高い関数

「派生元のコードの確認をしたいがどこから確認すべきか分からない」「カバレッジ測定を運用したいがコード全体で測定する工数はかけられない」といった、限られた工数で効率的に確認や検証を実施する必要がある際に、DT+Advisorで着目したい関数を自動で検出でき役立ちます。

DT+TraceおよびDT+Advisorの使用フローは大まかに以下のようになります。

この際、DT+Advisorに関連して以下の点にご注意ください。

  • DT+Advisor起動前にテストポイントが存在する場合、DT+Advisorの起動時に既存のテストポイントは自動で削除されます。
  • DT+Advisorは事前に設定しなくてもお使いいただけますが、必要に応じて設定する項目などをこちらのページに記載しています。本ページと併せてご確認ください。
  • DT+Advisorでテストポイントを挿入すると、DT+Advisorは自動でクローズします。別の設定で挿入する場合は、改めてDT+Advisorを起動して実施してください。

本ページではDT+Advisor起動後の設定について説明します。

なお、DT+Traceの「ツール」メニューの「DT+Advisorを開く」を選択するとDT+Advisorが起動します。

絞り込みたい項目の選択

DT+Advisorが起動すると、以下のような画面が表示されます。設定を行うと画面中央のツリーに検出された関数(=テストポイントの挿入対象となる関数)がツリーで表示されますが、初めて起動した場合はすべての関数が表示された状態となっています。

画面の左側にある各項目の設定は、それぞれ右下部分にあるアイコンをクリックすると設定できます。同時に、関数の検出に反映されていることを表しています。

項目に応じた設定(関数の自動検出)

関数の呼び出し元

選択した関数を呼び出している関数に対してテストポイントを挿入したい場合に選択します。

設定を有効にして「設定を開く」ボタンを押下すると、以下のような画面が表示されます。

この画面で着目している関数を選択すると、その関数を呼び出している関数が検出され、DT+Advisor画面中央のリストに表示されます。

サイクロマティック複雑度

ある一定のサイクロマティック複雑度以上の関数に対して、テストポイントを挿入したい場合に選択します。

設定画面ではサイクロマティック複雑度を入力できます。入力値以上の関数が検出され、DT+Advisor画面中央のリストに表示されます。

変更差分のあるファイル

構成管理ツールなどで、あるコミットと別のコミットの間で変更された関数にのみテストポイントを挿入したい場合に選択します。これらは事前にユニファイド形式の差分ファイルを別途用意しておく必要があります。以下はSubversionでの差分ファイルの出力例です。

svn diff -r 27:37 > diff.txt
(※上記はリビジョンNo.27から37までの変更差分を、ユニファイド形式で"diff.txt"に出力する例です。)

設定画面では、上記のようにして出力されたファイルを指定します。差分ファイルをDT+Advisorが解析し、変更された関数を検出して表示します。

リストの内容のコピー

リストに表示された内容は、リストをドラッグ&ドロップで選択することでクリップボードにコピーできます。エクセルなどに貼り付けることが可能です。

設定に関しての留意点

例えば「変更された関数」と「サイクロマティック複雑度」のように複数の項目を有効化できます。どちらの項目にも該当する関数が検出されます(有効化された設定のANDとなります)。

テストポイントの挿入

DT+Advisor画面右上部分の「TP挿入」(TPはテストポイントのことです)をクリックすると、リストアップされた関数に対してテストポイントが自動で挿入されます。

なお、DT+Advisorはテストポイントが挿入される際に自動で画面がクローズします。挿入結果はDT+Traceから確認できます。

以降の手順はDT+Advisorを使用しない場合と同様です。ターゲット機器にドライバを組み込み、ビルドしたうえでデータの取得を実施してください。

このページの情報はお役に立ちましたか?
  • はい (0)
  • いいえ (0)
  • 探している内容ではない (0)