C++testユーザー様専用FAQ

ツールを使った静的・単体テスト 入門から実践までを体験! C++testハンズオンセミナー開催中!

このFAQはC++test ver9.x以降およびC++test ver10.x以降をご使用の方向けのFAQとなります。

Q-1.インストール関連

Q-2.プロジェクト関連

Q-3.静的解析

Q-4.フロー解析

Q-5.単体テスト

Q-6.実行時エラー検出

Q-7.コマンドラインからのテスト

Q-8.レポート

Q-9.クロス環境

Q-10.その他

 

ページトップへ戻る

A-1.インストール関連

Q1-1 各エディションの違いはなんですか?
【C++test 10.4 のバージョンをご利用の場合】
C++test 10.2以降より上位EditionにParasoft DTPの制限版であるDTP Standardが付属されます。
次の表は、それぞれのエディションについて対応している機能を表で示したものです。
機能 Desktop Edition Engine Edition (Server Edition)
静的解析 ※1
ルール作成
単体テスト
アプリケーションモニタリング
クロス環境での動的解析
実行時メモリエラー検出
フロー解析 (旧: バグ探偵) ※1
コマンドラインを使用したテストのバッチ処理
DTP Standard ※1
※2
 
※1 Engine EditionおよびDTP Standardはコンプライアンス パック(別売り)による拡張が可能です。
※2 DTP Standardのデータを参照することは可能です。
 
【C++test 10.2 ~C++test 10.3.4のバージョンをご利用の場合】
C++test 10.2以降より上位EditionにParasoft DTPの制限版であるDTP Standardが付属されます。
次の表は、それぞれのエディションについて対応している機能を表で示したものです。
機能 Desktop Edition Engine Edition (Server Edition)
静的解析
ルール作成
単体テスト ※1
アプリケーションモニタリング ※1
クロス環境での動的解析 ※1
実行時メモリエラー検出 ※1
フロー解析 (旧: バグ探偵)
コマンドラインを使用したテストのバッチ処理
Team Configuration Manager (TCM)
※2
DTP Standard
※3
 
※1 動的解析機能は10.3.2以降のバージョンで使用いただけます。10.2.2, 10.3.1には動的解析機能は搭載されておりません。
※2 Team Configuration Managerのデータを参照することは可能です。
※3 DTP Standardのデータを参照することは可能です。
 

Q1-2 どのインストーラーでインストールすればよいのでしょうか?
下記を参考に環境に合わせたインストーラーをご利用ください。
 
【Windows環境】
Visual Studio版はVisual Studioの64bit版が存在しないため、64bit環境でも32bit版のインストーラーをご利用ください。
ご使用中のEclipseもしくはEclipseベースのIDEにプラグインする場合はEclipse xxbit環境プラグイン版をインストールしてください。
  • Eclipse 32bit環境スタンドアロン版
  • Eclipse 32bit環境プラグイン版
  • Eclipse 64bit環境スタンドアロン版
  • Eclipse 64bit環境プラグイン版
  • Visual Studio プラグイン版
 
【Linux環境】
インストーラーは実行形式から圧縮された状態となっています。解凍した後、実行権限を付加してインストールを実行してください。
ご使用中のEclipseもしくはEclipseベースのIDEにプラグインする場合はEclipse xxbit環境プラグイン版をインストールしてください。
  • Eclipse 32bit環境スタンドアロン版
  • Eclipse 32bit環境プラグイン版
  • Eclipse 64bit環境スタンドアロン版
  • Eclipse 64bit環境プラグイン版
 

Q1-3 日本語のマニュアルがインストールディレクトリに見当たりません。
10.3.2より最新のドキュメントはWebマニュアルにてご確認いただけます。

またPDF版はユーザーページより資料をダウンロードいただけます。
 

Q1-4 入力したライセンスが有効になりません。または、ライセンスが不正と表示されます。
次をご確認ください。
  • C++testを再起動し、C++testに表示されるマシンIDと、発行されたパスワードのマシンIDが一致していることをご確認ください。
  • 発行されたパスワードの製品名・バージョン番号が、インストールしている製品と一致していることをご確認ください。
  • 発行されたパスワードの有効期限が満了していないことをご確認ください。
  • 発行されたパスワードが正しく入力されていることをご確認ください。
  • パスワードは、英数字のみで【社名_128文字_128文字】です。改行文字や空白文字は含まれません。
  • システムの時計が戻された可能性があります。このマシンでは、ノードロックのいかなる評価ライセンスも使用できません。正式ライセンスを請求するか、フローティングライセンスをご確認ください。
  • マシンIDが申請時と異なっていないかご確認ください。異なっている場合、Q1-9. マシンIDが変わってしまいライセンスが有効になりません。をご確認ください。
 

Q1-5 Windows 7にC++testをインストールしたのですが、ライセンス設定画面のホストIDの欄にWIN32-0と表示され、ライセンスを設定することが出来ません。
以下の方法で回避が可能です。(スタンドアロン版の場合)
  1. C++testの起動モジュール(cpptest.exe、ショートカット、バッチファイルなど)を右クリックし、 「プロパティ」を選択します。
  2. プロパティ画面の「互換性」タグをクリックします。
  3. [特権レベル]の 「管理者としてこのプログラムを実行する」のチェックボックスにチェックを入れます。
    (注 このチェックボックスにチェック可能な権限のユーザーでご確認下さい。 )
  4. [適用] › [OK]ボタンを押下します。
  5. 設定を行ったC++testの起動モジュールからC++testを起動します。
  6. ユーザーアカウント制御画面が表示された場合は「許可(A)」を選択します。
 

