GXtest Generator ユーザーズマニュアル

From GXtest Wiki
Jump to: navigation, search
Spanish.gif
English.gif
Japan.gif


GXtest Generator は、自動化と同様に GXtest で新規テストプロジェクトの起動をサポートするために設計されたツールです。GXtest Generator は、GeneXus の拡張機能であり、スタンドアロンツールとして、GXtest と同時にインストールされます。この拡張機能を使用して、ワンクリックで自動的にテストケースとテストデータを生成することができます。

開始する前に、テストケースを実行するローカルネットワーク内に GXtest がインストールされ、ライセンスがオーソライズされている必要があります(詳しくは GXtest インストールガイドを参照してください)。

Contents

自動化されたテストケースの生成

このツールは、自動化と同様に、GXtest のテストケースおよびデータプールをトランザクションおよび WorkWith パターン情報(ナレッジベースで利用可能)を介して、GeneXus の抽象レベルを利用します。


  • 自動的にテストケースを生成することで、どの機能がテストされるのでしょうか?

ナレッジベースの各トランザクションに対して、トランザクションによって表示されるエンティティ上の CRUD 操作をテストするためのテストケースが生成されます。作成(追加)、回復(検索)、更新、および削除を取得します。

たとえば、ナレッジベースに Client(顧客)トランザクションがある場合、GXtest Generator は新規顧客を追加するテストケースを作成します。次に、WorkWith ページで新規顧客を検索し、顧客に関する一部のデータを更新し、最終的に作成した顧客を削除します。

  • 生成されたテストケースをより複雑なテストケースで流用する

テストケースは、CRUD 操作をテストするために作成されますが、このテストの主な目的は、ユーザーがテストの自動化を迅速に開始し、ゼロから開始せずに済むようにするということです。

また、これらのテストケースは編集、改善、またはほかの複雑なテストケースに流用することができます。


  • 生成されたテストケースを参照する方法

生成されたプロジェクトが完了した後、すべてのテストケースとデータプールは、KB と同じ名前でインポートされ、「_Auto」という接尾語が付きます。


GeneXus で GXtest Generator を開始する

GeneXus IDE では、[GXtest] メニュー => [テストケースを自動生成] と選択して GXtest Generator を開くことができます。

開いたウィンドウで、(既にいずれかの KB がある場合)既存のプロジェクトを確認するか、生成プロセスを開始するための次のボタンを使用することができます:プロジェクトを生成

必要に応じて、プロセスを開始する前に、拡張機能の設定ページでいくつかの追加オプションを設定することができます。


オプションの設定

GeneXus の [ツール] メニューから [オプション] と選択すると、すべての GXtest の拡張機能を設定するためのウィンドウが表示されます。

  • [一般] セクションでは次を指定できます:
    • Data Dictionary Path:辞書データがロードされているファイルパスです。
    • Include Unreferences Transactions:すべてのトランザクションおよびオブジェクトを生成する場合は [True] に、すべてのトランザクションまたはページがメインオブジェクトから呼び出される場合は [False] に設定します。
    • Language:指定した言語でアプリケーションが生成およびテストされます。これは、GeneXus の自動検証メッセージを確認するために必要です。
    • Startup Test Case:テストケースが生成される度に含まれる初期のテストケースです。たとえばログインテストケースのように、すべてのテストケースを実行する前に、実行する手順がある場合に便利です。
    • Test depth:生成されたテストのテスト深度を設定します。追加情報についていは GXtest Generator - テスト深度を参照してください。
    • Visit Web Pages:[True] に設定すると、アプリケーションのすぺての Web ページを移動する追加のテストケースが生成されます。このオプションは、すべてのページがテスト環境に正しくデプロイされていることを確認するために有用です。


  • Manager セクション
    • ここでは、プロジェクトテストの無人実行を開始するために、生成されたテストケースに対して GXtest Manager スケジュール情報を設定する必要があります。


  • Generator セクション
    • 生成されたテストケースとプロジェクトの保存先となる、すべての GXtest データベースの接続に関連するデータを設定します。


  • Advanced セクション
    • Temp XML path:GXtest プロジェクト内にインポートされる前に、生成されたテストケースが保存される一時フォルダを指定します。また、このパスには、生成ログファイルも保存されます。
    • KB update options:KB がすでに GXtest に存在する場合、適用された更新ポリシーを設定します。KB を常に更新する必要がある場合は、[Always_Update] を選択する必要があります。(新規オブジェクトのみで)競合がない KB オブジェクトを更新するには、[Update_if_no_conflicts] を選択します。GXtest に KB オブジェクトの更新を適用しない場合、[Never_Update] を選択します。

GXtest Generator の実行

