ぷよぷよプログラミングをAutifyで自動化テストできないかを検討する

# はじめに

「SEGA CHALLENGE!! ぷよぷよプログラミング」

https://puyo.sega.jp/program_2020/

と言うコンテンツをご存知でしょうか。

小中高校生向けのプログラミング教育の学習ページです。

「ぷよぷよ」を作ってプログラミングに親しむ、といった素晴らしいコンテンツです。
（自分の頃もこんなのが欲しかった・・・）

**★★ 🙇🏻‍♂️SEGA様に心より感謝🙇🏻‍♂️　★★**

**作ったぷよぷよをAutifyで自動テストできないか、考えてみます。**

**リアルタイム**で操作が必要になるゲームですが、果たして自動化できるのでしょうか。


# Let's コーディング！！

「SEGA CHALLENGE!! ぷよぷよプログラミング」
ページにソースコードが掲載されたPDFがあります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/03c1ceca-712f-3857-848e-1419077a0383.png)

とりあえず、全コードを入力することとします。
久しぶりのコーディングで、コーディングミスもあり、
動くまで手動で実行しては、修正を繰り返しました。

▼できました！
![puyo.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/68f3e3ca-f01c-3b9a-47f7-10691e212a10.gif)

(まだ、コーディングミスがあるような・・・？？？)

# サーバに配置する
Autify で自動テストするために、　サーバに配置する必要があります。

Salesforce に移植します！！
（なぜ「Salesforceなのか」・・・　興味本位とロマンです（謎））

▼てなわけで、サクッと移植
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/9fecc360-6ac9-80e7-0fc7-b4cd42a82826.png)

Lightning のホームページにも配置してみました。~~これで、いつでも遊べる。~~

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/713393a2-e12f-64ff-459b-849cb67df627.png)


# 仕様を確認しましょう

軽く仕様を確認しましょう。

### 1. ぷよ落下
### ２. キーボード：下キーで落下速度が上がる
### 3. ぷよが積み上がる
### 4. 画面一番上まで積み上がるとゲームオーバー

![down&Gameover.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/d1a70fde-74e4-4db0-e32e-4ede344d8f00.gif)

- テストケース
    - 時間が経過するたびに、ぷよが落下する
    - 下キーを押すと落下速度が早くなる
    - 接地を判断して、消せるぷよがあれば消す
        - 地面（最下層）への接地
            - 地面を突き抜けたりしないこと
        - 他のぷよとの接地
            - ぷよが重なったりしないこと
        - 消せる場合、当該ぷよを消す
            - 色々な配置パターン（縦４つ、横４つなど）
        - 消せない場合、当該ぷよはそのまま
    - ぷよが最上位まで積み上がると、ゲームオーバーになる
（まだまだある）

### 5. キーボード：左キーを押下で左に移動

![left.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/cf4dfb50-9865-9c53-bb0f-a8f549c03883.gif)

- テストケース
    - ぷよが左に移動する
    - 最も左の場合、左には移動しない
        - 画面外に移動しないこと

### 6. キーボード：右キーを押下で右に移動

![right.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/129f3253-a2b8-1d62-3995-afc49e96016f.gif)

- テストケース
    - ぷよが右に移動する
    - 最も左の場合、右には移動しない
        - 画面外に移動しないこと

他にもスコア計算などもありますね。

# Autify でシナリオ化してみましょう。

まず「キー操作」のあたりをRecodingできるか、シナリオ化してみます。

ぷよぷよを操作、キーボード左キー・右キーを入力して、移動させます。

![Autify録画中.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/dd545a32-d9c9-d367-5ff7-3f91637f7211.png)

録画結果を見てみましょう。

![Autify録画結果.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/963c0062-5e6a-4769-d0e2-57db6ccecd53.png)

残念ながら、キー入力が録画されていません。

こまりました。 JSステップでなんとかならないでしょうか。

https://javascript-snippets.autify.com/ja/snippets/mouse/drag_and_drop_by_mouse_event/

このあたりが参考になりそうです。

```javascript:キーボード：左キーボタン・押す
document.dispatchEvent(new KeyboardEvent("keydown", { key: "ArrowLeft" }));
```

```javascript:キーボード：左キーボタン・離す
document.dispatchEvent(new KeyboardEvent("keyup", { key: "ArrowLeft" }));
```


## こんなシナリオになりました。

![Autifyシナリオ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/866c7416-2283-8aa7-ca0a-63d9fe58a924.png)

