自動テストシステムの一般的な要件の1つは、「シーケンステストでは何を行うのか」、「各被試験装置 (UUT) でどのような結果が得られたのか」といった質問に答えられるように、すべての結果情報を含む完全なレポートを生成することです。
このドキュメントでは、レポートの追加データを含む各種レポート形式の設定方法やレポートのカスタマイズ方法など、TestStandレポートに関する情報を提供します。
TestStandレポートのカスタマイズに使用できるオプションを調べる前に、TestStandレポートの生成プロセスの仕組みを最初に理解しておくことが重要です。
TestStandは、2段階のアプローチを使用してテストレポートを生成します。
このプロセスの図を次に示します。
TestStandは、ResultList変数にテスト結果を収集する。レポートジェネレータではこの変数を使用して、読み取り可能なテストレポートを作成する
TestStandはシーケンスを実行しながら、ステップの結果と、レポートに含める追加情報を収集します。結果の収集はTestStandエンジンによって直接実装され、レポート生成やデータベースロギングなどの結果処理とは無関係に行われます。
シーケンスでは、すべての新しいシーケンスで自動的に作成されるLocals.ResultListを使用して、結果データを格納します。TestStandは、シーケンスの実行中にResultListにデータを入力し、メモリ(RAM)に保存します。
ResultListローカル変数はコンテナの配列であり、最初は空の状態です。各ステップの実行後、TestStandは新しいコンテナ要素を配列の最後に追加して、実行したステップの結果を格納し、次の2つのソースを使用してデータを入力します。
ResultListのデータの一部は、ステッププロパティから取得されます。 デフォルトでは、ステッププロパティのResultコンテナ内のプロパティのみが結果の収集に使用されます。たとえば、ステップ結果コンテナの2つの重要な要素は次のとおりです。
ステッププロパティは、ステップタイプによって異なる場合があり、多くのステッププロパティは特定のステップタイプにのみ存在します。たとえば、プロパティStep.Result.Numericは、数値リミットテストのステップタイプに固有です。
ステッププロパティをResultListにコピーすることに加えて、TestStandは一連の標準結果プロパティを各ステップに追加します。TestStandエンジンは、これらの結果をStep.Result.TSプロパティのサブプロパティとして追加します。 これらのプロパティには、ステップ名、タイプ、タイミング情報など、ステップに関する識別情報が含まれています。
以下の図は、ResultListにステップ結果プロパティと標準結果プロパティがどのように入力されるかを示しています。
結果データは、ステップタイプによって異なるカスタム結果プロパティと、すべてのステップで同じである標準結果プロパティから生成される
Execution.AddExtraResultメソッドを使用して、特定のステッププロパティをResultListに追加できます。このメソッドでは、プロパティのルックアップ文字列("Step.myStepData"など)を指定でき、実行内でこのプロパティを含むすべてのステップの結果リストに、このプロパティが追加されます。 また、このメソッドでは、ResultList内でプロパティに使用する名前を指定することもできます。
たとえば、プロセスモデルはExecution.AddExtraResultメソッドを呼び出して、ResultListにStep.Limits値とStep.Comp値を格納します。これらのプロパティはStep.Resultコンテナに含まれないため、デフォルトでは収集されません。この呼び出しにより、実行内でこれらのプロパティを含むすべてのステップのResultListに、これらのプロパティが追加されます。
AddExtraResultを使用して、追加のステッププロパティを結果リストに追加する
レポートのその他のプロパティの詳細については、TestStandヘルプの「カスタム結果プロパティ」トピックを参照してください。
TestStandによる結果の収集は、レポートを生成するかデータベースに記録するかに関係なく行われます。 結果を記録する必要がない場合は、特定のステップまたはシーケンスについて結果の収集を無効にすることもできます。 記録する結果を制御するために、次の設定を使用できます。
テストシステムのパフォーマンスまたはシステムメモリの使用率が問題になる場合は、不必要な結果の保存を防ぐために、頻繁に実行されるステップの結果の記録を無効にすることを検討してください。
TestStandエンジンの一部である結果収集プロセスとは異なり、レポートジェネレータはTestStandプロセスモデルにより、レポート生成プラグインを介して実装されます。レポートジェネレータの実装の詳細については、「レポート生成の説明」の記事を参照してください。
レポートジェネレータは、結果収集プロセスで生成されたResultList変数の結果データを使用して(詳細については、このドキュメントの「結果の収集」セクションを参照)、レポートを生成します。 このセクションでは、TestStandのデフォルトのレポートジェネレータの概要について説明します。
レポートジェネレータは、ResultListに収集された結果プロパティのプロパティフラグを使用して、それらをレポートに含めるかどうかを決定します。プロパティフラグを使用すると、どのようにテストレポートに含めるかなど、PropertyObjectに関する処理の詳細を設定できます。
PropertyObjectのフラグは、次の2つの方法のいずれかで表示および設定できます。
フラグを編集ダイアログを使用してPropertyObjectフラグを設定する
各フラグには一意の値があり、プロパティの現在のフラグの状態は、そのすべてのフラグ値の合計です。 たとえば、PropFlags_IsLimit(値: 0x1000)とPropFlags_IncludeInReport(値:0x2000)のフラグが有効になっているプロパティのフラグ値は、0x3000です。各フラグの詳細については、「PropertyFlags定数」ヘルプトピックを参照してください。
以下のフラグは、収集された結果をレポートに追加するかどうかをレポートジェネレータが決定する際に使用されます。 詳細については、「レポートに影響を与えるプロパティフラグ」を参照してください。
TestStandには多くのレポート形式があり、それぞれに長所と短所があります。 レポートジェネレータは、各形式に固有のシーケンスファイル(例: ReportGen_ATML.seq)を呼び出して、レポートテキストを生成します。各レポート形式の詳細については、次の表を参照してください。
レポート形式 | 可読性 | ファイルサイズ | 性能 | 解析1 | カスタマイズ |
---|---|---|---|---|---|
ASCII(.txt) 基本的なテキストレポート形式 | 基本 | 非常に小さい | 最速 | 中程度 - カスタムパーサーが必要だが、形式情報は限られる | 難しい - プロセスモデルコールバックやDLLのオーバーライドまたは変更が必要/td> |
HTML(.html) リッチテキストレポート形式 | リッチテキスト | 大きい | 中程度 | 難しい - レポートのデータと形式が密接に関連し、カスタムパーサーが必要 | 難しい - プロセスモデルシーケンスやDLLのオーバーライドまたは変更が必要 |
XML(.xml) データのみのファイル形式であり、XSLスタイルシートを使用してリッチテキストを生成する | リッチテキスト | 最大 | 最も遅い | 簡単 - 標準のXMLスキーマが使用され、XMLのAPIを使用して簡単に解析可能 | 中程度 - スタイルシートを使用して、プロセスモデルを変更せずに形式をカスタマイズ |
ATML(.xml) - 自動テストマークアップ言語 | リッチテキスト | 中程度 | 高速 | 簡単 - 標準のXMLスキーマが使用され、XMLのAPIを使用して簡単に解析可能 | 中程度 - スタイルシートを使用して、プロセスモデルを変更せずに形式をカスタマイズ |
1 レポートファイル、特にXMLおよびATMLレポートファイルを使用して自動レポート分析を行えますが、データベースを使用して自動分析を行う方が通常は効率的です。 TestStandでデータベースに記録する機能の詳細については、「データベースロギング」ヘルプトピックを参照してください。
TestStand 2019から、ASCII (.txt) 以外のレポート形式ごとに、PDFレポートも生成できるようになりました。
アプリケーションに最適なレポート生成戦略を選択する方法の詳細については、「テストシステムに最適なNI TestStandレポート生成方法を選ぶには」を参照してください。
レポートオプションダイアログボックスのコンテンツタブでオンザフライレポートオプションを有効にすると、プロセスモデルは、UUTテストの完了まで待たずに、実行と同時にレポートを段階的に生成します。オンザフライレポートを使用する場合は、実行ウィンドウのレポートペーンをクリックして、実行中にレポートを表示できます。テストの実行に沿ってレポートが更新されるため、レポートビューはテストシーケンスの実行に伴い定期的に新しい結果で更新されます。
通常、オンザフライレポートは、テストが長時間にわたり、テストのスループットがメモリ使用量やデータ損失の防止ほど重要ではない場合に適しています。
長所 | 短所 |
---|---|
|
|
1メモリ使用量の増加を防ぐには、追加の設定が必要です。レポート生成中のメモリ使用量の増加を防ぐ方法の詳細については、「TestStandでのレポート生成によるメモリの問題への対処」を参照してください。
2この問題はTestStand 2012以降で軽減され、オンザフライレポートジェネレータがレポートを再生成する頻度を設定できるようになっています。 この設定の詳細については、「結果処理の上級設定ダイアログボックス」ヘルプトピックを参照してください。 TestStand 2012以降では、500ステップの結果が収集されるか実行時間が1.5秒経過するかのいずれか早い方のタイミングで、オンザフライレポートを生成し保存するようデフォルトで設定されています。 TestStand 2010 SP1以前では、レポートは各ステップの後に再生成されます。
TestStand 2012以降では、レポートジェネレータ(およびその他の結果処理プラグイン)を非同期で実行して、テストのスループットを高めることができます。 このオプションを設定するには、構成→結果処理を選択し、その他のオプションを表示チェックボックスをオンにします。 新規スレッド列に、各プラグインの現在の設定が示されます。
この機能を使用すると、下の画像に示すように、現在のUUTのレポートを生成しながら、すぐに次のUUTのテストを開始できます。
注記: オンザフライでレポートを生成する場合、非同期レポートは使用できません。
非同期の結果処理により、次のユニットのテストをすぐに開始できるため、テストのスループットが向上
TestStandのレポート生成プロセスは高度なカスタマイズが可能であり、生成されたレポートをTestStandアプリケーションの要件に合わせて調整できます。 レポートは次のような方法でカスタマイズできます。
レポートオプションダイアログからアクセスできるレポート生成オプションを使用すれば、コードを変更することなくTestStandレポートをカスタマイズできます。TestStand 2012以降でこのダイアログにアクセスするには、構成→結果処理の順に選択してレポートオプションダイアログを起動し、レポート生成プラグインの設定アイコンを選択します。 TestStand 2010 SP1以前の場合は、構成→レポートオプションの順に選択します。
レポートオプションダイアログでは、次の方法でレポートを設定できます。
以降のセクションでは、これらの各タイプの設定について詳しく説明します。
レポートオプションダイアログボックス – コンテンツタブ
レポートオプションダイアログでは、レポートの形式を選択できます。 使用可能なレポート形式の詳細については、このドキュメントの「レポート生成」セクションの「レポート形式」セクションを参照してください。 一部のレポートオプションは、特定のレポート形式でのみ使用できます。
ASCIIレポートとHTMLレポートは、次の2つの方法のいずれかで生成できます。
HTMLレポートとは異なり、XMLおよびATMLレポートには形式情報が含まれていません。XML形式の未処理データを読み取り可能なレポートとして表示するために、XSLスタイルシートが使用されます。 このスタイルシートによってレポートのスタイルを定義し、XMLファイルからデータを取り込みます。 スタイルシートを使用することで、XMLデータファイルを変更せずにレポートの外観を変更できます。たとえば、以下の画像は、TestStandで提供される2つの異なるスタイルシートを使用した同じXMLレポートのサンプルを示しています。
TestStandには、XMLおよびATMLレポートデータをさまざまな方法で表示するために使用できる各種のスタイルシートが用意されています。これは、レポートオプションダイアログで指定できます。TestStandレポートで使用するカスタムスタイルシートを作成することもできます。 スタイルシートのカスタマイズの詳細情報と例については、『TestStand Help』の「XMLレポート」セクションを参照してください。
水平スタイルシートを使用したATMLレポートセクション
レポートスタイルシートを使用したATMLレポートセクション
レポートオプションダイアログ内で、次のような特定のタイプのステップ結果情報をフィルタ処理するように選択できます。
さらに、結果のフィルタ処理式を使用して、カスタムフィルタを作成できます。TestStandは、ステップの結果ごとにこの式を評価し、式がTrueと評価された場合にそのステップをレポートに含めます。結果フィルタ処理のリング制御器を使用して、フロー制御ステップの除外など、一般的な式を選択できます(下図を参照)。
注記: XML形式を使用している場合、またはTestStand 2010 SP1以前でATML形式を使用している場合、結果のフィルタ処理式は使用できません。 そのような場合は、レポートのスタイルシートを変更することで結果をフィルタ処理できます。
レポートオプションダイアログには、次のようなレポートの外観をカスタマイズするための設定があります。
注記: TestStandレポートでは、ActiveXコントロールを使用して、配列データからグラフを生成します。 レポートを表示するときにこのコントロールを使用できない場合、データはテーブルとして表示できます。
レポートオプションダイアログボックスのレポートファイルのパス名タブで、レポートファイルの名前とそのファイルを保存するパスを設定できます。 ファイル/ディレクトリオプションでレポートの保存場所を選択した後、UUTレポートフィールドを使用して、選択したオプションに基づきレポートファイル名をプレビューします。
ファイル/ディレクトリオプションコントロールの式によるレポートファイルパスの指定オプションを選択すると、レポートファイルの名前とパスをさらに細かく制御できます。 この設定を使用して式を作成すると、TestStandはこの式の評価結果に基づいてレポートの保存場所を決定します。この式には、レポートファイルパスのメニューからアクセスできる定義済みマクロを含めることができます。
注記: レポート式を設定するときは、評価されたレポートファイルパスフィールドとプレビュー画像を使用して、現在の式の動作を確認します。
レポートファイルパス式でUUTStatusマクロを使用すると、合格したレポート用と不合格のレポート用にファイルの場所を個別に作成できます。 たとえば、ファイルパスでこのマクロを使用して、合格したレポートと不合格のレポートを異なる場所に保存できます。このマクロが存在する場合、この時点までUUTステータスは不明であるため、TestStandはテスト実行の完了後にレポートファイルパス式を再評価します。
UUTの結果に基づいて異なるレポートファイルパス名を設定する
バッチプロセスモデルを使用するテストでは、バッチおよびバッチ内の個々のUUTに対して、レポートファイルパスの処理をさらに細かく設定できます。 これらの設定にアクセスするには、モデルのタイプフィールドでバッチを選択します。 たとえば、各バッチ設定で新規UUTレポートを使用すると、バッチごとに個別のレポートファイルを作成できます。 使用可能なすべての設定の詳細については、「レポートオプションダイアログボックス」ヘルプトピックを参照してください。
多くの場合、テストアプリケーションでは、TestStandがデフォルトで記録する結果以外に、追加のデータをレポートに記録する必要があります。このニーズに対応するために、TestStandには、レポートにカスタムデータを簡単に記録するためのいくつかの標準機能が用意されています。
これらの機能の詳細について、以降のセクションで説明します。
以下に示すように、コードモジュールパラメータを設定するときにモジュールタブ内の記録ボックスをオンにすることで、テストステップのパラメータデータを簡単に記録できます。このチェックボックスをオンにすると、追加の設定なしで、選択したパラメータがレポートまたはデータベースログに自動的に表示されます。
コードモジュール - 記録チェックボックスをオンにする
以下に示すように、ステップ設定ペーンのプロパティタブにある追加の結果パネルを使用して、ステップ結果の追加のカスタムデータを含めることができます。
追加の結果を設定する
TestStandでは、ステップのコメントや要件情報など、一般的なプロパティを記録するために、いくつかの追加の結果が事前に設定されています。 これらの結果にアクセスするには、次から結果を追加リストボタンを選択し、リストから項目を選択します。追加の結果エントリごとに条件式を指定することもできます。 結果が記録されるのは、式がTrueと評価された場合のみです。
追加の結果設定の詳細については、TestStandヘルプの「追加の結果の編集タブ」トピックを参照してください。
Result.ReportTextは、ステップのカスタム情報を格納するためのResultコンテナ内の追加の文字列要素です。文字列が空でない場合、レポートジェネレータはReportText文字列をレポート内のフィールドとして含めます。ReportTextフィールドは、ASCIIを除くすべてのレポート形式のHTMLタグをサポートしているため、このフィールドを使用して、関連画像やハイパーリンクなどのリッチテキスト要素を含めることができます。
レポートに画像を挿入する方法の詳細については、「TestStandレポートへの画像の挿入」を参照してください。
以下の画像は、ReportTextプロパティでHTMLを使用して、ステップの結果に画像を埋め込む例を示しています。
Result.ReportTextに画像を表示するレポート
TestStandでは、特定の機能を実装するための独自のカスタムステップタイプを作成できます。多くの場合には、そのようなカスタムステップタイプのデータをレポートに記録する必要があります。
注記: TestStandのカスタムステップタイプに慣れていない場合は、このセクションを読む前に、「カスタムステップタイプ開発の最善策」の記事で詳細を参照してください。
レポートに表示されるカスタムステッププロパティを作成するには、次の手順に従います。
プロセスモデルには多くのコールバックが含まれ、これらをオーバーライドすることで、特定のクライアントシーケンスファイル用にモデルの機能を変更することができます。 このメカニズムは、レポートジェネレータのカスタマイズにも役立ちます。 このセクションでは、次の一般的なカスタマイズ方法について説明します。
注記: プロセスモデルのコールバックに慣れていない場合は、先に進む前に、「コールバックシーケンスを使用したプロセスモデルの変更」ヘルプトピックを参照してください。
レポートオプションダイアログを使用する以外に、テストシーケンスでReportOptionsコールバックをオーバーライドすることにより、プログラムでレポートオプションを設定することもできます。 シーケンスファイルのコールバックをオーバーライドするには、次の手順に従います。
シーケンスを実行すると、プロセスモデルは、レポートオプションダイアログで設定された現在のレポートオプションをロードした直後に、このコールバックシーケンスを呼び出します。 現在のレポートオプションは、Parameters.ReportOptions変数に含まれています。 これらのプロパティの値を変更して、現在の実行のレポートオプションを変更できます。 これらのオプションは、レポートオプションダイアログの設定やその他の実行の設定には影響しません。たとえば、シーケンスファイルのオンザフライレポートを有効にするには、次の式を使用してステートメントステップを作成できます。
Parameters.ReportOptions.UseOnTheFlyReporting =True
テストアプリケーションでは、製造元の場所など、UUTに関する追加の識別情報を含めることが必要になる場合があります。 UUTおよびステーションに関するデータは、プロセスモデルによってParameters.UUTおよびParameters.ModelData.StationInfo変数に格納されます。 作成するほとんどのモデルコールバックには、これらのプロパティがパラメータとして含まれているため、コールバックでこのデータにアクセスできます。TestStand 2013以降では、UUTプロパティとStationInfoプロパティに、構造化されていないコンテナであるAdditionalDataサブプロパティが含まれています。 UUTおよびStationInfoデータタイプを変更せずに、実行時にこのプロパティにデータを追加できます。
AdditionalDataコンテナを使用してプログラムでヘッダにカスタムUUTデータを追加するには、次の手順に従います。
Parameters.UUT.AdditionalData.SetValString("Manufacturer.Name",1,"National Instruments"),
Parameters.UUT.AdditionalData.SetValString("Manufacturer.Location",1,"Debrecen, Hungary"),
注記: プロパティが存在しない場合、PropertyOptionに1を指定してSetValStringメソッドを使用すると、プロパティが作成されます。
Parameters.UUT.AdditionalData.SetFlags("",0,PropFlags_IncludeInReport)
以下のレポートには、AdditionalDataコンテナ内のカスタムデータが含まれています。 カスタムステーションデータを追加するプロセスも同様ですが、Parameters.UUTの代わりにParameters.ModelData.StationInfoプロパティを使用します。
UUT.AdditionalDataコンテナを使用してレポートヘッダに製造元情報を追加する
注記: または、編集時にプロセスモデルのエントリポイントのLocals.UUTまたはLocals.ModelData.StationInfoコンテナに手動でデータを追加してIncludeInReportフラグを有効にすることで、すべてのクライアントシーケンスファイルのUUTまたはステーションデータを追加できます。
レポートジェネレータは、クライアントシーケンスファイルでオーバーライドできる多くのコールバックを定義しています。これらの各コールバックは、対応するレポートテキストが生成された後に実行され、レポートジェネレータのデフォルトの出力を変更できます。 これらのコールバックを使用してカスタムデータを追加するのは、前述の方法がいずれも使用できない場合のみにしてください。
これらのコールバックは、レポートオプションダイアログボックスのコンテンツタブで、レポート本文を生成するためのレポートジェネレータの選択オプションのシーケンスオプションを有効にした場合のみ実行されます。 このオプションは、HTMLおよびASCIIレポートで使用できます。
レポートの外観をカスタマイズする方法は、レポート形式によって大きく異なります。 ASCIIレポートとHTMLレポートの場合、外観情報とレポートデータは密接に関連しています。 結果として、レポートの外観を変更するには、レポートジェネレータのコードを直接変更する必要があります。これには、レポートジェネレータに関する詳細レベルの理解が必要であり、このドキュメントの範囲を超えています。 レポートジェネレータの実装の詳細については、「レポート生成の説明」の記事を参照してください。
このドキュメントの「レポートオプション」セクションで説明されているように、XMLおよびATMLレポートは、スタイルシートを使用して、未処理のレポートデータから読み取り可能なレポートを生成します。 これらのレポートの外観は、レポートジェネレータ自体を変更する必要なしに、スタイルシートを編集することでカスタマイズできます。 スタイルシートのカスタマイズの詳細情報と例については、『TestStand Help』の「XMLレポート」セクションを参照してください。
TestStandでのレポートのカスタマイズは一般的なタスクであり、TestStandはレポートのコンテンツ、機能、およびスタイルをカスタマイズするための多くの機能を備えています。以下のフローチャートを参照して、カスタムレポートの実装方法を決定してください。
レポートをカスタマイズするための正しい手法を選択するフローチャート レポートをカスタマイズするための正しい手法を選択するフローチャート