T-DASHで基本的なテスト（テストシナリオ、テストケース、テスト手順、画面定義）を書いてみた

[前々回のポストでT-DASHのOPENβ版のインストール](https://qiita.com/84zume/items/5051531c1d82139b4267)、[前回のポストでテストの実行](https://qiita.com/84zume/items/3a23d6c435dd418e98b2)を試してみました。今回のポストでは、サンプルアプリケーションに対してテストを記述してみます。UIベースでの設定可能です。画面定義の設定でちょっと戸惑いましたが、許容範囲。スクショ付きで説明します。

## 記事の補足
### 本記事で利用したシステムのバージョン情報
- T-DASH：0.1.004b
- PC：Windows 10 Home 20H2
- ブラウザ：Chrome 96

### アドベントカレンダー2021
この記事はQiita Advent Calendar 2021の[T-DASHを使ってみた！【PR】T-DASH](https://qiita.com/advent-calendar/2021/tdash)の4日目の記事です。

## 作成するシナリオとケース
### 利用するプロジェクト
T-DASHに付属のサンプルプロジェクトを利用します。プロジェクト名称（サンプル_0.1.001b）をクリックして、プロジェクトを開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/34410/81657b0e-95d8-e065-6d9c-bb8f775ce261.png)

### テストシナリオ
「一般会員その２」という新しいシナリオを用意します。

### テストケース
「一般会員その２」でログイン画面で、ユーザーIDとパスワードを設定し、ログインが**失敗する**動作を検証します。

## 実際に作成する
### 1. 画面定義で「ログイン失敗メッセージ」を取得できるようにする

サンプルプロジェクトとして、いくつかの要素はすでに定義済みですが、ログイン失敗のメッセージは未定義でしたので、まずは「画面定義」で設定します。

#### 1-1. 画面キャプチャ機能を開く

1. 左メニューから「画面定義」をクリック
1. 右側の「画面一覧」にて「ログイン」画面をクリック
    1. すでに定義済みの要素が出てくるが、ここにはログイン失敗メッセージを出力する要素が無い 
1. 「画面キャプチャ」をクリック
    1. キャプチャ用の画面が開く

![スクリーンショット 2021-12-02 063050.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/34410/5d2b518e-1682-e2bc-892d-6a8d35832a6f.png)

#### 1-2. 要素を追加する
1. 画面右下の「要素名」を記載しEnter（最初この追加方法が分からずマニュアルを見ていた💦）
1. 画面に誤ったメールアドレスとパスワードを入力し、ログインボタンを押下。キャプチャ対象のメッセージが出力される。
1. トラッキング機能を用いて、メッセージ部分にマウスホバーさせ「最適候補」を取得
1. 「最適候補」をコピーして、「値」欄にペースト
1. 「パスチェック」を実行しパスが有効なことを念のため確認
1. 「保存」を実行

![スクリーンショット 2021-12-02 065325.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/34410/572143a0-53c9-913f-c692-f5827b8682d9.png)

### 2. テストシナリオとテストケースを作成する
左メニューの「テストシナリオ」を選択の上、まずは枠を作成します。

#### 2-1. テストシナリオを作成
![スクリーンショット 2021-12-02 060104.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/34410/500c4959-fb25-769f-dead-22e1939d06f0.png)

#### 2-2. テストケースを追加
![スクリーンショット 2021-12-02 060232.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/34410/158f3cc8-6850-13b6-c6f9-d3da9a7e8cbd.png)

#### 2-3. テストケース名称は「ログイン失敗時の動作を確認する」とした
![スクリーンショット 2021-12-02 060322.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/34410/b0adf711-95b7-99f3-8aad-596cf7e2cd57.png)

### 3. テストケースに各ステップを記述する
このテストケースは5ステップで記述します。このケースをT-DASHのテスト手順エディターというマトリクス状のエディタで記述していきます。

1. テスト対象アプリを起動する
1. ログイン画面を開く（ログインタブをクリックする）
1. ログイン画面にて、値（メールアドレス、パスワード）を入力する
1. ログイン画面にて、ログインボタンをクリックする
1. 出力されたメッセージを検証する

#### 3-1. テスト対象アプリを起動する
「T-DASHキーワード手順」にテストで動かす手順を入力します。画面左のメニューから該当する動作をクリック入力します。画面名や要素名は画面左ですでに設定済みのものを選択して選びます。設定値はテスト手順に沿った値を手動入力します。
![スクリーンショット 2021-12-02 060742.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/34410/656782a1-cbf2-2dcd-9b69-67b719373a01.png)

#### 3-2. ログイン画面を開く（ログインタブをクリックする）
ログイン画面に遷移する手順です。ログイン画面がタブで実装されているため、タブをクリックする動作を定義します。
![スクリーンショット 2021-12-02 061918.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/34410/061b0b48-d5ee-7103-cbca-12fd2d19e759.png)

#### 3-3. ログイン画面にて、値（メールアドレス、パスワード）を入力する
「テキストを入力する」という操作を利用します。値を入力する要素を選択し、設定値を記述します。
![スクリーンショット 2021-12-02 062111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/34410/1dc917a7-a9f3-6775-ddf0-6ba3e67a21d7.png)

#### 3-4. ログイン画面にて、ログインボタンをクリックする
ボタンクリック操作は2と同じです。
![スクリーンショット 2021-12-02 062201.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/34410/20cd499a-e5b0-72b6-8b9c-2ecfad1df58d.png)

#### 3-5. 出力されたメッセージを検証する
さきほど「画面定義」で新しく定義した要素を利用した検証です。ログイン操作に失敗してほしいため、期待したエラーメッセージが出力されたことを確認します。これで完成です。「保存する」ボタンをクリックします。
![スクリーンショット 2021-12-02 063643.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/34410/76b364e6-2beb-2005-4858-c3c7d96e32f5.png)

## 作成したテストシナリオを実行する
テストシナリオの実行手順はこちらに記載済みです。うまく稼働したようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/34410/aaee68f8-a297-d95a-3670-8f8fae8ebe84.png)

## 感想
テストシナリオの作成、テストケースの作成、テスト手順の作成（画面定義の作成を含む）を一通り実施してみました。画面定義の作成画面がちょっと癖があるような気がしましたが、マニュアルを読めば分かるので許容範囲ですかね（ベータ版だし、こうした方が良さそうっていうフィードバックのポストも書いてみようかな）。UIの自動テストということで、テスト対象システムとテストの効率性を考慮の上、あとはひたすら似たような操作を繰り返していけば良さそうです。次のポストでは、テスト手順作成画面を眺めつつ、気になった機能について触ってみようと思います。