T-DASHのテスト手順作成画面をじっくり見てみた


株式会社バルテスが提供するテスト自動化ツール、T-DASH(OPENβ版)を複数回にわたり触っています。今日で4回目です。このツールの特徴の1つは「ノーコード」、「日本語で」テスト手順を作成できることがあげられます。これをキーワード駆動テストというようです。このキーワード駆動テストを実現するうえで大事な機能が「テスト手順エディタ」なわけですが、どんな機能が備わっているかをじっくり見てみたいと思います。(あと面白そうなものは動かしてみる)

キーワード駆動テストとは

T-DASHはいわゆる「キーワード駆動テスト」を採用したテストツールになります。キーワード駆動テストは、ISO/IEC/IEEE 29119 part5で規定されている技法です。おおざっぱに言うと、テストスクリプトにテストに関わる全ての情報を簡易な方法(スクリプトのテンプレートの様式)で記述し、必要な要素やパラメータを提供したうえで、ツールがその記述を解釈し自動的にテストを実行する、方式です。

記事の補足

本記事で利用したシステムのバージョン情報

  • T-DASH:0.1.004b
  • PC:Windows 10 Home 20H2
  • ブラウザ:Chrome 96

アドベントカレンダー2021

この記事はQiita Advent Calendar 2021のT-DASHを使ってみた!【PR】T-DASHの5日目の記事です。

T-DASHについて触ってきた過去の履歴

テスト手順エディタ

概観

テスト手順エディタは外観としては、下記のイメージです。

画面、左にテストキーワードが並んでいて、画面右側にテスト手順を記述するマトリクス状のエディタが配置されています。設定値以外はすべてマウス操作で直感的に操作をすることができます。

テストキーワードにはどんな要素があるのか

画面左のテストキーワードは下記の要素がそろっているようです。

  • ブラウザ制御
  • 入力操作
  • マウス操作
  • 選択操作
  • 特殊操作
  • テキスト検証
  • 表示・非表示検証
  • 選択状態検証
  • URL検証
  • 動作(これは本メニュー上のカテゴリ)
  • 動作セット
  • 画面

ブラウザ制御~特殊操作は、テスト対象アプリを自動的に操作するために必要なテストキーワードです。テキスト検証~URL検証は、操作の結果テスト対象アプリが期待通りに挙動(画面表示など)をしたかを検証する用途のテストキーワードです。動作セットは、動作の塊を定義できる機能です。例えば「ログイン動作」のように画面表示、値入力、ボタンクリックなど複数の操作が連携するものをひとまとまりにして登録することができます。

一通り見ましたが、特別なものはなさそうです。イメージがつくものがほとんど。ただどんな挙動をするか気になった「スクリーンショットを保存する」と「動作セット」については動かしてみようと思います。

特殊操作:スクリーンショットを保存する

テスト手順エディタで、テスト手順に「スクリーンショットを保存する」を追加し、ファイル名として「スクショ1」を定義してみました。

実際にテストを実行します。テスト実行後にテストレポートを開くと、取得したスクリーンショットが閲覧可能となりました。

動作セット

続いて、動作セットです。動作セットは複数の操作や検証をひとまとまりに定義できる機能のようです。左側メニューの「動作定義」→「動作セット」で定義可能です。

「テスト手順」エディタと同じエディタによって、動作セットを定義可能です。この機能を利用してマウスでぽちぽち定義できます。なお、動作セットで利用する設定値の変数化はできないようですね。(変数化できた方が良さそう)

実際にテストケースで利用する際には、動作セットを選択するだけで良いです。これで動作セットに定義している操作の塊や検証の塊を実行可能です。

サンプル的に「ログイン動作」を動作セットとして作成しましたが、典型的な活用パターンですね。また画面に表示されている項目を一律で確認したいという検証パターンもよく使うと思います。なお、すでに定義済みのテスト手順を動作セットにくくりだすことも可能で、テスト手順エディタ内で動作セット化したいステップを選択の上「動作セットを作成」ボタンをクリックすると、その場で動作セットを作成できます。

感想

今回のポストではT-DASHのスクリプト駆動テストを実現する肝である「テスト手順エディタ」をじっくりみてみました。搭載済みのスクリプトは直感的に分かるものばかりです。一部どんな動きをするのかな?と疑問に思った「スクリーンショットを保存する」と「動作セット」について実際に動かしてみました。

触っていると、ここはこんな改善してほしいなぁっていうポイントがいくつかあったので、次のポストではこんなふうになったらよいなの改善点を書いてみようと思います。