Data-driven Test Acceleration Made Easy の翻訳版です。
データ駆動型テストの高速化による改善
2020年10月29日
著者: Navnit Kumar Singh / Software Test Architect 共著: Shivi Sivasubramanian / Technical Lead
ディストリビューションテストの大きな課題のひとつは、データ駆動型のテストです。同時に実行されているすべてのテストは、データにアクセスできるはずです。
しかし、いくつかのシナリオでは、複数のテストが同じデータにアクセスできるようにすることはできません。HCL OneTest UI (HOT UI) が提供するデータセットを使用することで、分散テストを実行しながらこの課題に簡単に取り組むことができるようになりました。
この記事では以下の用語を使用しています。
データセットの作成
e コマースのWebサイトで一般的に起こるシナリオを考えてみましょう。ユーザーがログインし、カートに商品を追加し、注文をします。 したがって、以下の手順で自動テストを行う必要があります。
テストを高速化するために、サポートされているすべてのブラウザーで 3つのテストを並行して実行することを計画してください。しかし、アプリケーションは同じユーザーログインで 3つのセッションを同時に実行することはできません。そのため、各実行ではユーザー ID とパスワードの異なる組み合わせを使用する必要があります。
上記のシナリオのために、HCL HOTUI で以下のデータセットを必要な行データと共に作成します。
DS_Login データセットをログインテストに関連付け、テストの入力値をデータセットの列に関連付けます。同様に、DS_Product データセットを addToCart テストに関連付け、入力値をそれぞれのデータセット列に関連付けます。詳細については、「テスト値をデータセット列に関連付ける」を参照してください。
複合テストの作成
3 つのテストをシナリオとしてまとめて実行するには、HCL OneTest で TC_PlaceOrder という名前の複合テストを作成し、3 つのテストを予想される実行順序で追加します。複合テストの中にループを挿入し、addToCart テストをその中に移動します。これは、実行中に対応するデータセットの行から値(この場合は、商品の詳細)を取得するために必要です。
TC_PlaceOrder という複合テストを実行すると、まずアプリケーションにログインするためにログインテストが実行され、次に addToCart テストがカートに商品を追加します。カートに追加された商品の数は、ループ内で指定された反復回数に等しくなります。最後に、placeOrder テストは、カートに追加された商品の注文を行います。
テストの配布
複数のブラウザーで同時にテストシナリオを実行するには、Distribute_TC_PlaceOrder という AFT テストスイートを作成します。
Distribute_TC_PlaceOrder と呼ばれる AFT テストスイートを実行すると、TC_PlaceOrder テストは Chrome と Firefox で並行して実行されますが、複合テスト TC_PlaceOrder の一部であるテストは順次実行されます。
異なるブラウザーでの実行の各ステップで、ログイン・テストは、DS_Login データセットの異なる行から必要なログイン詳細を取得します。このようにして、各並列テストの実行において、単一のユーザー・ログイン・セッションが保証されます。 ログインテストが完了すると、addToCart テストはループ内で(指定された回数分)、異なるブラウザー上で同時に実行されます。addToCart テストの各実行は、DS_Productdataset にアクセスし、データセットにアクセスする1つのテストであるかのように、カートに商品を追加します。
まとめると、HOTUI は、必要に応じてデータへのアクセスを制限しながら、データへの同時アクセスを可能にすることで、テストの並列実行を容易にします。
コストを削減しながらテストを高速化する方法の詳細はこちらをご覧ください。