Q1-6 (Linux環境)rootユーザーでC++testをインストール後に一般ユーザーでログインしC++testを起動したがエラーが発生してしまいます。
C++testのインストールディレクトリに書込み権限がないため発生している問題です。
Eclipseコンフィギュレーション/キャッシュデータなどの設定ファイルはインストールディレクトリに作成されます。
C++testの起動の際には読み込みや書き込みのために設定ファイルにアクセスしますが、rootユーザーでインストールした場合、アクセス権限がない一般ユーザーではC++test スタンドアロン版を起動できません。
(https://bugs.eclipse.org/bugs/show_bug.cgi?id=54919)
 
回避するには下記のいずれかの方法を行なってください。
  • インストールを一般ユーザーで行う。
  • Eclipseのコンフィギュレーションデータを $(HOME)/EclipseConfigData ディレクトリに保持する設定を行う。手順は次の通り。
    • ‹INSTALL_DIR›/configuration/config.ini ファイルを開き、次の行を追加します(実際のディレクトリ名は異なる場合があります)。
      osgi.configuration.area=@user.home/EclipseConfigData
 

Q1-7 C++testで適応すべきパッチなどはありますか?
バージョンごとにユーザーページからパッチをダウンロードしてください。
適用方法はパッチ内の[about_this_patch.txt]ファイルをご参照ください。
 

Q1-8 Visual Studio版のC++testのアップデートに失敗してインストールできません。
C++testの古いバージョンのアンインストール後にC++testの新しいバージョンをインストールをした場合に失敗することがあります。
この場合、キャッシュ情報などが残っていることが原因である可能性があります。
コマンドラインから"CLEAN_MAIN_VS_SUFFIX"のオプションをつけてインストーラーを実行し、インストールしてください。
 
【具体例】
C++test 9.6のインストーラーにオプションをつけて実行する場合:
==================================
cpptest_9.6.1.97_win32_vs.exe CLEAN_MAIN_VS_SUFFIX
==================================
 

Q1-9 マシンIDが変わってしまいライセンスが有効になりません。
C++testがインストールされたマシンのネットワーク設定等が変更されたり、可変のネットワークインターフェースが使用されている場合、
マシンIDが変わり、アクティベートできなくなってしまう恐れがあります。
あらかじめ次の操作により、PARASOFT_SUPPORT_NET_INTERFACES環境変数に不変のネットワークインターフェースのMACアドレスを設定した上でライセンスの請求をお願いします。
なお、環境変数は常に有効になるように設定してください。変化する恐れのある仮想・テンポラリ・ループバックインターフェースの値を使用しないでください。
 
【Windows環境】
Windowsのシステム環境変数、もしくはC++testを起動するバッチファイルの中で、PARASOFT_SUPPORT_NET_INTERFACES環境変数を設定します。
 
  1. Windowsでは、PARASOFT_SUPPORT_NET_INTERFACES環境変数にネットワークカードのMACアドレスを設定してください。ipconfig ?allコマンド等でMACアドレスを確認できます。
  2.  
    設定例:set PARASOFT_SUPPORT_NET_INTERFACES=12-34-56-78-9A-BC
【Linux環境】
.bachrcなどでPARASOFT_SUPPORT_NET_INTERFACES環境変数を設定します。
 
  1. Linuxでは、PARASOFT_SUPPORT_NET_INTERFACES環境変数に”inet”または、”inet6”ファミリーのネットワークインターフェースを1つ設定してください。ifconfigコマンド等でネットワークインターフェース名を確認できます。
  2.  
    設定例:export PARASOFT_SUPPORT_NET_INTERFACES=eth1
 
ライセンスを請求済みでマシンIDが変わってしまった場合も、この操作でマシンIDが請求時のものに戻るかご確認ください。
もし戻らない場合は、変更されたマシンIDで固定されていることになりますので、そのマシンIDでマシン変更のお手続きをお願いします。
 

Q1-10 Visual StudioにC++testをプラグインできません。
C++test for Visual Studioでは .NET Framework 3.x が必要となっております。
Visual Studioのプラグイン版は、.NET Framework 3.x をインストールの上ご利用ください。
 

Q1-11 dockerのコンテナを起動するたびにC++testのマシンIDが変更されてしまいます。
dockerコンテナの再構築時(docker run)に仮想のネットワークインターフェースを毎回作成するため、
作成後のネットワークインターフェースのMACアドレスが同じでQ1-9 マシンIDが変わってしまいライセンスが有効になりません。を設定した場合でも、毎回異なるマシンIDとして算出されます。
そのため、固定のマシンIDを必要としないフローティングライセンスをご利用いただく必要がございます。
 
なお、作成済みのdockerコンテナのON/OFF(docker start/stop)であれば、仮想のネットワークインターフェースの再構築は行われないため、
C++testのノードロックのライセンスでアクティベートすることが可能です。
 

ページトップへ戻る

A-2.プロジェクト関連

Q2-1 C++testではどのようにプロジェクトを作成すればいいですか?
汎用的な手順をユーザーページの技術資料より資料をダウンロードいただけます。
  • ビルドデータファイルを使用したプロジェクトの作成
 
評価版をご利用の場合は、お問い合わせ先へお問い合わせください。
 

Q2-2 ビルドに失敗してテスト(静的解析、フロー解析、単体テスト)が実行できません。
C++testのビルド設定をご確認ください。
 
C++testの解析やテストは、[ビルド設定]に従ってテスト対象をビルドします。
 
    【Eclipse版の場合】
  1. [ナビゲーター]ビュー、または、[C/C++プロジェクト]ビューからテスト対象プロジェクトを選択します。
  2. 右クリックし、[プロパティ]を選択します。
  3. [プロパティ]画面左のツリーから[Parasoft] › [C++test] › [ビルド設定]を選択します。
  4. ビルド設定に、ご使用のビルド環境に即した設定がされているかご確認ください。
 
    【Visual Studio版の場合】
  1. [ソリューションエクスプローラ]ビューからテスト対象プロジェクトを選択します。
  2. 右クリック[C++test] › [プロパティ]を選択します。
  3. [プロパティ]画面左のツリーから[Parasoft] › [C++test] › [ビルド設定]を選択します。
  4. ビルド設定に、ご使用のビルド環境に即した設定がされているかご確認ください。
 

Q2-3 プロジェクトで使用しているソースファイルの拡張子が大文字.Cだと解析に失敗します。
ソースファイルの拡張子が大文字.Cの場合、C++testはC++言語と認識します。回避方法は以下の2つの方法があります。  

Q2-4 サポートされていないコンパイラで解析はできますか?
ご利用されるコンパイラがC++testでサポートしているコンパイラをベースにしているコンパイラである場合は、カスタムコンパイラを作成して頂き、解析が可能になる場合がございます。
ただし、ベースとなるコンパイラが有していないオプションや機能については解析ができずにパースエラーなどが発生します。
 
カスタムコンパイラとは、C++testの解析を行なうためのコンパイラの設定になります。
カスタムコンパイラについては、マニュアルの次の章をご確認ください。
[クロス プラットフォームと組込みテスト] › [カスタム コンパイラを使用するテストの設定]
 
パースエラーが発生する場合は、テストコンフィギュレーションの[コードのパースの問題:]の設定を「無視」にして頂く事である程度の静的解析を行うことができます。
[コードのパースの問題:]の設定の仕方についてはQ3-4. パースエラーが発生するファイルを静的解析できますか?をご参照ください。
 

Q2-5 プロジェクトの設定を簡単に流用する方法はありますか?
Eclipseベースの開発環境の場合、次のような手順で行えます。
具体的な手順としてC++test上のプロジェクト"Sample"のプロジェクト設定をC++testのExampleのプロジェクト“ATM”に流用させる手順を合わせて記載します。
 
  1. 流用元のC++test環境のプロジェクトのプロジェクト情報ファイル(.project, .cproject, .parasoft)をコピー先のプロジェクトフォルダにコピーします。
    例:.project, .cproject, .parasoftの3つのファイルを、‹C++testインストールディレクトリ/Examples/ATM›にコピーします。
  2. 流用先の.parasoftをテキストエディタで開き、プロジェクト名を新しい名前に置換します。
    例:コピー先の‹C++testインストールディレクトリ/Examples/ATM/.parasoft›をテキストエディタで開き、“Sample"を“ATM”に全て置換します。
  3. GUIを使用して、プロジェクト情報ファイルをコピーした先をプロジェクトフォルダとし、新しいプロジェクトを作成します。
    例:C++testのGUI上で[ファイル] › [インポート]を選択してインポート画面を開きます。
    インポート画面上で[一般] › [既存プロジェクトをワークスペースへ]を選択して[次へ]ボタンを押下します。
    次の画面で[ルート・ディレクトリーの選択]欄に‹C++testインストールディレクトリ/Examples/ATM›を指定します。
    [プロジェクト]欄から表示された流用先のプロジェクトにチェックを付けてインポート対象とし、[終了]ボタンを押下してプロジェクトをインポートします。
  4. [ナビゲーター]ビューからプロジェクトのプロパティ画面を開き、ビルド設定が流用元と同じであることを確認します。
    例:[ナビゲーター]ビューから“ATM”プロジェクトを選択して右クリック、[プロパティ]を選択します。
    表示されたプロパティ画面の左側の欄から[Parasoft] › [C++test] › [ビルド設定]を選択し、画面右側に表示されるビルド設定を確認します。
 
.parasoftはC++testの設定ファイル、.projectと.cprojectはEclipseのプロジェクトの設定ファイルです。
流用先のプロジェクトを既にC++test、またはEclipseベースの開発環境に登録済みである場合、ファイルを上書きして以前の設定に戻せない場合がありますので流用先プロジェクトのすべて、または設定ファイルのバックアップを取っておくようにしてください。
プロジェクトのバックアップは[ナビゲーター]ビューから右クリック、[エクスポート]で行なうことができます。
プロジェクト設定の流用が上手くいかない場合、.parasoftを削除後にもう一度手順1.から行なわれるか新規でプロジェクトを作成するようにしてください。
 

ページトップへ戻る

A-3.静的解析

Q3-1 静的解析が実行できません。
以下の点をご確認ください。
 
  1. [テスト進捗]ビューに「セットアップの問題」と表示された場合は、コンソールに出力された内容をご確認ください。コンソールの出力情報を変更する場合は、Q10-4. エラーの内容を詳しく知りたいのですが、どこを参照すればよいですか?を参考にしてください。
  2.  
  3. パス(フォルダ名、ファイル名、プロジェクト名、インクルードディレクトリ、ワークスペースディレクトリ)に日本語が含まれていると解析に失敗する、もしくはエラーが検出されない場合があります。詳細につきましては、Q10-3. パス(フォルダ名、ファイル名、プロジェクト名、インクルードディレクトリ)に日本語が入るとテストできません。 を参照してください。
  4.  
  5. C++testの実行時に「Out of memory error」のエラーが発生している可能性があります。Q10-5. OutOfMemoryErrorが発生します。を参照してください。
  6.  
  7. コンソールの出力を確認してください。
    Windows上でCygwinを使用している場合、次のようなエラーが発生することがあります。
    ===========================================================
    Error preprocessing file "C:¥DOCUME~1¥Administrator¥LOCALS~1¥Temp¥Par4D.tmp.c": 
    Cannot launch process: gcc -O0 -fmessage-length=0 -DPARASOFT_CPPTEST ...
    指定されたファイルが見つかりません。
    ===========================================================
     
    C++testで使用するコンパイラの環境変数 ($PATH や $LD_LIBRARY_PATH 等) が正しく設定されていないためにエラーが発生している可能性があります。C++testを起動するシェル等で環境変数を設定し、C++testを再起動してください。
     
    環境変数が設定されている場合、Cygwinは古いバージョンにおいてgcc.exeやg++.exeがシンボリックリンク(ショートカット)になっており、 C++testから直接gcc.exeやg++.exeを起動できていない可能性があります。そこで、C++testのビルド設定を変更します。
  8.  
    1. [ビルド設定]の画面を開きます。
      [ビルド設定]画面の表示方法についてはQ2-2. ビルドに失敗してテスト(静的解析、フロー解析、単体テスト)が実行できません。 をご参照ください。
    2. コンパイラ設定のCコンパイラ、C++コンパイラ、リンカの設定を変更します。
    3. gcc3.xのバージョンを使用したい場合はgcc→gcc-3へ変更します。
      gcc4.xのバージョンを使用したい場合はgcc→gcc-4へ変更します。
      C++、リンカについても同様に使用したいバージョンに合わせg++を変更します。
     
  9. コンソールの出力に"そのようなファイルやディレクトリはありません"とエラーが表示される場合、次の2点が原因として考えられます。
    インクルードディレクトリが指定されていない場合、もしくは、解析の言語が切り替わっている場合。
 
○インクルードディレクトリが指定されていない場合
プロジェクトのプロパティ画面を開きます。
 
【Eclipse版の場合】
プロジェクトを右クリックで選択し、[プロパティ]を選択します。
 
【Visual Studio版の場合】
プロジェクトを右クリックで選択し、[C++test] › [プロパティ]を選択します。
[ビルド設定]の[コンパイラオプション]にインクルードディレクトリを設定します。
インクルードディレクトリの設定はコンパイラに合った適切なオプションで指定してください。
具体例はGCCコンパイラでの指定となります。
==================================
-I‹インクルードディレクトリへのパス›
==================================
 
○解析の言語が切り替わっている場合
一例として、拡張子が.cのソースファイルにおいて#include 9 map: のようにC++言語での記述をされている場合などのとき発生します。
これはC++testが拡張子によって記述言語を区別しているためです。
 
【Eclipse版の場合】
ファイルを右クリック、[プロパティ]を選択してプロパティ画面を開きます。
[ビルド設定]の[オプション] › [コンパイラオプション]に言語設定用のオプションを設定します。
オプションはコンパイラに合った適切なものを指定してください。具体例はGCCコンパイラでの指定となります。
-xc :ソースファイルをC言語として関連付けます
-xc++:ソースファイルをC++言語として関連付けます
 
【Visual Studio版の場合】
ファイルを右クリック、[C++test] › [プロパティ]を選択してプロパティ画面を開きます。
[ビルド設定]の[オプション] › [コンパイラオプション]に言語設定用のオプションを設定します。
-Tc :ソースファイルをC言語として関連付けます
-Tp :ソースファイルをC++言語として関連付けます
 
【Eclipse版の場合(全てのファイルの関連付け)】
Eclipseでは全てのファイルの言語と拡張子の関連付けを設定することができます。
  1. プロジェクトを右クリック、[プロパティ]を選択してプロパティ画面を開きます。
  2. [C/C++ 一般] › [ファイル・タイプ]を選択します。
  3. [プロジェクト設定の使用]にチェックを入れ、新規ボタンを押下して関連付けを行います。
    例:拡張子.CファイルをC言語のソースファイルとする。
    パターン:*.C
    型:Cソースファイル
 

Q3-2 静的解析が実行できません。(Windows 7/8.1/10で発生する問題)
Windows 7/8.1/10ではユーザーアカウント制御(UAC)が原因で、バッチファイルからC++testを起動した場合にバッチファイル内で登録した環境変数の情報が取得できなく、解析が実行できない場合がございます。
 
UACはシステムの設定が変更されないようにユーザーの権限を制限します。
管理者権限を持っている場合でもC++testおよびC++test起動用のバッチを管理者承認モードで実行する必要があります。
管理者承認モードでC++testをバッチから起動するには次の方法をお試しください。
 
  1. C++test.exeまたはC++testのショートカットを右クリックで選択し、[プロパティ]を選択します。
  2. プロパティ画面の[互換性]タブ›[特権レベル]の[管理者としてこのプログラムを実行する]にチェックを付けます。
  3. C++testをコマンドラインから起動するバッチファイルを右クリックで選択し、[プロパティ]を選択します。
  4. 2.同様に[管理者としてこのプログラムを実行する]にチェックを付けます。
  5. 設定の完了後、バッチファイルを実行してC++testを起動してください。
 
セキュリティ上の問題などで管理者承認モードを実行することができない場合は直接システムに環境変数を登録する方法をお試しください。
 
  1. [スタート]›[コンピューター]›[プロパティ]を選択します。
  2. システムの画面左側の欄から[システムの詳細設定]を選択します。
  3. システムのプロパティ画面から[詳細設定]›[環境変数]を選択します。
  4. 環境変数の画面から[システム環境変数]、または[ユーザー環境変数]に環境変数を設定します。
  5. [変数]の欄から[PATH]を選択し、[編集]を押下します。
  6. システムの編集画面から[変数値]にパスを追加します。一つ一つのパスは“;”で区切ります。
    【具体例】
    C:¥cygwin¥binにインストールされているコンパイラのパスを通す場合:
    ==================================
    C:¥cygwin¥bin;~既存の環境変数~
    ==================================
  7. [OK]を押下して設定を保存します。
 

Q3-3 メトリクスルールの閾値を変えたい。
テストコンフィギュレーション画面の[静的]タブ › [ルールツリー]タブ › [メトリクス]カテゴリのルールはRuleWizardを用いて変更が可能です。
変更方法はルールウィザードのドキュメントの[参照] › [式と正規表現]をご参考ください。テクニカルサポートへご連絡ください。
評価版をご利用の場合は、お問い合わせ先へご連絡ください。

 

Q3-4 パースエラーが発生するファイルを静的解析できますか?
はい、静的解析を行うことができます。
デフォルトの設定では、テストコンフィギュレーションの[コードのパースの問題:]の設定が「無視」となっているため、パースエラーの発生する箇所をスキップして解析します。
ただし、パースエラーとなるファイルに対しては構文が正しく解釈できていないため、正常な結果が得られない場合もあります。
そのため、パースエラーが発生したファイルをエラーとして認識させることを推奨しております。  
以下の手順で設定できます。
  1. メニューより[Parasoft]>[テストコンフィギュレーション]を選択します。
  2. 設定を行うテストコンフィギュレーションを選択します。
  3. [静的]タブを選択し、[コードのパースの問題:]を"エラー"に設定してください。
 

Q3-5 フロー解析やコーディングルールチェックのルールにある重要度の違いは何ですか?
フロー解析やコーディングルールチェックのルールは重要度レベルによってグループ分けされています。
重要度レベルは、重大な構造上の欠陥を引き起こす可能性の程度を表します。
重大な構造上の欠陥とは、パフォーマンスの低下、メモリリーク、セキュリティの脆弱性などのアプリケーションの問題を引き起こす構造のことです。
  • 重要度レベル1:ソフトウェアが問題を引き起こす可能性がもっとも高い。メモリリークの問題など、主にフロー解析のルールが含まれる。
  • 重要度レベル2:信頼性などに関して重大な違反がある可能性がある。セキュリティの脆弱性など、主にセキュリティカテゴリのルールが含まれる。
  • 重要度レベル3~5:問題を引き起こす可能性は中~低程度である。主に保守性や可読性に関連する軽度の違反で、コーディングミスを防ぐルールや命名規則に関するルールなどが多く含まれる。
 
重要度レベル1のルールはソフトウェアのバグの可能性があるため、必ずレビュー・修正を行っていただくことを推奨します。
重要度レベル2のルールはバグや問題に直結することはあまりありませんが、単体テストや結合テスト時に不要に工数を使用する可能性があります。
重要度レベル3から5のルールはバグや問題に直結する指摘は少ないですが、ルールを守ることによって、問題となりやすいコードの書き方が指摘されてバグの防止に繋がったり、命名規則を整えることで読みやすくするなどの保守性や可読性を高める効果が期待できます。

ページトップへ戻る

A-4.フロー解析

Q4-1 フロー解析が実行できません。
原因と対処について、Q3-1. 静的解析が実行できません。をご確認ください。
 

Q4-2 フロー解析が実行できません。(Windows 7/8.1/10で発生する問題)
原因と対処について、Q3-2. 静的解析が実行できません。(Windows 7/8.1/10で発生する問題) をご確認ください。
 

Q4-3 フロー解析の解析に時間がかかります。早く解析する方法はありませんか?
インクリメンタル解析でキャッシュ情報を利用することで解析時間の短縮が見込めます。
最初の解析ではキャッシュ情報の保存のため通常よりも時間がかかりますが、以降の解析では解析時間が短縮されます。
以下の手順で設定を行えます。
 
  1. メニューから[Parasoft] › [テストコンフィギュレーション]を選択してテストコンフィギュレーション画面を開きます。
  2. フロー解析を実行するユーザー定義のテストコンフィギュレーションを選択します。 ビルトインのフロー解析を使用している場合は使用しているフロー解析のテストコンフィギュレーションを右クリックして[複製]を実行してユーザー定義に複製してください。
  3. 画面右側から[静的」タブ › [フロー解析詳細設定] › [パフォーマンス]を選択します。
  4. [インクリメンタル解析を有効化]のオプションにチェックを付けて有効にします。
  5.  

Q4-4 フロー解析の解析に時間がかかります。解析に使用するメモリを増やすことはできますか?
C++testの静的解析エンジンが使用するJVMのヒープサイズを増やすことで、フロー解析の解析速度が向上する可能性があります。
以下の手順で設定を行えます。
 
  1. メニューから[Parasoft] › [設定]を選択して設定ダイアログ画面を開きます。
  2. ツリーより[Parasoft]>[テクニカル サポート]を選択します。
  3. 画面右側から[拡張オプション」のチェックを有効にして、以下のようにJVMサイズを指定します。
    設定できる最大サイズは、お使いのマシンによって異なります。
    【具体例】
    ==================================
    CPPTEST_ENGINE_EXTRA_ARGS="-J-Xmx4096m"
    ==================================
 

ページトップへ戻る

A-5.単体テスト

Q5-1 単体テストが実行できません。
原因と対処について、Q3-1. 静的解析が実行できません。をご確認ください。
 

Q5-2 単体テストが実行できません。(Windows 7/8.1/10で発生する問題)
原因と対処について、Q3-2. 静的解析が実行できません。(Windows 7/8.1/10で発生する問題) をご確認ください。
 

Q5-3 単体テストを実行したらエラーになり、テスト結果が表示されません。
各種エラー内容によって対応が変わります。テクニカルサポートへご連絡ください。
評価版をご利用の場合は、お問い合わせ先へご連絡ください。
 

Q5-4 C++testではどのようなカバレッジを収集できますか?
C++testが収集可能なカバレッジの種類は以下の9種類です。
 
  • 行カバレッジ
  • ステートメントカバレッジ(C0:命令網羅率)
  • ブロックカバレッジ
  • パスカバレッジ
  • 判断文カバレッジ(C1:分岐網羅率)
  • 単純条件カバレッジ(C2:条件網羅率)
  • Modified Condition/Decision Coverage (MC/DC)カバレッジ
  • 関数カバレッジ
  • コールカバレッジ
 
ビルトインの[Run Unit Tests]は行カバレッジのみを収集する設定になっています。
次の設定を変更してお使いください。
 
  1. ユーザー定義のテストコンフィギュレーションを作成します。
  2. [実行] › [全般]タブを選択します。
  3. [インストゥルメントモード]を「カスタムインストゥルメント」に変更します。
  4. [編集]ボタンを選択し、[インストゥルメントの機能]で必要な「カバレッジメトリクス」を設定します。
 

Q5-5 ファイルやデータベースに単体テスト用に用意したテストデータがある場合、これを使用できますか?
テストで使われる関数の入出力値やグローバル変数などのデータが記載されているCSVファイルやExcelファイル、データベースのテーブルはデータソースとしてC++testに登録することで単体テストに利用することができます。
データソースの登録の手順はQ5-6.事前に作成したCSVファイルなどのテストデータはどのようにしてC++testに登録するのですか?をご参照ください。
 

Q5-6 事前に作成したCSVファイルなどのテストデータはどのようにしてC++testに登録するのですか?
以下の手順でテストデータのファイルをデータソースに登録することができます。
 
  1. プロジェクト内の任意のディレクトリにデータソースのファイルを保存します。
  2. [テストケースエクスプローラー]ビュー上でデータソースを登録したいプロジェクト、またはテストスイートを選択して右クリック[新規追加] › [データソース]を選択します。
  3. 表示される新規プロジェクトデータソース画面から登録したいデータソースの形式(CSV / Excel / データベース / テーブル / 集合)を指定し、[終了]ボタンを押下します。
  4. 表示されるデータソースの設定画面にデータソースの情報を設定します。
    • [全般]:登録するデータソース名とデータソースの形式を指定します。
    • [行]:テストデータとして有効な範囲としてすべての行とするか範囲を指定するか選択します。
    • [CSV / Excel / 接続パラメーター / テーブル / 集合]:データソースを読み取るための設定を行います。ファイルへのパスの指定やデータソースの1行目にカラム名を含むか否かなどの設定を行います。
    • [特殊な値]:接頭辞がある場合はリストから選択し、ない場合は入力して指定します。
    • [列]:最後に[列の表示]ボタンを押下してデータソースに記載されている列名、カラム名が取れることを確認します。ボタンを押下することで設定が保存されます。
 
以上でデータソースがプロジェクト、またはテストスイートに対して登録されます。プロジェクトに登録されたデータソースはプロジェクト全体で使用することができ、テストスイートに登録されたデータソースは登録したテストスイートでのみ使用することができます。
 

Q5-7 データソースから値を取得する関数やアサーション関数の一覧はどこにありますか?
C++testで使用できるAPIについては、ユーザーズガイドの次の章にございます。 
[C++test API ドキュメント] › [テストケースとスタブのAPI]
 

Q5-8 スタブを作成したのですが、スタブを呼び出すことができません。
下記2点をご確認ください。
 
  1. 作成したスタブファイルが、使用しているテストコンフィギュレーションに設定されているかご確認ください。
    1. メニュー[Parasoft] › [テストコンフィギュレーション]を選択します。
    2. 使用しているテストコンフィギュレーションを選択します。
    3. [実行] › [シンボル]タブを選択します。
    4. [次の場所で発見されたファイルのシンボルも使用]にスタブファイルのあるディレクトリが設定されているかをご確認ください。
  2. C++testではシンボルは4種類に分けられ、そのうちC++testのスタブは3種類にあたります。
    C++testでは、テストで呼び出されるシンボルに優先順位があります。
    自動生成スタブが使用されるのは、他の定義 (ユーザー定義スタブまたはオリジナル関数) が使用できない場合だけです。
    シンボルの呼び出し優先順位は以下の通りです。
     
    ユーザー定義スタブ › セーフスタブ › オリジナル関数 › 自動生成スタブ
  • 自動生成スタブ・・・接頭語は「CppTest_Auto_Stub_」になります。他の定義がない場合に使用されます。
  • ユーザー定義スタブ・・・接頭語は「CppTest_Stub_」になります。
  • セーフスタブ・・・rmdir()、remove()、rename() などのシステムI/Oルーチンを「危険な関数」としてC++testの内部で定義して置き換えます。
 

Q5-9 fopenなどのファイルI/Oを行う関数の場合、テストケースが失敗(Failed)します。
どうやったらテストケースを成功(Passed)させることができますか?
C++testでは、セーフスタブが定義されております。
セーフスタブの詳細については C++testユーザーズガイドの次の章をご確認ください。
[使用方法] › [テストの生成と実行] › [テストスイートの拡張と変更] › [スタブの追加と変更] › [自動生成されたセーフ スタブ定義の無効化]
 
このセーフスタブを無効にすることでfopenなどのオリジナルの関数を使用することができます。
 
変更方法
  1. [Run Unit Tests]のテストコンフィギュレーションを開きます。
  2. [実行] › [シンボル]のタブを選択します。
  3. [次の場所で発見されたファイルのシンボルも使用]の次の内容を消します。
=====================
${cpptest:cfg_dir}/safestubs
=====================
 

Q5-10 テストケースの作成担当者毎に同名のテストスイートが作成される場合、テストスイートをどのようにマージすればよいですか?
C++test自体にはファイルのマージを補佐する機能はない為、外部ツール(構成管理)をご活用ください。
また、コーディングするなど自由にカスタマイズすることが可能なため、下記のような方法でマージいただくことが可能です。
 
テストスイートに含まれるテストケースをマージすることで複数のテストスイートを一つのテストスイートにまとめることができます。
手動によるマージとEclipse環境に限りGUIの機能を利用してのマージの2つの方法がございます。
 
【手動によるマージ】
 テストスイートに含まれるテストケースに関連する次の3ヶ所の記述をマージ対象のテストスイートに追加します。
 プロジェクトA1のテストスイートにプロジェクトA2のテストケースをマージしたい場合、プロジェクトA2のテストスイートの次の3ヶ所の記述をプロジェクトA1のテストスイートにコピー&ペーストします。
  • テストケースの登録セクション : CPPTEST_TEST_SUITE(<テストスイート名>); から CPPTEST_TEST_SUITE_END(): の間にある記述
  • テストケースの宣言セクション : テストケースのプロトタイプ宣言の記述
  • テストケースの定義セクション : テストコードが記述されたテストケース自体の記述
 
【Eclipse環境でのGUI機能を利用したマージ】
 [テストケースエクスプローラー]ビューにてテストケースをコピーし、テストスイートに貼り付けることでテストケースを完全に移行することができます。
 例としてプロジェクトAのテストケースをマージする手順を記載します。
 
  1. プロジェクトAのプロジェクト名を一旦変更します。ここではプロジェクトA1とします。
  2. マージしたいテストケースを持つプロジェクトAをインポートします。このプロジェクトを仮にプロジェクトA2とします。同じワークスペース上に同じワークスペース上にプロジェクトA1とプロジェクトA2の両方が存在する状態となり、マージしたい2つテストケースを[テストケースエクスプローラー]ビュー上でどちらも参照することができます。
  3. マージしたいテストケースを[テストケースエクスプローラー]ビュー上で右クリックして[コピー]します。
  4. マージしたいテストスイートを選択して右クリック[貼り付け]を実行します。
 
なお、テストスイートの生成の標準設定であるソースファイルやヘッダーファイル単位での生成が原因で、テストケースの作成担当者毎に同名のテストスイートが作成されます。生成の設定を関数単位でテストスイートを生成していただくことでテストスイートのファイル名がそれぞれ別になるため、上記のようなマージの必要がなくなります。その分、テストケースを効率的に管理しやすくなります。 
 

Q5-11 Cygwin GCCを用いたEclipse環境で単体テストのデバッグができません。
テストコンフィギュレーションの[実行]タブ>[実行時]タブにある[デバッガーでテストを実行する]オプションを有効にし、[コンフィギュレーションを使って直接Eclipse IDEでデバッグする]オプションを無効にしている場合、Cygwinの環境ではGNU gdbデバッガを使用してデバッグを行います。

gdb 7.3のバージョンはgdbの不具合によりC++testではデバッグ実行を行うことができません。gdb 7.3を使用している場合、バージョンを変更していただくことで問題を回避することができます。
 

Q5-12 スタブファイルで変数や型、マクロなどについて定義が見つからないというコンパイルエラー(identifier "XXX" is undefined)が発生する場合、どうすれば解決できますか?
スタブファイルにおいて変数や型、マクロについて定義しているインクルードファイルが足りていない場合があります。この場合定義を参照できないため、変数や型、マクロが未定義であるとしてコンパイルエラーが発生します。解決するには、スタブファイルから定義を参照できるようにスタブファイルに#includeディレクティブでインクルードするファイルを追加してください。
 

Q5-13 登録したデータソースの移行を簡単に行う方法はありませんか?
次の設定を行うことでデータソースの登録情報を直接テストスイートファイルと1対1で関連付けられる設定ファイルにエクスポートすることができます。
この設定ファイルをテストスイートファイルと同じディレクトリにコピーすることでデータソースの登録情報を簡単に関連付けられます。
 
【Eclipse版の場合】
  1. [ナビゲーター]ビュー、または、[プロジェクトエクスプローラー]ビューからプロジェクトを選択します。
  2. 右クリックして[プロパティ]を選択します。
 
【Visual Studio版の場合】
  1. [ソリューションエクスプローラ]ビューからプロジェクトを選択します。
  2. 右クリックして[C++test] › [プロパティ]を選択します。
  3.  
  4. [プロパティ]画面左のツリーから[Parasoft] › [C++test] › [データソース]を選択します。
  5. [ポータブルデータソースストレージを使用]チェックボックスにチェックを付けます。
  6. [適用]ボタンを押下して設定を保存し、[OK]ボタンを押下して設定を完了します。
  7. データソースを使用するテストケースを含むテストスイートファイルと同じディレクトリに "テストスイートファイル名".properties ファイルが生成されます。
  8. データソースを利用したい移行先であるテストスイートファイルと同じディレクトリに手順6.で生成されたファイルをコピーします。
  9. 移行先のプロジェクトで手順1.から手順5.までの設定を行います。
  10. データソースの移行が完了します。
 

Q5-14 C++testのマクロにはどんなものがありますか?
C++testには以下の種類のマクロがあります。テストスイート/テストケースの登録マクロ以外はテストケース内とスタブ内のどちらでも使用することができます。
実際に使用可能なマクロにつきましては C++testユーザーズガイドの次の章をご確認ください。
[C++test API ドキュメント]
 
  • テストスイート/テストケースの登録マクロ
    テストスイートおよびそれに含まれるテストケースの登録に使用できるマクロです。
  • データソースマクロ
    CPPTEST_TEST_DS()マクロで登録されたデータソースを使用するテストケースで使用できるマクロです。
  • C++testストリームAPI
    テストケース実行時に stdin / stdout / stderr をリダイレクトできます。
  • 型限界値関数
    数値型の限界値を取得できます。自動生成されたテストケースで使用されます。
  • テストケース事後条件マクロ
    テスト結果の実際の値をレポートするために使用できます。レポートは[品質タスク]ビューで自動的にアサーションに変更できます。
  • テストケース検証マクロ
    指定された値や変数の実際の値を期待する値と検証するために使用できます。
  • テストケースレポートマクロ
    指定された値や変数の実際の値を生成されるレポートに出力することができます。
  • リアルタイムシステムでの応答時間を測定および検証するマクロ
    リアルタイムシステムで応答時間を測定および検証するには次のマクロを使用します。
    カバレッジを計測するコードなどをインストゥルメントしない(埋め込まない)テストと組み合わせることでリアルタイム性を検証することができます。
  • ユーティリティマクロと関数
    テストケース内で使用できるC++testランタイムライブラリのユーティリティマクロと関数です。
  • テストケースから起動されるスタブ用の関数
    スタブ内で使用することで現在実行されているテストケースの情報を取得することができるマクロです。
    このマクロを利用することで、テストケースやテストスイートに合わせてスタブの処理を分けることもできます。
 

Q5-15 CppUnitのテストケースをC++testでテストするにはどうすればよいですか?
C++testではCppUnitのテストケースを実行してテストを実施し、カバレッジを計測することができます。
CppUnitテストケースへのアクセス方法や要件・制限事項に関して詳細がユーザーズガイドの次の章にございます。
[使用方法] › [テストの作成と実行] › [テストスイートの拡張と変更] › [手動で作成された既存のCppUnitテストケースの実行]
 
以下にCppUnitをテストするために必要な事項を手順としてまとめます。
 
  1. プロジェクト内にCppUnitテストケースのソースファイルがあることを確認します。
    【Eclipse版の場合】
    [ナビゲーター]ビューや[C/C++ プロジェクト]ビューなどからプロジェクト内にCppUnitテストケースのソースファイルが見えれば大丈夫です。
    プロジェクトのディレクトリ以下にCppUnitのテストケースを格納したくない場合、Eclipseの”リンクフォルダ”の機能でプロジェクト外のディレクトリにリンクさせることで対応できます。
    1-1. [ファイル]メニューの[新規]›[その他]を選択します。
    1-2. [一般]の[フォルダ]を選択して[次へ]ボタンを押下します。
    1-3. [拡張]ボタンを押下します。
    1-4. [代替ロケーションにリンク]ラジオボタンを有効にします。
    1-5. リンクするプロジェクト外部のディレクトリを指定します。
    1-6. [終了]ボタンを押下します。
     
    【Visual Studio版の場合】
    [ソリューションエクスプローラー]ビューからプロジェクト内にCppUnitテストケースのソースファイルが見えれば大丈夫です。
  2.  
  3. [Parasoft]メニューの[テストコンフィギュレーション]を選択します。
  4. CppUnitのテストケースを実行するテストコンフィギュレーションを選択します。
    ユーザー定義のテストコンフィギュレーションが無い場合は、
    [ビルトイン]›[Unit Testing]›[Run Unit Tests]を選択して右クリック、[複製]を選択します。
  5. [実行]タブ›[全般]タブを選択します。
  6. [単体テストの設定]›[テストスイートファイルの場所のパターン]欄にCppUnitテストケースのソースファイルのあるディレクトリのパスを指定します。
  7. [適用]ボタンを押下して設定を保存します。
 

Q5-16 テストを複数回実施したカバレッジのログをマージすることはできますか?マージした結果をレポートに出力することはできますか?
可能です。テスト結果のログファイル(cpptest_results.tlog)とカバレッジのログファイル(cpptest_results.clog)はログ情報を指定のファイルに追記する形式として生成されます。毎回のテストの実行において、2つのログファイルを削除しないことでカバレッジ・テスト結果のログを自動的にマージすることができます。レポートにもマージした結果が出力されます。
 
手順書とサンプルのテストコンフィギュレーションを準備しておりますので、ユーザーページの技術資料よりダウンロードしてお使いください。
資料名:テスト結果のマージ
評価版をご利用の場合は、お問い合わせ先へとお問い合わせください
 

Q5-17 データソースでdefineで定義されたマクロ名やenumの識別子を使用する方法はありますか?
データソースでdefineで定義されたマクロ名やenum識別子を使用するためのスクリプトの準備があります。
ご興味のある方はテクニカルサポートまでお問い合わせください。
なお、環境によって提供します内容が異なりますので、お問い合わせの際は以下の情報を含めるようにお願い致します。
 
(1)C++testのバージョン
(2)OSとそのバージョン
(3)コンパイラとそのバージョン
(4)開発環境(IDE)とそのバージョン
 

Q5-18 作成したスタブファイルでエラーが発生しましたが何が原因でしょうか?
インクルードしているファイルが足りないか、順番が適切でないことが原因の可能性がございます。作成したスタブファイルがデフォルトのままでは、全てのヘッダファイルが適切な順番でインクルードされない場合がございます。そのため、お手数をおかけしますが、手動でスタブ関数のオリジナル関数が定義されたファイルでインクルードしているヘッダファイルを追加してください。
 

Q5-19 無限ループのある関数をテストする方法はありますか?
無限ループのある関数をテストするためのマクロが用意されております。
バージョン9.5.4以降のマニュアルには「無限ループがある関数/ メソッドのテスト」の項目に記載があります。
無限ループの関数をテストするためのサンプルプロジェクトをユーザーページの技術資料に置いておりますので、「無限ループのある関数のテスト」をダウンロードしてください。
以前のバージョンのマニュアルしか持っていない方でも使えるようにマクロの説明と使い方の例が分かります。
評価版をご利用の場合は、お問い合わせ先へとお問い合わせください
 

ページトップへ戻る

A-6.実行時エラー検出

Q6-1 フロー解析機能と、実行時エラー検出機能は何が違うのですか?
フロー解析は静的解析、実行時エラー検出は動的解析にカテゴライズされます。以下はそれぞれの機能の特徴を示した一覧表です。
  実行時エラー検出 フロー解析 (旧: バグ探偵)
収集可能な
カバレッジ
  • 行カバレッジ
  • ステートメントカバレッジ
  • 基本ブロックカバレッジ
  • パスカバレッジ
  • 判断文力カバレッジ
  • 単純条件カバレッジ
  • MC/DCカバレッジ
  • 関数カバレッジ
  • コールカバレッジ
  • 収集しない
テストの条件
  • 実行モジュールがあること。
    ただし単体テストモードは実行モジュールが無くても可。
  • 特になし。
    どのフェーズでもテスト可。
検出の精度
  • 実行時の検出のため問題のあるエラーをほぼ100%検出。
  • 静的なパスチェックで発見できない複雑な処理で発生するエラーを発見する。
  • スレッドをまたがって発生するようなエラーを検出する。
  • バグの可能性を検出する。また、実行されない可能性があるパスも検出する。
  • 通常のアプリケーションの実行では見つからない例外などを検出することができる。
 

Q6-2 テストを複数回実施したカバレッジのログをマージすることはできますか? マージした結果をレポートに出力することはできますか?
はい、可能です。手順および設定の詳細については Q5-16. テストを複数回実施したカバレッジのログをマージすることはできますか? マージした結果をレポートに出力することはできますか?をご確認ください。
 

ページトップへ戻る

A-7.コマンドラインからのテスト

Q7-1 cpptestcliを使用してテストができません。
以下の3点をご確認下さい。
 
  1. cpptestcliコマンドが実行できない場合。
    C++testのインストールディレクトリへのパスを通してください。それでもうまくいかない場合は、2. を確認してください。
  2.  
  3. パスを正しく指定できない場合。

    【Windows版の場合】
    1. C++testは、Cygwinの“/cygdrive/DISK/PATH”書式を使って指定されたファイルパスをサポートしません。
      標準的なWindowsのパス書式を使用してください。
    2. シェル/コンソールによっては、ファイルパスのバックスラッシュを2つ重ねてエスケープする必要があります。
      【具体例】
      ===========================================================
      C:¥¥MyLocation¥¥MyFile
      ===========================================================
    3. オプションを使ってローカル設定ファイルでファイルパスを使用する場合、ファイルパス中のすべてのバックスラッシュは2つ重ねてエスケープする必要があります。
      またはスラッシュを使用できます。
      【具体例】
      ===========================================================
      C:/MyLocation/MyFile
      ===========================================================
     
    【Linux版の場合】
    “¥”はパスの区切り文字として使用できません。“/”で区切るようにしてください。
  4.  
  5. 「エラー:ワークスペースに存在しないコンフィギュレーション」、「エラー: -config パラメーターは引数を 1 つだけ持たなければならない」と表示される場合。
    ビルトインにはテストコンフィギュレーション名に空白を含むものがございます。
    テストコンフィギュレーションは空白を含む適切な形で指定してください。空白がある場合は、ダブルクォーテーションで括ってください。
    【具体例】
    ===========================================================
    -config “builtin://Flow Analysis Standard”
    ===========================================================
 

Q7-2 コマンドライン(cpptestcli)からの実行のとき、GUIの「コンソール」タブ(Visual Studioの場合は「出力」)に表示されるエラー等の情報を確認できますか?
コマンドライン(cpptestcli)の実行の際、次のオプションを指定することで、詳細なメッセージを確認することができます。
=========================
-appconsole stdout
=========================
このオプションはC++testのコンソール出力(「コンソール」タブの情報)を標準出力にリダイレクトします。


ページトップへ戻る

A-8.レポート

Q8-1 どんなレポート形式でレポート出力できますか?
C++test では、GUIまたはコマンドラインからテスト結果を、HTML、PDF、またはXSLによるカスタム形式でレポートを生成できます。
レポートの設定を行うには、メニューから[Parasoft] › [設定]を選択して設定画面を開き、[Parasoft] › [レポート]を選択したレポート画面で行います。
コマンドラインでGUIの設定を利用せずにレポートを生成する場合、ローカル設定ファイルを作成して -localsettings オプションでローカル設定ファイルを指定します。
ローカル設定ファイルの詳細については C++testユーザーズガイドの次の章をご確認ください。
[セットアップとテストの基本事項] › [テストおよび解析の実行] › [コマンドラインインターフェイスからのテスト] › [ローカル設定ファイル (オプションファイル)]
 
なお、カスタムXSLを使用してCSVファイル形式のレポートを出力することも可能です。
詳細な設定と手順、サンプルにつきましてはユーザーページより資料をダウンロードいただけます。
資料名:カスタムレポートの作成
評価版をご利用の場合は、お問い合わせ先へとお問い合わせください
 

Q8-2 成功したテストケースの情報はレポートに出せませんか?データソースのテスト毎の情報をレポートに出せませんか?
C++test9.2版から成功したテストケースの情報やデータソースのデータ毎の情報をレポートへ出力することが可能になりました。
(【図8-2.1】参照)
また、テストケースエクスプローラー上でも設定した情報を詳細に確認することができます。
次の4点について設定を行ってテストを行い、レポートを作成することでレポート上で情報を確認することができます。
  • テストケース内で確認したい情報を CPPTEST_REPORT_<型> マクロを使用して指定する。( 例:CPPTEST_REPORT_INTEGER(“戻り値”, _return) )
  • テストコンフィギュレーションの[実行]タブ › [実行時]タブの[単体テスト実行の詳細をレポート]、[タスクの詳細を含める]、[成功したアサーションの詳細を含める]にチェックを入れる。
  • [テストケースエクスプローラー]の右上の白い逆三角▽をクリックして[表示]の[データソーステスト]、[詳細]を選択して有効にする。
  • C++testの設定画面から[Parasoft] › [レポート]の[レポートのフォーマット] › [フォーマット]に「HTML(C++test 単体テストの詳細)」を指定する。
 
 【図8-2.1】
Q8_2画面ショット
 
C++test10.4版からCPPTEDT_REPORT_<型>を使用せず、テスト実行時の詳細情報をレポートへ出力することが可能になりました。
(【図8-2.2】参照)
  • テストコンフィギュレーションの[実行]タブ › [実行時]タブの[単体テスト実行の詳細をレポート]、[タスクの詳細を含める]、[成功したアサーションの詳細を含める]にチェックを入れる。
  • テストコンフィギュレーションの[実行]タブ › [実行時]タブの[詳細テスト実行レポートを生成する]にチェックを入れる。
  • C++testの設定画面から[Parasoft] › [レポート]の[レポートのフォーマット] › [フォーマット]に「HTML(C++test 単体テストの詳細)」を指定する。
 
 【図8-2.2】
Q8_2_1画面ショット
 

Q8-3 テスト対象への入出力値をレポートに出せませんか?
C++test9.2版からテスト対象への入出力値をレポートに出力することが可能になりました。
C++test9.2からの機能であるレポートマクロ CPPTEST_REPORT_<型> を利用することで自動生成したテストケースが生成した値やデータソースに設定した値をレポートに出力することができます。
また、テストケースの一パターンであるデータソース内の一行ごとの値やカバレッジを[テストケースエクスプローラー]ビュー上で確認することもできます。
例:CPPTEST_REPORT_INTEGER(“戻り値”, _return)
 
C++test10.4版からCPPTEDT_REPORT_<型>を使用せず、テスト実行時の詳細情報をレポートへ出力することが可能になりました。
 
必要な設定につきましてはQ8-2 成功したテストケースの情報はレポートに出せませんか?データソースのテスト毎の情報をレポートに出せませんか?をご確認ください。
 

Q8-4 エディター上に表示される緑と赤のカバレッジのハイライトをレポートで確認できませんか?
C++testでは、エディター上と同様にカバレッジを緑と赤のハイライトで確認できるカバレッジレポートを作成できます。
 
次の手順でレポート設定を変更し、カバレッジレポートを作成します。
  1. [Parasoft]メニューの[設定]を選択します。設定ダイアログが表示されます。
  2. 設定ダイアログの左側ツリーから、[Parasoft] › [レポート]を選択します。
  3. [詳細レポート]のチェックボックスをONにして、 出力したいカバレッジ情報をプルダウンメニューから選択します。
  4. [適用]ボタンを押下して設定を保存し、[OK]ボタンを押下して画面を閉じます。
  5. 単体テストを実行します。
  6. [テスト進捗]ビューの[レポートの生成]アイコンを押下します。
  7. 作成されたHTMLレポートの[詳細レポート]を押下すると、カバレッジレポートが出力されます。
(【図8-4.1】【図8-4.2】参照)
 
レポート作成の際、次の点にご注意ください。
カバレッジレポートを出力するには、単体テスト実行前にレポートの設定が行われている必要があります。
手順3.のレポートの設定を行なってから単体テストを実行し、レポートを作成してください。
 
また、同時に複数の種類のカバレッジレポートを作成することができません。(例:行カバレッジと判断文カバレッジ)
複数のカバレッジレポートを作成する場合は、出力したいカバレッジ情報を設定しなおして、再度単体テストを実行してレポートを作成してください。
 
【図8-4.1】
図8_4.1
 
【図8-4.2】
図8_4.2
 
C++test 10.4版では設定の箇所が変更になりました。
次の手順でレポート設定を変更し、カバレッジレポートを作成します。
  1. [Parasoft]メニューの[テストコンフィギュレーション]を選択します。
  2. 単体テストの実行に使用しているテストコンフィギュレーションを選択します。
  3. テストコンフィギュレーションの[実行]タブ › [実行時]タブの[次の詳細カバレッジレポートを生成する]より、出力したいカバレッジ情報をプルダウンメニューから選択します。
  4. [適用]ボタンを押下して設定を保存し、[閉じる]ボタンを押下して画面を閉じます。
  5. 単体テストを実行します。
  6. [テスト進捗]ビューの[レポートの生成]アイコンを押下します。
  7. 作成されたHTMLレポートの[詳細レポート]を押下すると、カバレッジレポートが出力されます。
 

Q8-5 レポートの生成に失敗します。(メモリ不足の場合)
C++testで使用可能なメモリが足りないことが原因の場合、使用可能なメモリサイズを大きくすることで発生を抑えられます。
必要な設定につきましてはQ10-5 OutOfMemoryErrorが発生します。をご確認ください。
 
C++testの起動時オプションやcpptestcliのオプションにおいて上記項目の設定を行い、JVMのヒープサイズを変更してもレポートの作成に失敗する場合は更に下記のオプションを付けてください。なお、この設定はEclipse版のみとなっております。
解析やテストを行うC++testとレポート生成を行うParasoft Testでは使用するJVMが異なりますが、下記のオプションを使用することで同じJVMを使用することができます。
 
C++test スタンドアロン版:
==================================
-J-Dcom.parasoft.xtest.same.vm.reports.generation=ON
==================================
C++test Eclipse プラグイン版:
==================================
-Dcom.parasoft.xtest.same.vm.reports.generation=ON
==================================
 

ページトップへ戻る

A-9.クロス環境

Q9-1 (HEW) HEWプロジェクトをC++testで解析するためのHEWのツールアドミニストレーションの設定はなぜ行うのですか?
HEW IDE で自動的に実行時テストを行うことができるようにするには、HEWTargetServer コンポーネントを HEW に登録する必要があるからです。
 

Q9-2 (HEW)なぜ低水準関数を含むファイルをインストゥルメントしないのですか?
インストゥルメントとはカバレッジ情報や問題発生時のスタックトレースのためのC++testのランタイムライブラリのコードを埋め込むことです。
低水準関数を含むファイルはHEWでプロジェクトを作成する際に自動で作成されるファイルなので解析の必要性は低く、低水準関数はC++testのランタイムライブラリのコード実行にも必要なコードであるため、コードを埋め込むと挙動がおかしくなってしまいます。
以上のことからインストゥルメントを行わないようにします。
 

Q9-3 (クロス環境汎用)単体テストで問題が発生するためデバッグして確認したいのですがデバッグ実行はできますか?
はい、可能です。
C++testの単体テストではデバッグオプションを付けてビルドを行っているため、生成された実行モジュールをお使いのクロス環境用のデバッガにロードすることでデバッグ実行することができます。
単体テスト用の実行モジュールは、次の場所に" プロジェクト名" Test." 実行モジュールの拡張子" の形式で生成されます。
<ワークスペースまでのパス>\.cpptest\<プロジェクト>\unit-data\current_tubf179707
 

ページトップへ戻る

A-10.その他

Q10-1 サポートへの問い合わせ方法はどのようにすればいいですか?
テクニカルサポートへの連絡方法のページをご覧ください
 

Q10-2 サポートアーカイブはどうすれば作成できますか?
サポートアーカイブの作成手順は以下の通りです。
 
    【Eclipse版の場合】
  1. [Parasoft]メニューの[設定]を選択します。設定ダイアログが表示されます。
  2. 設定ダイアログの左側ツリーから、[Parasoft] › [テクニカルサポート]を選択します。
  3. [送信するアイテム]の中の[全般]と[C++test]のすべての項目と、[詳細ログを有効にする]にチェックを入れ、[OK]ボタンを押下します。
  4. 問題が発生するテストを実行し、エラーが発生することを確認します。
  5. [Parasoft]メニューの[設定]を選択します。設定ダイアログが表示されます。
  6. 設定ダイアログの左側ツリーから、[Parasoft] › [テクニカルサポート]を選択します。
  7. [アーカイブの作成]ボタンを押下します。
  8. [アーカイブロケーション]に指定されたフォルダに、サポートアーカイブファイル(zipファイル)が作成されます。
 
    【Visual Studio版の場合】
  1. [Parasoft]メニューの[設定]を選択します。設定ダイアログが表示されます。
  2. 設定ダイアログの左側ツリーから、[テクニカルサポート]を選択します。
  3. [送信するアイテム]の中のすべての項目と、[詳細ログを有効にする]にチェックを入れ、[OK]ボタンを押下します。
  4. 問題が発生するテストを実行し、エラーが発生することを確認します。
  5. [C++test]メニューの[設定]を選択し、設定ダイアログの左側ツリーから、[テクニカルサポート]を選択します。
  6. [アーカイブの作成]ボタンを押下します。
  7. [アーカイブロケーション]に指定されたフォルダに、サポートアーカイブファイル(zipファイル)が作成されます。
  • 作成されたzipファイルがサポートアーカイブです。
    • なお、このサポートアーカイブには次の情報を含みます。
    • 開発環境(OS,C++testのバージョン、環境変数など)
    • アプリケーションログ
    • C++test コンフィギュレーションファイル
    • プリプロセス済みソースファイル
    • 環境情報
    • C++testのプロジェクトプロパティ
     
    アプリケーションログには、ソースファイル名やソースコードの情報などを含みます。
    お問い合わせの際、ソースファイル名などは伏せていただいても構いません。
     

    Q10-3 パス(フォルダ名、ファイル名、プロジェクト名、インクルードディレクトリ、ワークスペースディレクトリ)に日本語が入るとテストできません。
    C++testはプロジェクト名、ファイル名など、パスに日本語が含まれる場合、失敗する可能性があります。
    そのため、パス(フォルダ名、ファイル名、プロジェクト名、インクルードディレクトリ、ワークスペースディレクトリ)に日本語を使用しないでください。
     

    Q10-4 エラーの内容を詳しく知りたいのですが、どこを参照すればよいですか?
    コンソールに出力されたメッセージをご確認ください。
    コンソールの[出力の冗長レベル]を「高」に変更して頂くことで詳しいエラーの内容を確認することができます。
     
    【Eclipse版 / Visual Studio版の場合】
    1. [Parasoft]メニューの[設定]を選択します。設定ダイアログが表示されます。
    2. 設定ダイアログの左側ツリーから、[Parasoft] › [コンソール]を選択します。
    3. [出力の冗長レベル]を「高」に変更し、[適用]ボタンを選択してください。
      Eclipse版では[コンソール]タブ、Visual Studio版では[出力]タブがコンソールにあたります。
     

    Q10-5 OutOfMemoryErrorが発生します。
    C++testで使用可能なメモリが足りないためエラーが発生します。使用可能なメモリサイズの指定を大きくすることで発生を抑えられます。
    【方法】
    C++testを起動するスクリプトまたはショートカットにメモリパラメータを追加します。なお、この設定はEclipse版のみとなっております。
    【具体例】
    C++test スタンドアロン版:
    ==================================
    cpptest.exe -J-Xms1400m -J-Xmx1400m
    ==================================
    C++test Eclipse プラグイン版:
    ==================================
    eclipse.exe -vmargs -Xms1400m -Xmx1400m
    ==================================
    2 つのメモリ パラメータは、それぞれ JVM (Xms) の初期サイズと JVM (Xmx) の最大サイズを指定します。
    設定できる最大サイズは、お使いのマシンによって異なります。


    Q10-6 C++testのGUIは日本語/英語表示の選択は可能ですか?
    はい、可能です。ツールの起動オプションで言語設定を指定する方法とシステムの言語設定を指定する方法があります。
    プラットフォームにより使用可能な指定方法が下記の通り異なります。
    【Windows環境 Eclipse版の場合】
    ○ツールの起動オプションで言語設定を指定する方法
    ===========================================================
    cpptest.exe -J-Duser.language=EN -J-Duser.country=US
    ===========================================================
     
    【Windows環境 Visual Studio版の場合】
    ○システムの言語設定を指定する方法
    [スタート]メニューの[コントロールパネル]から[時計、言語、および地域](Windows XPなどでは[地域と言語のオプション])を選択してダイアログ画面を開きます。
    ダイアログ画面から[形式]タブ › [形式]のリストから「英語」を選び設定します。
    なおこの設定を行う場合、C++test以外のリソースにも影響を与える場合がありますのであらかじめご了承ください。
     
    【Linux環境の場合】
    ○ツールの起動オプションで言語設定を指定する方法
    ===========================================================
    cpptest.exe -J-Duser.language=EN -J-Duser.country=US
    ===========================================================
     
    ○システムの言語設定を指定する方法
    環境変数LANGの設定を変更することで日本語/英語表示の選択が可能です。
     
    • sh系
      英語表示の場合は export LANG=C
      日本語表示の場合は export LANG=<日本語ロケール>
    • csh系
      英語表示の場合は setenv LANG C
      日本語表示の場合は setenv LANG <日本語ロケール>
     

    Q10-7 C++testの解析結果のレポートを英語表示にすることはできますか?
    はい、可能です。 Q10-6 C++testのGUIは日本語/英語表示の選択は可能ですか? に記載の方法でC++testの環境を英語環境にしていただくことで、レポートも英語表示にすることができます。
    この方法はコマンドラインからの解析結果のレポートにも有効です。
     

    Q10-8 (C++testとSubversionなど)構成管理ツールの連携は何ができますか?
    以下のような連携が可能です。
    • C++testで検出された違反やテスト失敗が、構成管理ツールへチェックインしたユーザー名と関連付けられる。
    • ソースファイルのチェックインした日時を基にテスト対象のスコープを設定できる。
    • Eclipse GUIからチェックアウト、コミット、履歴参照等の操作ができる。
    • 構成管理ツールのフックを使用してテストを起動できる。
     
    C++testが連携可能な構成管理ツールは以下の通りです。
    • AccuRev
    • CVS
    • ClearCase
    • Git
    • Perforce
    • Serena Dimensions
    • Star Team
    • Subversion
    • Synergy / CM
    • Team Foundation Server
    • Visual SourceSafe
     
    構成管理ツールとの連携についてはC++test ユーザーズガイドの次の章をご確認ください。
    [設定] › [ソース管理リポジトリとの接続]  

    Q10-9 既知の問題を確認することができますか?
    C++testのインストールディレクトリにある、release_notes.txt(release_notes_ja.txt)の「3. 既知の問題と回避策」の項目に記載がありますのでご確認ください。
     

    Q10-10 ライセンスサーバにアップグレードライセンスを登録したのに利用できません。
    アップグレードライセンスはライセンスサーバに登録をした後、既存のライセンス(メインライセンス)にリンクして紐付ける必要がございます。
     
    1. [License Server]ページの[Manage Licenses]アイコンをクリックするか、[Management]>[Manage Licenses]を選択し、[Installed Tool Licenses List]ページを表示します。
    2. ページの上側がメインライセンスとなります。下側の表示がアップグレードライセンスになります。アップグレードライセンスの一覧から、リンク設定を行うライセンスの[Link to]リンクをクリックします。
    3. [Linking upgrade license]ページが表示されます。左側がメインライセンス、右側がアップグレードライセンスになります。Tokens(ユーザー数)、License features(利用可能な機能)を確認し、リンクするメインライセンスの[Select]リンクをクリックします。
    4. リンク設定をすると、メインライセンスがグレーで表示されます。
    5. 1~4の手順を繰り返し、すべてのアップグレードライセンスをリンクします。
    6. [Installed Tool License List]ページを表示してリンクを確認します。
     

    Q10-11 Team Serverにアップロードしたレポートで文字化けが発生します。回避策はありますか?
    Team Serverにアップロードしたフロー解析の結果のレポートをネットワーク上にある状態で参照するとタスクの内容が文字化けすることが確認されています。
    次の手順でレポートをローカルにダウンロードすることで現象を回避できます。
    1. メニューから[Parasoft]>[探索]>[Team Server]を選択します。
    2. 表示されたダイアログの[レポート]タブを選択します。
    3. 該当のhtml形式のレポートを選択して[表示]ボタンもしくは[ダウンロード]ボタンを押下します。
     

    Q10-12 Linux環境でGUIを操作中にC++testが強制終了しました。回避方法はありますか?
    C++testが以下のタイミングで強制終了する場合があると報告されています。
    • 解析の実施後にHTML形式のレポートを生成したとき
    • C++testのヘルプやルールドキュメントを参照しようとしたとき
    • 上記の動作を行った後、しばらくC++testの操作を行ったとき
    上記のタイミングはC++test(Eclipse)からHTMLファイルを開く動作に関連しています。
    Eclipseが使用するお使いのマシンのHTMLレンダリングエンジンに問題がある可能性があります。
    以下の対応を行い、解決するかご確認ください。
    • HTMLレンダリングエンジンを入れ替える
      http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/› からXULRunnerをダウンロードしていただき、展開されたファイルを指定するように引数を設定してC++testを起動してください。
       
      cpptest -J-Dorg.eclipse.swt.browser.XULRunnerPath=/<展開したディレクトリまでのパス>/xulrunner
       
      Eclipseのバグ情報のサイトになります。本問題に関する情報が記載されています。
      https://bugs.eclipse.org/bugs/show_bug.cgi?id=236724#c22
    •  
    • EclipseのWebブラウザではなく、外部のWebブラウザを使用する
      ヘルプやルールドキュメントのHTMLファイルによりWebブラウザを開いた場合に白い表示だけの画面が表示される場合はこちらの方法で対応をしてください。C++testが開くウィンドウの種類により以下の2つの設定を行ってください。
    〇 ヘルプ・ブラウザ
    ヘルプを開く操作ではEclipseの持つ”ヘルプ・ブラウザ”というブラウザを用いてローカルに存在するヘルプのhtmファイルを開きます。
    htmファイルを”ヘルプ・ブラウザ”ではなく、使用可能なWebブラウザで開くように設定します。
     
    1. C++test(Eclipse)のメニューから[ウィンドウ]>[設定]を選択します。
    2. 設定ダイアログの左側の欄から[ヘルプ]を選択します。
    3. ダイアログの右側に表示されるヘルプ画面の[ヘルプ目次を開く]欄のリストから[外部ブラウザで]を選択します。
    4. [適用]ボタンを押下して設定を保存します。
    5. 問題が再現するかご確認ください。
      例:メニューから[Parasoft]›[ヘルプ]を選択して表示される別ウィンドウが真っ白な状態ではなく、適切にヘルプが表示される。
     
    〇 内部ブラウザ
    メニューから[Parasoft]›[サポート]›[サポートWEBサイト]を選択やレポートの生成などの操作ではEclipseが内部的に持つ”内部ブラウザ”を用いて外部(www)のサイトを開きます。
    ヘルプ以外の外部サイトやHTMLファイルを開くのに”内部ブラウザ”ではなく、使用可能なWebブラウザで開くように設定します。
     
    1. C++test(Eclipse)のメニューから[ウィンドウ]>[設定]を選択します。
    2. 設定ダイアログの左側の欄から[一般]>[Webブラウザ]を選択します。
    3. ダイアログの右側に表示されるWebブラウザ画面から[外部 Web ブラウザを使用]ラジオボタンを選択し、下の[外部 Web ブラウザ]のリストから使用可能なWebブラウザのチェックボックスにチェックを付けます。
    4. [適用]ボタンを押下して設定を保存します。
    5. 問題が再現するかご確認ください。
      例:メニューから[Parasoft]>[サポート]>[サポートWEBサイト]を選択して使用可能なWebブラウザが起動して該当のサイトが表示される。
     

    Q10-13 C++testを起動するたびにダイアログが表示されます。回避方法はありますか?
    ユーザー定義テストコンフィギュレーションのデフォルトの格納先から変更をすると、「デフォルトコンフィギュレーション Example Configuration」が有効ではない」といったメッセージが表示されます。
    次の手順でお気に入りのテストコンフィギュレーションを変更することで回避できます。
    1. [Parasoft]>[テストコンフィギュレーション]を選択します。
    2. 任意のテストコンフィギュレーションを選択します。
    3. 右クリックメニューの[お気に入りとして設定]>[F Demo Comfiguration]を選択します。
     
    [F テストコンフィギュレーション名]が現在設定されているお気に入り設定です。
    お気に入りには、メニューバーのアイコンから1オペレーションで実行ができるため、よく使用するテストコンフィギュレーションを指定すると便利です。
     

     

    ページトップへ戻る