OneTest: データ駆動型テストの高速化による改善

2020/10/30 - 読み終える時間: 4 分

Data-driven Test Acceleration Made Easy の翻訳版です。


データ駆動型テストの高速化による改善

2020年10月29日

著者: Navnit Kumar Singh / Software Test Architect 共著: Shivi Sivasubramanian / Technical Lead

画像の説明

ディストリビューションテストの大きな課題のひとつは、データ駆動型のテストです。同時に実行されているすべてのテストは、データにアクセスできるはずです。

しかし、いくつかのシナリオでは、複数のテストが同じデータにアクセスできるようにすることはできません。HCL OneTest UI (HOT UI) が提供するデータセットを使用することで、分散テストを実行しながらこの課題に簡単に取り組むことができるようになりました。

この記事では以下の用語を使用しています。

  • データセットは、スクラッチから作成することも、カンマ区切り値 (CSV) ファイルからデータをインポートすることも可能な、実行中の変数データを持つテストを提供します。詳細については、データセットの概要を参照してください。
  • 複合テストは、小さなテストをエンドツーエンドで実行できるシナリオに整理するのに役立ちます。複合テストを実行すると、それに追加された各テストは、定義された順序で呼び出されます。詳細は、「複合テスト」を参照してください。

データセットの作成

e コマースのWebサイトで一般的に起こるシナリオを考えてみましょう。ユーザーがログインし、カートに商品を追加し、注文をします。 したがって、以下の手順で自動テストを行う必要があります。

  • ログイン: e-Commerce Web サイトにログインする
  • カートに追加: 商品を選択してカートに追加する
  • 注文する: 商品内容を確認してから注文する

テストを高速化するために、サポートされているすべてのブラウザーで 3つのテストを並行して実行することを計画してください。しかし、アプリケーションは同じユーザーログインで 3つのセッションを同時に実行することはできません。そのため、各実行ではユーザー ID とパスワードの異なる組み合わせを使用する必要があります。

上記のシナリオのために、HCL HOTUI で以下のデータセットを必要な行データと共に作成します。

  • DS_Login: ユーザーログインの詳細をユーザー ID とパスワードの 2つの列の下に保存します。

画像の説明

  1. データ集合 - DS_Login
  • DS_Product: 3 つの列の下に製品の詳細を格納します - 製品名、ID、販売者 (product name, id, seller)

画像の説明

  1. データ集合 - DS_Product

DS_Login データセットをログインテストに関連付け、テストの入力値をデータセットの列に関連付けます。同様に、DS_Product データセットを addToCart テストに関連付け、入力値をそれぞれのデータセット列に関連付けます。詳細については、「テスト値をデータセット列に関連付ける」を参照してください。

複合テストの作成

3 つのテストをシナリオとしてまとめて実行するには、HCL OneTest で TC_PlaceOrder という名前の複合テストを作成し、3 つのテストを予想される実行順序で追加します。複合テストの中にループを挿入し、addToCart テストをその中に移動します。これは、実行中に対応するデータセットの行から値(この場合は、商品の詳細)を取得するために必要です。

画像の説明

  1. 複合テスト

TC_PlaceOrder という複合テストを実行すると、まずアプリケーションにログインするためにログインテストが実行され、次に addToCart テストがカートに商品を追加します。カートに追加された商品の数は、ループ内で指定された反復回数に等しくなります。最後に、placeOrder テストは、カートに追加された商品の注文を行います。

テストの配布

複数のブラウザーで同時にテストシナリオを実行するには、Distribute_TC_PlaceOrder という AFT テストスイートを作成します。

画像の説明

  1. AFT テストスイート

Distribute_TC_PlaceOrder と呼ばれる AFT テストスイートを実行すると、TC_PlaceOrder テストは Chrome と Firefox で並行して実行されますが、複合テスト TC_PlaceOrder の一部であるテストは順次実行されます。

異なるブラウザーでの実行の各ステップで、ログイン・テストは、DS_Login データセットの異なる行から必要なログイン詳細を取得します。このようにして、各並列テストの実行において、単一のユーザー・ログイン・セッションが保証されます。 ログインテストが完了すると、addToCart テストはループ内で(指定された回数分)、異なるブラウザー上で同時に実行されます。addToCart テストの各実行は、DS_Productdataset にアクセスし、データセットにアクセスする1つのテストであるかのように、カートに商品を追加します。

まとめると、HOTUI は、必要に応じてデータへのアクセスを制限しながら、データへの同時アクセスを可能にすることで、テストの並列実行を容易にします。

コストを削減しながらテストを高速化する方法の詳細はこちらをご覧ください。

このブログについて

HCL Japan の Software 部門の複数担当者で HCL Software 全般について記しています。