【mabl】データテーブルを使ってデータドリブンテストを実行する

こんにちは、品質ソリューション特集部です。
今回は、「mablのデータテーブルを使用したデータドリブンテスト」をご紹介していきたいと思います。
・mablでのデータテーブルの作成・管理方法が知りたい
・データテーブルを使ったデータドリブンテストの実行方法が知りたい
という方は、ぜひ参考にしてみてください。
データドリブンテストとは
mablでのデータドリブンテストの実行方法を紹介する前に、まずはデータドリブンテストの概要を説明します。
データドリブンテストとは、テストの中で共通化した一連の処理や操作に対して、テストデータや期待値を記述したデータファイルをトリガーとして実行するテスト実行方法の1つで、データ駆動テストとも呼ばれます。
ISTQBの用語集、およびmablの公式ガイドでは以下のように定義されています。
スクリプト記述技法のひとつ。テストスクリプトの実行に必要なテストデータおよび期待結果を含んだデータファイルを使う。
ISTQB Glossary「データ駆動テスト」
テスト自動化では、複数のデータセットに対して同じテストを実行する必要がある場合がよくあります。このアプローチは、データ駆動型テスト、パラメータ化テスト、テーブル駆動型テストなど、いくつかの名前で説明されています。mablでは、データ駆動型テスティング、またはDDTと呼んでいます。
mabl 公式ガイド「Data-driven testing」
例えば、複数のユーザ権限をもつシステムでのログインテストを行う際、以下のイメージ図のように「ログイン処理」に対してデータテーブルを読み込ませることで、同じ手順の複数のテストを効率良く実施することができます。

データテーブルの作成方法
mablのデータテーブルは「Cofiguration」>「DATATABLES」タブから作成・管理することができます。

mablでデータテーブルを作成する方法は、大きく分けて以下の2つがあります。
① mabl内で直接データテーブルを編集して作成
② CSVファイルをインポートして作成
これらの方法について、順番に説明していきます。
① mabl内で直接データテーブルを編集して作成する方法
「+New table」ボタンをクリックします。

Add new datatable 画面でデータテーブル名を入力し、テストのシナリオと各シナリオに紐づく変数(データ)を入力して「Save」ボタンをクリックします。
以下の例では、各ユーザ権限でのログインテストを想定して、「ゲスト」「一般会員」「管理者」の3つのシナリオにそれぞれ「useId」「email」「password」という3つの変数を設定しています。
「Add scenario」「Add variable」をクリックするとシナリオ・変数の行・列を増やすことができ、不要なシナリオ・変数はごみ箱アイコンをクリックすることで削除できます。
また、データテーブルへの入力は、ExcelやGoogleスプレッドシートからコピーしたデータをそのまま貼り付けることもできます。

保存したデータテーブルが一覧に表示されます。
以降、データテーブルを編集したい場合にはデータテーブル名をクリックすると、Edit datatable 画面に遷移してデータテーブルの編集ができます。

② CSVファイルをインポートして作成する方法
データテーブルは、CSVファイルとしてインポートすることでも作成することができます。
まず、アップロードするCSVファイルをExcelで作成します。
mablのデータテーブルの形式と同様に1行目にラベルを記載し、2行目以降にシナリオ名と変数の値を記入していきます。

CSVが作成できたらmablの画面に戻って「Upload CSV」ボタンをクリックし、作成したCSVファイルを選択します。

CSVファイルがデータテーブルに反映されるので、データテーブル名を任意に編集して「Save」ボタンをクリックします。

保存したデータテーブルが一覧に表示されます。
以降、データテーブルを編集したい場合にはデータテーブル名をクリックすると、Edit datatable 画面に遷移してデータテーブルの編集ができます。

データテーブルの設定方法
次に、作成したデータテーブルを自動テストに紐づける方法を説明していきます。
「Tests」>「TESTS」タブから実施するテストをクリックします。

テストの詳細画面で「Update infoアイコン(鉛筆アイコン)」をクリックし、「DataTables」のプルダウンで作成したデータテーブルを選択して「Save」ボタンをクリックします。

続いて、自動テスト内の対象のステップでデータテーブルで定義した変数を指定していきます。
テストの詳細画面で「Edit steps」>「Quick Edit」と選択します。

対象のステップにマウスオーバーして「Editアイコン(鉛筆アイコン)」をクリックします。

ステップの編集画面で「Variable」を選択し、データテーブルで定義した変数を選択して「OK」ボタンをクリックします。
このとき、「Preview」の欄に実際の値が正しく表示されていることも確認しておきましょう。

その他のステップも同様にデータテーブルで定義した変数を指定していきます。
また、データテーブルで定義した変数は、mablの変数式からも参照することができます。

データテーブルを使ったデータドリブンテストの実行方法
最後に、データドリブンテストを実行する方法です。
テストの詳細画面で「Run test」ボタンをクリックします。

「Cloud run」タブを選択し、「Run datatable scenarios」のトグルをONにして「Start X runs(Xはデータテーブルの行数)」ボタンをクリックして実行します。
以下の例では、データテーブルの行数(3行)分のテストが並列で実行されています。

データドリブンテストを順列で実行したい場合
データテーブルを紐づけたテストをそのまま実行すると、各シナリオが並列で実行されます。
並列ではなく順列で実行したい場合にはプランを利用しましょう。
任意のプランのEdit plan画面に遷移します。
データテーブルが紐づけられたテストを指定し、ステージの「Stage options」アイコンをクリックします。

テストの実行方法で「Sequential」を選択して「DONE」ボタンをクリックします。

設定が完了したら、「Save plan」ボタンをクリックしてプランを保存します。

プランを実行してみると、1つ目のシナリオのみが実行されて、2つ目以降のシナリオは「Waiting」の状態になっています。
1つ目のシナリオが実行完了すると2つ目のシナリオが実行開始され、以降テストが順列に実行されていきます。

データドリブンテスト実行時の注意点
データドリブンテスト実行時の注意点として、データドリブンテストをクロスブラウザで実行した際には実行回数が増えやすい点に注意してください。
例えば、以下のプランを実行したとき、
・実行ブラウザ:「Chrome」「Firefix」「Edge」の3ブラウザ
・テスト:「テストA」「テストB」「テストC」「テストD」の4テスト
・データテーブルのシナリオ数:
テストA:5シナリオ
テストB:3シナリオ
テストC:5シナリオ
テストD:10シナリオ
総実行回数は、
「ブラウザ数:3」×(「テストA:5回実行」+「テストA:3回実行」+「テストA:5回実行」+「テストA:10回実行」)
=3×23=69回となります。
ブラウザ数やデータテーブルのシナリオ数が増えるとさらに倍数的に増えていくので、データドリブンテストを複数のブラウザで実行する際には実行回数が増え過ぎないように注意しましょう。
まとめ
以上、「mablのデータテーブルを使用したデータドリブンテスト」のご紹介でした。
mablでは、簡単にデータテーブルの作成やデータドリブンテストの実行をすることができます、
実行回数に注意さえすれば繰り返しのテストを効率化できてとても便利な機能ですので、ぜひ本記事を参考にデータドリブンテストを試してみてください!
それでは、また次回の記事でお会いしましょう!

現在、mablでは2週間の無料トライアルを実施しており、2週間ほぼすべての機能が無料でお試しできます!
無料トライアル、および製品やサービスにご興味のある方は、以下のリンクからお気軽にお問い合わせください。
また、テクバンの品質ソリューション事業部 特設サイトでは、「ソフトウェアテスト」や「テスト自動化」に関するお役立ち資料を掲載しておりますので、ぜひこちらも合わせてご利用ください!