テストケースのテンプレートとデータソースの組み合わせ
テストケースがテンプレートに変更されると、自動化されたテストケースの テストステップを、テンプレート内のテスト データにリンクすることができます。このようにテストステップ値は、データソースの属性値とリンクしています。
データソースのデータを参照するパスがテストステップ値に入力されます。
テストケーステンプレートで定義された アクションモードは、テストケース が動的に作成される際に、関連するインスタンスに継承されます。
テストデータのパスの指定
Tosca Commander内で、テストステップは、属性名を使用してテストデータと結合されます。テストケースビューの構造化された属性は、対応するレベルの属性を指定することでリンクできます。属性はドットで区切って指定します。
クラスリファレンスは、属性なしで作成することもできます。この場合、含まれるインスタンスは テストステップ値の値として転送されます。
この組み合わせの構文は以下の通りです。
|
構文: |
{XL[<Level 1>.<Level 2>.<Level 3>.<Level 4>]} |
テンプレートの構造レベル
|
顧客の名前は、テストケーステンプレートに記述します。テストデータはテストケース設計で構造化されています。属性「ファーストネーム」へのリンクを作成するために、構造レベル「パーソン」が構文に追加されます。どちらの構造レベルもドットで区切られています。 リファレンスの構文は次の通りです: {XL[Person.First Name]} 。
テストケース設計の参照 |
|
テストケース設計からテストデータをリンクする方法の詳細については、 chapter "テストシートをテストケーステンプレートにリンクします。" を参照してください。 |
名前のテストデータへのパスの指定
テストケーステンプレートでテストステップがテストデータにリンクされている場合、対応するテストステップの値(see chapter "テストデータのパスの指定")、またはテストステップ/テストステップの値/テストステップのサブ値の名前に属性名を指定することができます。
|
テストステップ、テストステップの値、またはテストステップのサブ値の名前を変更するには、パラメータ「 ExplicitName 」をモジュールに追加する必要があります。 |
|
この例では、テーブルの最初の名前が、テストケーステンプレートの XL リンクとして指定されています。テストデータへのパスは、テストケーステンプレート「テーブル」の「名前」列に入力します。 リンクの構文は以下の通りです:{XL[FirstName]} 。 テストケーステンプレートをインスタンス化されると、テーブルから取得したファーストネームがTemplateInstanceに表示されます(see chapter "テンプレートインスタンスの作成")。
「 名前」列のリンクする |
テストデータの相対パスの指定
相対パスを使用すると、テンプレートからのテスト データを使用したテストステップへのリンクがより簡単になります。パスの静的部分は「パス」列に、パスの相対部分は対応する「テストステップの値」に示されます。
テストステップ値 の相対パスの構文は以下のとおりです。
|
構文: |
{XL[.Attribute]} リーディングドットにより、絶対パスの1つ以上の部分が抽象化されます。 |
「 パス」列は 列の追加または削除 を使用して追加する必要があります。
「 パス」列の絶対パスの構文は、以下のとおりです。
|
構文: |
Level_1.Level_2.Level_n |
相対パス
条件インスタンス化の準備
テストケースの複数インスタンス化をより柔軟にするために、以下のオブジェクトをビジネスベースの条件とリンクさせることができます。
-
テストケーステンプレート
-
テストケーステンプレート内のすべてのテストステップと XTestSteps
-
テストケーステンプレート内のテストステップフォルダ
-
テンプレートインスタンス
-
Xテストステップ値
インスタンス化の際、これらのテストステッ プは、定義された条件を満たす場合にのみテストケースに含まれます。
「 条件付きインスタンス化」では、テストケースにダイアログシーケンスを含めるかどうかは、テンプレート内の特定のビジネスオブジェクトまたは属性に対応する値がデータソースに含まれているかどうかによって決まります。
このように、ダイアログステアリングの最小限の違いは、テンプレートにもマッピングすることができます。
条件の定義
「 条件」プロパティは、条件付きインスタンス化を定義します。このプロパティは、「プロパティ」ビューまたは「詳細」ビューで設定できます。詳細ビューでは、必要に応じて、カラム選択ツール経由で対応する列を追加できます(see chapter "列の追加または削除")。
|
「 条件」列は、インスタンス化の間に条件を適用する場合にのみ、テストケーステンプレートで使用されます。テストケース内で条件ステートメントを作成する場合は、 see chapter "Using conditional statements and loops in TestCases" 。 |
条件の構文は、以下のとおりです。
|
構文: |
<Level_1>.<Level_2>.<Level_n><Operator>"<Value>" |
条件を使用してインスタンス化したオブジェクトのアイコンには、点線のアウトラインが表示されます。例えば、このテストステップの値は、以下のテキストフィールドに基づきます:
。
構文の定義
|
<Level_n> |
属性の名前。属性名は文字で始まる必要があります。 以下のプロパティは、属性として指定することができます:「 Name 」、「 Character 」、「 Position 」、「 Comment 」。それぞれのプロパティは、接頭辞として属性「 Instance 」を付ける必要があります。 例: Instance.文字!="Invalid" |
|
<Operator> |
以下の演算子を使用できます。: |
|
<Value> |
条件を満たすために設定しなければならない値。 属性値が文字列か、または日付や時刻の型式の場合は、引用符で囲む必要があります。 |
|
例 |
保険契約者。人。性別=="男性" |
以下の機能が追加で利用できます。:
|
ASFLOAT (<level_n>) |
この関数は、文字列(FLOAT値が含まれている場合)またはINT値をFLOAT値に変換するために使用します。 |
|
ASINT (<level_n>) |
この関数は、文字列(INT値が含まれている場合)をINT値に変換するために使用します。 |
|
ASSTRING (<level_n>) |
この関数は、任意の値を文字列に変換するために使用します。 |
|
例 |
ASFLOAT(A) = ASFLOAT(B) |
値として NULL を使用できます。:
|
Path の値が {NULL}(明示的なnull)または暗黙的なnull(背景が灰色)のいずれかの場合、条件 Path==NULL の解析は「TRUE」になります。 |
条件中の特殊文字
A-Z、a-z、0-9 以外の文字は、バックスラッシュでエスケープする必要があります。このルールはオペレータには適用されません。
以下の例で示されているように、条件自体に含まれる特殊文字にはエスケープが必要です。しかし、条件の値は文字列(例えば 「X」)であり、追加のエスケープは必要ありません。
|
Product.vehicle-insurance=="X" |
多くの特殊文字を使用する複雑な条件は、アポストロフィ「'」で限定することができます。すべての特殊文字とともに、文字列全体が転送されます。
|
'Product.vehicle-insurance'=="X" |
オペレータに大なり記号または小なり記号(<、>、<=、>=)と数値(すべての自然数)が含まれる場合、属性値は引用符なしで指定する必要があります。
|
ASINT(Age)<17 |
リンク条件
条件付きインスタンスをより効果的に扱うために、(たとえ異なるものであっても)複数の属性を条件に組み込み、演算子を介して個々のコンポーネントをリンクすることが可能です。
|
説明 |
構文 |
|---|---|
|
ANDブール演算 |
<term1> && <term2> |
|
ORブール演算 |
<term1> || <term2> |
個々の項は、ブール代数に従って解決されます(ブラケット合成はサポートしていません)。
|
18歳以上の男性のみを認証する場合、条件は以下のようになります。 person.gender=="male"&& person.age>=18 |
条件は手動で定義することも、ドラッグ&ドロップで割り当てることもできます。このドラッグ&ドロップ操作は、条件を含む可能性のあるあらゆるオブジェクトで実行できます。
テストケーステンプレートは、そのオブジェクトを含むテストシートまたはクラスにリンクされている必要があります。属性とインスタンスは条件として割り当てることができます。ドロップ操作は、各オブジェクトの「条件」列で実行する必要があります。
インスタンスから作成された条件では、常にオペレータ「 == 」(イコール)が使用されます。これは必要に応じて、以下のように手動で置き換えることができます。
-
条件に関連するオブジェクトを選択します。
-
マウスの左ボタンを押したまま、このオブジェクトをTestCasesセクション内の希望の位置にドラッグします。
-
マウスの左ボタンをリリースします。ターゲットオブジェクトの「値」フィールドには、選択したテストケース設計オブジェクトへのパスが表示されます。
ドラッグ&ドロップによる条件の割り当て
特定のテストケース設計オブジェクトに対して、ドラッグ&ドロップ操作時に以下の標準条件が定義されています。
-
属性をTestCasesセクションにドラッグすると、デフォルトで、以下の情報が「条件」の下に入力されます。
<Attribute name>!= NULL
空ではないすべてのテストステップは、インスタンス化プロセスに含まれます。
-
{NULL} インスタンスをTestCasesセクションにドラッグすると、デフォルトで、以下の情報が「条件」の下に入力されます。
<Attribute name> == NULL
空のテストステップのみが、インスタンス化の対象となります。
-
{EMPTY} インスタンスをTestCasesセクションにドラッグすると、デフォルトで、以下の情報が「条件」の下に入力されます。
<Attribute name> == ""
値 {EMPTY} を持つすべてのテストステップが、インスタンス化の対象となります。
テストケーステンプレートの再利用可能なテストステップブロック
テストステップブロックリファレンスとデータソース間の有効なリンクがテストケーステンプレート内に存在する場合、インスタンス化中に具体的なテストケースに変換されます。そのようなリンクが存在しない場合、テンプレートインスタンス内のリファレンスが維持されます。再利用可能なテストステップブロックの詳細については、 see chapter " TestStepLibrariesの使用" 。