T-DASHを使ってGemini最新版を使ったAndroidアプリの生成AI自動テストを行う手順(その１)

T-DASHで生成AI（Gemini 2.0 Flash）を使ったAndroidアプリの自動テストに関する記事です。

https://qiita.com/advent-calendar/2024/t-dash01

Qiita Advent Calendar 2024 【[今年もT-DASHを使ってみた！ by T-DASH Advent Calendar 2024](https://qiita.com/advent-calendar/2024/t-dash01)】の14日目の記事になります。

T-DASHを用いたユニークな取り組みとして、先日発表されたばかり、Googleの生成AI「Gemini 2.0 Flash」を統合したAndroidアプリの自動テスト方法を紹介します。これから生成AIを活用したアプリが増えていく中で生成AIの自動テストをモバイルアプリでどのように実現するのかは大きな課題ですよね？

この記事では、Gemini 2.0 Flashを活用した「サマリー生成アプリ」の環境構築から実行までの簡単な流れと、それをどのようにT-DASHに統合して自動テストを行うのかを知ることができます。

最終的にこちらのサンプルアプリとT-DASHを使って検証していきます。

https://github.com/google-gemini/generative-ai-android

:::note warn
この記事ではMacでT-DASHのモバイルアプリテスト機能が動作しない問題にぶち当たり、Wineでそれを実現しようとしています
:::

# T-DASHとは？

![スクリーンショット 2024-12-15 9.55.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/3c8a94b1-b1ec-232e-c31a-8ad0a1ba0e4c.png)

https://service.valtes.co.jp/t-dash/

一言でいうとノーコードのテスト自動化ツールです。競合のツールとしては[Mabl](https://www.mabl.com/ja/)や[Autify](https://autify.jp/)があります。

T-DASHの特徴としては

> 日本語で書いたテストケースがスクリプトになる

というのが特徴となっています。この記事ではコストや機能で競合ツールと比較したわけではありませんが、月額4,840円というのはテスト自動化をノーコードで始めるにはお手軽な価格帯に設定されていると思います。

# 生成AIを自動テストする大変さ
生成AIの検証って大変ですよね？最大の課題は「期待結果を明確化しづらい」ことと「出力多様性への対処」です。通常の自動テストは、入力に対して定まった正解出力を前提とする事が多いですが、生成AIは同一の入力でも表現やニュアンスが微妙に変化します。

そのため、単純な文字列一致による判定は困難で、評価基準は曖昧になりやすいのが生成AIで出力された結果を利用するサービスの特徴です。また、自然さや正確性、表現の幅といった質的指標を厳密に定義し、すべての可能性をカバーすることは事実上不可能とも言えます。

結果として、テストケース設計や合格条件の設定が複雑化し、失敗時の原因究明も難航するのが生成AIにおける自動テストの課題だと言われています。対策としては、複数の模範回答や類似度スコアを用いた柔軟な評価、モデル出力自体ではなくユーザー体験全体を評価する手法などが挙げられます。これらの取り組みにより、生成AI特有の曖昧さと多様性に対応しつつ、実用的な品質保証を目指すことが可能になります。


## 今回利用するサンプル「サマリー作成アプリ」の評価

要約や翻訳などの類似度スコアを評価する指標として、ROUGEやBLEUスコアなどを用いる事が多いです。

### ROUGE

1. 要約評価で用いられるメトリクス、参照要約とのN-gram重複度や共通部分列の長さを評価基準とする
2. 生成テキストが参照要約とどれだけ内容的に重なるかを測定しリコール寄りの指標
3. 要約タスクで広く使われるが、言い換え表現への対応は限定的

### BLEU

1. 機械翻訳評価で用いられるメトリクス、N-gram単位の一致度を重視
2. 複数の翻訳参照文と生成文のN-gram精度を幾何平均し、短い出力へのペナルティを導入
3. 翻訳品質のベンチマーク指標として定番だが、表現の多様性評価には限界がある

`しかし！`今回の記事はT-DASHの記事になるので、これらの生成AIアプリの挙動に関してはこれらのベンチマークスコアを用いて評価することはできません。また、テキストベースで評価出来るので、大量のバッチ処理などで検証すべき項目と言えるでしょう

## 生成AIアプリの生成以外の部分を検証

T-DASHはAppiumをベースに自動テストが行われているツールで、主にUIの挙動に関して評価を行うツールとなっているため、ルールベースでの品質チェックに向いていると言えます。多くのテスト自動化ツールは現時点でルールベースでの品質チェックに最適化されていますので、生成AIによりものづくりのやり方が変わっているので、数年のうちには生成AIに対応した機能も含めて自動でテストが行えるプラットフォームも出てくることでしょう（`現時点で対応していない自動テストプラットフォームも今後は対応しないと業界で生き残れない可能性が高いです！`）

ルールベースの品質チェックでは、要約の内容自体に固定の正解を求めず、「X文字以内」「Y個の主要トピックを含む」といった形式的条件を定めることで、自動テストで生成結果を判定可能になります。UI面でも同様に、表示領域やレイアウト、フォント、アクセシビリティ、状態遷移、インタラクションなどの観点でルールを策定し、生成結果が変化しても一定の基準に従って検証が行える項目に的を絞るのが現状で実現できる自動テストの範囲になります。

例えば表示テキストが画面からはみ出さず、ローディング中はスピナーが表示される表示、生成完了後に正しくアクションボタンが有効化されるかといった点を自動チェックする事になります。また、スナップショットテストやビジュアルリグレッションテストにより、文字内容の変動に左右されず、UIの崩れや不正な状態遷移を検知することも可能です。これらのルールベースなテスト手法を組み合わせることで、要約品質や言語内容に依存せず、UIの一貫性や使いやすさを安定的に評価することができ、アプリとしての基本的な品質を網羅して検証することが可能となります。

# T-DASHのセットアップしようとしたが動かない！

マニュアル通りにとりあえず、T-DASHのアプリをダウンロードしてインストールしましたが、どの画面を見てもモバイルアプリの機能がありません！！！

## ドキュメントのキャプチャ
![スクリーンショット 2024-12-15 16.11.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/7ecbd5cf-1778-1a63-3b33-654e4a78a1b8.png)

## 実際の挙動
![スクリーンショット 2024-12-15 16.11.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/fa96e531-bb36-3489-ba4f-e156fc296f47.png)

設定を色々と見ても、[モバイル関連のドキュメント](https://service.valtes.co.jp/t-dash/function/tutorial/topic/mobileapp)を全て読んでも何もヒントを掴むことができませんでした。何度かインストールも試みましたが・・・。

# T-DASHアプリのモバイルアプリ機能がmac上で動作しない原因

公式ドキュメントで調べても動作画面を見ても何もわからず公式に問い合わせようかと思ったときにふと「もしかして・・・」

![2024-12-15_17-54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/2a4312c7-d0a2-cbcf-a47c-6cb820f6be1b.png)

4.4.000で間違いなくモバイルアプリのテスト自動化対応が入っていますが、よく見ると「WindowsでAndroidアプリケーションのみ対応」の文字！！！

![2024-12-15_17-55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/56d812e5-841c-acfa-9d3f-b42a6227cd1a.png)

:::note alert
Mac版のリリースノートを見ていると見事に撃沈・・・。Mac版のT-DASHはモバイルアプリのテスト自動化に対応していませんでした。
:::

T-DASHはWebアプリとして動作して、UIはブラウザ上で操作するWebアプリとなっていたので、同じものがリリースされているものと勝手に勘違いしてたのが問題ですね・・・。

恐らくですが、Androidデバイスと接続する処理などの問題があり、簡単にMac対応ができなかったという状況だと思いますが残念です。ぜひMac版の対応をお待ちしています！（→　T-DASHの中の人）

# T-DASHアプリをMac上で動かす手順

と、ここまできて諦めるのも悔しいので（記事もここまで書けていますので）WindowsアプリをMac上で動かすWineを使ってT-DASHが動作するか検証してみることにします。

## Wineとは

元Windows使いでMacユーザーになった方の多くはWindows用アプリが使えなくて困ったという経験があると思います。これを実現する方法はいくつかあるのですが、Wineは歴史も長く、信頼性のあるツールで、Mac上で多くのWindowsアプリを動作させることが出来る便利な仕組みです。挙動的にはWindowsアプリをMac上で動作させると動きが微妙だったりはしますが、T-DASHだとどのような動きになるのでしょうか？

デバイスとの接続の問題等でMacに対応していないということでしたら、Wine上でも動かない可能性が高いのですが、一縷の望みを託してチャレンジしてみます。

## Wineのインストール手順

https://www.embird.net/sw/embird/tutorial/wine/xquartz.htm
の手順に従ってXQuartzをインストール

https://www.embird.net/sw/embird/tutorial/wine/wine.htm
の手順に従ってWineをインストール

![2024-12-15_18-24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/729707fd-ceb3-9ba2-6902-0b52b79b3148.png)


## WineでT-DASHをインストールする手順
![スクリーンショット 2024-12-15 21.01.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/8e1242f4-e717-e32b-0dc7-28a18e8cf283.png)
こちらをダブルクリック

![2024-12-15_18-24_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/57016f48-69bd-dd2d-bf83-35adfef33cd7.png)

文字化けして不吉な予感しかしないですね。

![2024-12-15_18-24_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/2f169ff5-cb44-7309-cdc0-344b91ce3e3a.png)

規約も文字化けして読めていないですが同意して次に進めます。

![2024-12-15_18-25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/67000b2c-1509-47ed-0958-c266f98d20b1.png)

これはなんと書いてあるのでしょうか

![2024-12-15_18-25_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/815394df-b065-4201-ca30-fd525c64e256.png)

こちらはインストールパスの指定ですね

![2024-12-15_21-07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/4fedc7df-4f91-2564-1294-4d3fccaa14b4.png)

問題なく進行中

![2024-12-15_18-26_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/2ee0f60f-0602-c5b6-749a-3c51590422f7.png)

無事に完了しました

![スクリーンショット 2024-12-15 18.29.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/f30188f9-eee8-4e2c-62a2-7e90b31d5d81.png)

こちらが実行中の画面。

WineでT-DASHをインストールすることはできましたが、何も画面に変化はありませんでした。`~/T-DASH`配下の設定情報がそのまま残っていたのが原因のようです。 `~/T-DASH`ディレクトリを削除してはじめからセットアップしようと試みました。

## Wineで動作するT-DASHの初期セットアップ

![2024-12-15_22-31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/6b88cb50-2b9b-da73-b084-54853ed75caf.png)
QUINTEEアカウント認証を行おうとしたところ
![2024-12-15_22-32_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/6018e60a-795b-af55-1127-823024c12085.png)
端末IDが入りませんでした

![2024-12-15_22-32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/2a5e170e-f552-89b5-85e9-e589d91e9150.png)
ライセンスファイル認証も試みましたが、通りませんでした。

![スクリーンショット 2024-12-15 22.36.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/2831b278-472f-e789-25e1-31ca47e84b2c.png)

以下のようなエラーがログに出ていたので、device_infoを正しく読み取ることができていないのが原因のようです。
![スクリーンショット 2024-12-15 22.37.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/9a0c65ff-a9ae-76b7-d894-80eb12aea5b0.png)

:::note warn
残念ですが、2024年12月現在、T-DASHを利用したモバイルアプリの自動テストはmacからは実行出来ませんでした。.exe等のバイナリではなくDockerファイルなどとして提供されていればやりようはあった気がしますが、お手上げです。
:::

# まとめ

- macでモバイルアプリ自動テストは利用できない
- Wineで無理やり動かそうとしても動かない
- 検証せずに記事を書き始めると後戻りできない
- `記事には一切出てきていないけどサマリー生成アプリは結構面白い`

:::note info
T-DASHさん公式にmac対応お願いします
:::

# トライ

mac上でT-DASHをそのまま利用することが出来ないということが判明したので、次の記事では別の方法を使ってクラウド上でT-DASHを動かす方法を検証していきます。