【T-DASH】T-DASHで定時ダッシュを決めたい


この記事はアドベントカレンダー「テスト自動化ツールT-DASHを使ってみた AGAIN by T-DASH」の18日目の記事になります。

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


# 隙あらば定時で帰りたい

定時で帰りたい、あ、違った。

**最小の労力で最大の成果を上げ、業務を効率化し、余剰の時間で自己研鑽に励み、業務に生かしていきたい**ものですよね。

Perlの開発者であるラリー・ウォールによれば、プログラマーの三大美徳とは「怠慢」「短気」「傲慢」を指すそうです。

というのを曲解してサボると怒られるわけですが、エンジニアのはしくれであるからには、日々のお仕事はできるだけ圧縮してラクをしたいものです。


# T-DASHとは

T-DASHは、バルテス株式会社の提供するテスト自動化ツールです。

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

社内でも、テストの自動化は定期的に議題に上っており、いろいろと検討してきたりしたのですが、「なんかいいらしい」くらいで終わっているのが実情であります。

とくに、弊社はWeb系よりも組み込み系だったり、内製のWindowsアプリケーションを作ることが多く、いまいちピンとくるツールがない感じでした。

テスト自動化ツール、企業向けの製品が多いため、「価格は問い合わせてください」というようなものが多く、試すにしてもなかなか手を出せないところでもありました。

T-DASHは有料ツールですが、無料プランもあって、気軽にお試しできるのがよさそうでした。

# T-DASHを使ってみた

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

トライアルお申し込みから申請すると、ライセンスキーをもらえます。

T-DASHアプリを起動すると、ローカルで動き始めるので、ブラウザでツールにアクセスできます。

画面は非常にキレイでスマート。

は～やっぱ都会のアプリったら、しゅっとしてんなあ…。
普段The・VisualStudio製みたいなソフトばっかり作ってるとちょっとうらやましくもなります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439672/c8c1b0df-d64f-a17b-82b5-f1bd4d7d19a6.png)

まずサンプルを観覧してみましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439672/07bc6956-44fc-a071-ed02-8ae49b285d38.png)

んー！？　ほー。おほほほ。
なんかすごそう。
ポチっ、ポチッとボタンを押し、勝手に動き出す様子を見てひとしきりにこにこします。

# 適当なソフト（サクラエディタ）を動かしてみる

さて、ひとしきり満足したところで手を動かしてみることにしましょう。

今回の目当ては、「Windows製ソフトウェアのデバッグ」だったりします。
Web系だとオープンソースのものもたくさんあるんですけど（Seleniumとか……）
Windows系のテスト用ツールでピンとくるのがなくってですね……。

今回は、テストということで、いつもお世話になっているサクラエディタを操ってみることにしました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439672/fbba2512-83a1-612b-9216-c9aa6de3b795.png)

ポチポチとスイートとケースを作成していきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439672/86aea2dc-7b20-49d6-c4de-6640732ea8dc.png)

Excel風の画面が出てきます。

画面、要素、値を入力すると、いい感じの日本語になっています。
（このキーワード手順は、僕が入力したものではなく、動作や画面名からT-DASHが埋めてくれたものです。）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439672/6681ff9a-4280-a9b1-c3ff-31d1e7cf2507.png)

ああ、ふだん試験規格書をExcelで作ることが多いのでなんか悲しくなってきました。

新人の頃は（今もですが……）「ボタンは”押す”か”押下する”かで統一」だったり、「これはメイン画面なのか、メインアプリケーション画面なのか？」と、そんな指摘をそれはもう山のようにもらったものです。
それはごもっともな指摘で有益な時間だったとは思いますが、
人による試験規格書の表現のブレがなくなったら、争いごとは少なくなるでしょうね。

（あと、機械相手だと「適切な値が表示されている」の「適切な」って何よ？　みたいな忖度が通用しなくなるので、何を意味するか真剣に向き合わなきゃならなくなります）

したい、自動化。
試験規格書をつくるのはいいけど、一生懸命書式をいじったり、誤字脱字を直したりしている時間は、猫と戯れる時間になってもいいはずだ。

そんな世界も夢じゃないのかもしれない。

（頼むぞ～、AI……）

## とりあえずやってみる
T-DASHからアプリケーションを起動→画面にHelloWorldと出力
みたいなことをしてみるとしましょう。

さて、きっとおそらく、XPathを使用するわけなんですが、
要素はどうやって取得するんだろう？

……。

いつもならVisualStudioのデバッグツールなんですが……。

あっ、もしかしてセルフ！？

**そんなことはなかった。よかった。**

https://service.valtes.co.jp/t-dash/function/tutorial/windowsapp_vol_003


キャプチャツールで要素を確認することができます。
https://service.valtes.co.jp/t-dash/function/tutorial/windowsapp_vol_003

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439672/92ac3404-1a1c-5c47-fadc-3ef02032c5ca.png)

トラッキングでCtrl長押しすると要素をとってきてくれます。

おお……。
お見事～、とれてるじゃないの。

で、どこを何に設定すればいいんだ……というところですが、チェックボックスの「選択行からトラッキング自動反映」にすると値や要素画像パスを勝手に埋めてくれました。

### エラー

画面定義もしたしこれでいけるな、と思ったんですが、いざテストをしてみると、
エラーが発生し、テストが失敗しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439672/a29fa069-c649-75c4-014a-009dc37b888e.png)

確認してみたところ、どうもウィンドウタイトルで要素を識別しているようで、
サクラエディタの複数起動すると気を聞かせて名前を変えてくれる機能と相性が悪かったみたいです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439672/2005c645-2722-be9a-d8ae-2684bdd2c015.png)

ほかにも、ウィンドウのサイズを変えられる場合キャプチャがちょっと違ってきてしまうからぴったり同じにはならないケースなんかがありそうですね。

ちなみに、ログには失敗時のスクショがついててかなりうれしい。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439672/493be5df-9290-096e-17db-a7e27fd7327c.png)
## 成功

起動しているやつを全部閉じて、無事にテスト成功。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439672/e12e21f8-95e0-46ed-5eca-5b33306c817a.png)

これで定時で帰れるってもんです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439672/68cf21a3-8c3b-fc7b-c850-fdd8b4574e26.png)




# 感想
なんといってもWindowsアプリケーションの操作ができるのがいい。
あと、XPathと画像認識の両方に対応しているのはいい感じです。
既存のexeにかぱっとかぶせることができるのもうれしい点です！

簡単な社内開発案件だったら、「テスト自動化、やってみましょう」「はい、したものがこちらになります」とこれを持ち込むことができそうです。

ただ、ローコードな分、動作コマンドは限られていて、
すべてのテストをT-DASHだけで網羅できるわけではなく、
どうしても対応しきれないシチュエーションが発生しそうではありますね。

テスト関連すべてに言えることとは思いますが、ソフトウェアと同時にメンテナンスして、育てていく覚悟はいりそうです。