| # | イメージ | 説明 |
|:-:|:-:|:-:|
| 1 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/8505c88b-f01e-59e5-2ef6-62a52d06d7c8.png) | ・Salesforce にログインするまでのステップグループ  |
| 2 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/fb0f9bcd-2b6b-4dbb-e786-042774c3405e.png) | ・事前にぷよぷよのVisualForceページをタブ化したタブをクリック  |
| 3 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/35989c62-59ff-0bfe-6c5d-82e395a70d06.png) | ・自由落下させるため、１秒待つ  |
| 4 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/d6d6af4e-44a0-090f-b3b4-2dc0a673f535.png) | ・キーボード上キーを押すJSステップを実行 |
| 5 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/5c04dc34-c20a-67c8-263f-d485365b6ca5.png) | ・キーボード上キーを離すJSステップを実行 |
| 6 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/564d229b-c914-3a33-41eb-b3169e5be5ef.png) | ・自由落下させるため、１秒待つ |
| 7 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/816fcb34-d117-907c-0faa-dfc8908346ac.png) | ・キーボード左キーを押すJSステップを実行 |
| 8 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/e18077b6-a34c-ccb7-8e10-d2723c883836.png) | ・キーボード左キーを離すJSステップを実行 |
| 9 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/36094efa-6d9d-01d5-981a-75735899de62.png) | ・自由落下させるため、１秒待つ |
| 10 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/52c99de7-a7d9-0cf2-2f8d-51518dae9171.png) | ・キーボード右キーを押すJSステップを実行 |
| 11 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/6831267f-090e-9d3b-0376-d3c162d084ba.png) | ・キーボード右キーを離すJSステップを実行 |
| 12 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/33813d35-d3ef-37e2-cca4-e3674ca41263.png) | ・キーボード左キーを押すJSステップを実行 |
| 13 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/2744650e-8173-3e8e-17e3-759822e5b14c.png) | ・キーボード左キーを離すJSステップを実行 |


## 実行結果

一応、キー操作は動作しており、ぷよが移動していることが、確認できます。
キー操作もかなり 2秒以内と早く、しっかりキャプチャも撮れており、ちゃんと移動していることが
確認できました。

| # | 実行結果 | 画面キャプチャ |
|:-:|:-:|:-:|
| 1 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/f60f0400-4353-d4c8-9cea-9a7a1e065552.png) |   |
| 2 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/94e8294f-b343-eda2-50f3-e7ed0d7d925a.png) |   |
| 3 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/5b533b64-ce41-25ba-e0ab-517fd540bf61.png) | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/70621945-eece-6c44-3e56-eb0f636b603e.png) |
| 4 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/7a8b7dcf-0646-b3f8-d0b8-ea653aac6608.png) | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/13298224-e94f-418d-0ced-2600876df94b.png) |
| 5 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/2e05b1fa-b669-bf97-70ca-e7cde6febbbd.png) | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/95b5b61d-9454-cfa0-aee6-6475360f1c20.png) |
| 6 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/533a019d-587b-324b-ef45-428e9f2664bb.png) | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/c938f5af-04c1-d4e0-dd64-6f1ed9a7b0af.png) |
| 7 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/9e5f4896-f928-7e04-3753-728d93db826e.png) | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/b56cebf4-aeed-c14a-8679-10dfd2468f28.png) |
| 8 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/12b35c51-2fef-4734-7ab3-b7c043f9c52e.png) | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/bb4bf136-41b0-fc12-326c-0df0189ea57d.png) |
| 9 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/70f84b2f-5d45-5513-6fd3-c4b532fa6dfb.png) | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/01fd0ea1-dbf6-a6de-2c88-54defa4e16b4.png) |
| 10 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/7cda6f3c-21d3-412b-4b8f-6a702128dfc5.png) | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/8421c9e9-ee33-7ff2-c44d-a61fc98724b2.png) |
| 11 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/4f6d316d-05de-57df-0c79-e94b9101e9cc.png) | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/032eee2d-1156-95df-f04d-78dc9df0827e.png) |
| 12 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/a70da122-286a-2fe3-d609-b370f27b40f0.png) | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/5acad70d-3bb9-1dc7-46c2-3e9dd5e6c5d3.png) |
| 13 |  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/bf95b95a-22f5-3233-3eaf-4b540d0fc018.png) | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/25c4e525-3d9f-c91b-118d-9ee7567caf1b.png) |

### 画像比較する