生成プロセスの実行中には、GeneXus の [出力] ウィンドウとグリッド内に完了した手順の詳細が表示されます。すべての分析されたオブジェクト、生成されたテストケースとデータプールが表示されます。


KB が変更された場合、生成されたテストケースを更新する

GXtest Generator は、主として、テストプロジェクトの初期設定、生成されたテストケース上での作業開始、および GXtest Designer での改善を同時に行う目的で設計されています。

ただし、KB が成長し続けるとともに、新しいテストケースの生成を可能にするのが、GXtest Generator の機能です。

各プロジェクトの生成を実行すると、すべてのテストケースとテストデータが再度生成されます。ターゲットのプロジェクトがすでに存在する場合は、新しいテストケースがインポートされ、既存のテストケースデータプールは、次の条件に一致する場合を除き、それぞれの新しいバージョンで上書きされます:

  • テストケースは、GXtest Designer で手動で更新でき、[自動的に更新] オプションは無効になります(生成されたテストケースを手動で編集するたびに、自動的に無効になります)。このオプションは、[プロパティを編集] ウィンドウで利用可能です。
TCUpdateAuto.png


  • データプールは、GXtest Designer で手動で更新でき(列、またはデータ)、[自動的に更新] オプションは無効になります(生成されたデータプールまたはデータを手動で編集するたびに、自動的に無効になります)。このオプションは、[データプールの列を編集] ウィンドウで利用可能です。


辞書

GXtest の設定オプション(GeneXus で [ツール] -> [オプション] ->[GXtest] と選択)で XML ファイルのパスを指定することで、データ辞書をロードすることができます。この XML ファイルは下図のような形式で記述されている必要があります。


<?xml version="1.0" encoding="utf-8" ?>
<Library version="1.0">
  <Catalogue name="Countries" defaultDomain="">
    <DataRow>Italy</DataRow>
    <DataRow>Uruguay</DataRow>
    <DataRow>Canada</DataRow>
    <DataRow>Japan</DataRow>
    <DataRow>Brazil</DataRow>
  </Catalogue>
  <Catalogue name="Mails" defaultDomain="EMail">
    <DataRow>guest@mailx.com</DataRow>
    <DataRow>coconut@mailx.com</DataRow>
    <DataRow>fashionmail@mailx.com</DataRow>
    <DataRow>abstracta@mailx.com</DataRow>
  </Catalogue>
  <Catalogue name="GivenNames" defaultDomain="">
    <DataRow>Juan</DataRow>
    <DataRow>Miguel</DataRow>
    <DataRow>Peter</DataRow>
    <DataRow>John</DataRow>
    <DataRow>Jeremy</DataRow>
  </Catalogue>
  <Catalogue name="Products" defaultDomain="">
    <DataRow>Smartphone</DataRow>
    <DataRow>Running Shoes</DataRow>
    <DataRow>Laptop</DataRow>
    <DataRow>Teddy Bear</DataRow>
    <DataRow>Barbie</DataRow>
  </Catalogue>
  <Catalogue name="Categories" defaultDomain="">
    <DataRow>Movies</DataRow>
    <DataRow>Sports</DataRow>
    <DataRow>Office</DataRow>
    <DataRow>Toys</DataRow>
  </Catalogue>
</Library>



ランダムに生成されるデータの代わりに、テストに含めるデータを辞書から取得するので、データ辞書またはカタログは、KB の項目属性に関連付けることができます。これにより、テストケースで使用されるデータに意味を持たせることができるため、データが分かりやすくなります。

たとえば、次のような構造を持つ、Client トランザクションに辞書を指定するとします:


ClientTRN.PNG


「GivenNames」というカタログから名前を取得するジェネレーターが必要な場合、(たとえば Client テストケース内の)ClientFirstName 項目属性にデータを登録する際に ClientFirstName 項目属性を確認してから、[Data Dictionary] プロパティに「GivenNames」の値を設定します。


AttDataDictionary.PNG
  • コンボボックスに表示される値は、辞書の XML ファイルからロードされたカタログのデータと同じです。


テストケースジェネレーターに辞書の値を使用する別の方法は、GeneXus ドメインとカタログを一致させることによって行われます。例として、ClientEmail 項目属性に電子メールのドメインを適用します。辞書の XML ファイルを見ると、いくつかの電子メールアドレスが登録されているカタログがあり、「defaultDomain」に「Email」が関連付られていることが分かります。

...
  <Catalogue name ="Mails" defaultDomain="EMail">
    <DataRow>guest@mailx.com</DataRow>
    <DataRow>coconut@mailx.com</DataRow>
...


両方の設定(ClientFirstName および ClientEmail)を適用することによって、GXtest Generator は自動的に Client データプールに次のような値を入力します。

DP Dictionaries.PNG