過去の実行結果と比較をします。

▼過去と今回で少し落下位置が異なっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/efb1c4fb-7e3a-c31d-91f0-294f7adc7bb3.png)

▼差分を確認すると、0.25%の差があるようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/1ee19af5-608e-362b-d37c-169dc3adb721.png)

当然、Autifyサーバの状況やブラウザの状態に依るので、確実に同じにはならないですが
目視で問題ないことを確認できます。




### ビデオログで確認する
タイミングが良いことに、2022年11月28日、【ビデオログ】と言う機能がリリースされました。
リリースノート本文
https://help.autify.com/docs/ja/release-notes-november-28th-2022

見てみましょう。
※ブラウザを別のアプリで動画撮影したので、若干速度等は異なります。

![PuyoAutify.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/f6b40da6-5ae5-d3aa-4401-e7e591034a0b.gif)

アクティブに動作する場合でも、これがあれば、わかりますね。

# じゃぁ、どんなシナリオにすれば良いのかな？
（拙い絵ですみません汗）

1) 左キーを押して左に移動する。左端まで移動したら、そこで止まること。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/a249254b-9b05-d54d-d37f-45b19d1a33a1.png)

2) 右キーを押して右に移動する。右端まで移動したら、そこで止まること。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/4c65dac6-a2f4-9262-14fc-de3a9dfb8c41.png)

3) ぷよが回転すること（左回り）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/ce1c2336-fbf0-d75b-71c1-cd0dae39dc7c.png)

4) ぷよが消えること
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/8eb0758f-7601-d3d1-38e9-7bfc3637fb0d.png)

ぷよは４つ連結することで消えますが、
これを自動化するのがなかなか難しいです。

絵では、2つの例を記載していますが、
4つ連結されるパターンが多いです。

自動化シナリオを考えたとき
そのパターンになるように移動させ、積み上げる必要があります。

ただ
　・降ってくるぷよのパターンはランダム
　・前述の通り、キーを押下して移動、放すことで移動が止まる （移動の距離が実行毎に異なってしまうことが考えられる）
　・ぷよの落ちる位置が固定化されている
ことから、シナリオどおりにならない可能性が高いです。

そのため、このような「テストモード」を作成することにしました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/a47b175c-c087-898e-3466-893b61a8a718.png)

- 内部の情報を表示する機能
- 一時停止機能（Enterで一時停止・一時停止解除する機能）
- 内部で保持しているぷよの配置状態を編集できる機能
- 降ってくるぷよのパターンの固定化

| 1 | 2 |
|:-:|:-:|
| ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/d17e583c-b513-369d-7cc0-c140ca19aa6f.png)  | ・内部で保持しているフレーム値、動作しているモード、一時停止状態の確認 |
| ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/2bee9fd5-232a-ff13-b739-4e5316c8de09.png) | ・ぷよの配置情報の表示 |
|  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/317a0b70-5c1f-2f84-f1c8-35cd847a26b1.png) | ・ぷよの配置の編集 |

▼「ぷよの配置の編集」で任意のぷよ番号を指定して「Submit」ボタンクリックで、任意のぷよ配置を表現できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/d65492e1-b1d9-c58a-da5c-9b852f2f5c00.png)

# シナリオを作ってみましょう
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/e4b267bb-c53c-e1cc-954e-00ee4a77fb9d.png)

| # | イメージ | 説明 |
|:-:|:-:|:-:|
| 1 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/a616b1fd-4626-9465-f88e-6f569d795639.png) | ・Salesforce にログインするまでのステップグループ |
| 2 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/adc3bf34-5849-4127-ce3c-1d5e342449d8.png) | ・事前にぷよぷよのVisualForceページをタブ化したタブをクリック |
| 3 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/553eea1a-e9cf-a314-07db-3bc022eb1b40.png) | ・自由落下させるため、１秒待つ (これは不要なステップですね) |
| 4 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/babf7591-29fa-7167-0f36-ac76643354b7.png) | ・ぷよの配置編集 |
| 5 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/4a073c8f-c30e-abbf-9e1a-f01e45bc3174.png) | ・ぷよの配置編集 |
| 6 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/26c95bdc-8801-944d-f7a6-ddfedc36bc4a.png) | ・ぷよの配置編集 |
| 7 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/38d18d00-f058-5c8f-1ebe-b66b7aace61c.png) | ・ぷよの配置編集 |
| 8 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/077d2211-2416-c3f7-e1b0-54e2134f2bf0.png) | ・ぷよの配置編集 |
| 9 |  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/b8b46e25-5664-1de9-9670-6002cb9c2f44.png) | ・ぷよの配置編集 |
| 10 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/94c1d34d-6d3c-397b-61e6-57983c1a5a05.png) | ・ぷよの配置編集の反映 |
| 11 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/c72364c7-8ee4-8b5c-b84b-36aa5ce7196e.png) | ・ぷよぷよゲーム画面のクリック |
| 12 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/15241bca-731e-3665-a38f-553cc2136e7a.png) | ・Enterキーを押して離す。一時停止を解除。  |
| 13 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/5953fa3f-d917-bfa0-4cc8-3310848439a7.png) | ・１秒自由落下させる |
| 14 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/5fa56117-6b01-bad3-e49c-b9a8b7ca2071.png) | ・下キーを押して、落下速度アップ |
| 15 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/2c2a7245-2eaa-f63f-bca0-7f45e2a4de5d.png) | ・落下まで待つ |
| 16 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/e9d1d53b-19d4-d639-c69b-b0cdcc73e758.png) | ・下キーを離す。  |
| 17 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/4290b094-1e4e-8ad5-fa75-e16310c0a2bb.png) | ・Enterキーを押して離す。一時停止。 |

# 実行結果

ぷよが消えるテスト。
ぷよを編集できるようにしたので、配置パターンでのテストができるようになりました。

| # | 実行結果 | 画面キャプチャ |
|:-:|:-:|:-:|
| 1 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/9af2c95a-6266-ef6c-5751-3470cc793837.png) |   |
| 2 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/7e89089c-3c85-f9e5-f4a5-62b95b78fe67.png) |   |
| 3 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/beaae548-db3b-17dc-b283-01fb39d32621.png) |   |
| 4〜9 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/3486f044-544d-ba28-c838-a5a1e3c36ead.png) | ▼4.の結果 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/84b4797c-3695-f025-4db9-6560f74aedcd.png) |
| 10 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/979cb456-5b67-a953-d1f7-e830da65ead9.png) | ▼しっかりプルダウン設定されてます ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/b8089989-64d4-92ca-2c98-f4830172682b.png) |
| 11 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/c856d00a-94d4-44b2-f5b6-8689aa4f57f3.png) | ▼ぷよが設定されました ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/56e14dc9-ed27-170d-2ae6-3ff7d7fdcfaa.png) |
| 12 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/273bf1cd-a712-09d6-3e09-8996687c35c4.png) | ▼上にちょこっとぷよが落ちてきてます ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/49628959-c43a-e258-a410-d5bbc0c21169.png) |
| 13 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/c85599dd-798a-1646-cc17-0f068934f0f7.png) | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/b90ea573-b32b-99d8-440c-28edadd53ab3.png) |
| 14 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/17e6cc5f-b98a-8a20-92e4-8eb3e051860b.png) | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/58017d7b-224b-1a80-1f04-3fe70fb1256f.png) |
| 15 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/d0caddff-ef2c-560a-6647-7e37e3ee5707.png) | ▼ちゃんと消えていることと、全消しが出てることを確認 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/a9b40383-6f35-ae67-8d10-01b24f378ddd.png) |
| 16 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/4af99400-c16c-12bc-62cb-287cfbab6a42.png) | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/71b78935-8327-d2e4-cbb0-3e75e8211f63.png) |
| 17 | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/a0aa93ec-001a-a1b3-b4f9-2aa0a7ff304d.png) | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/bc2ac8a5-e647-4a11-fcbf-fcae30148ccf.png) |

# ビデオログで確認する

▼ ちゃんとぷよが消えていることが確認できています。
![PuyoAutify2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/d3ec1881-fe93-7229-345f-56ffae58472d.gif)



# 言いたかったこと
- ゲームのような随時動作するアプリでもAutifyの自動テストをすることができる。
- ただ、デバッグモードのような機能を用意しないと実現できない場合がある。
- 当然、デバッグモードはリリースできない。自動テストの扱いは、あくまでも機能テストの一部。
    - 裏手の機能に係るテストは、自動で。本番のテストは、手動で、と言った使い分けをしても良いかも。

- 自動テストを将来行う、という計画の際は、アプリケーション設計時から自動化テストについて考慮するべき。
- またそれに係る工数も用意すべき。

# 最後に
長文になってしまい、申し訳ありません。
最後まで閲覧いただき、ありがとうございました。