AndroidのUIテスト自動化ってずっと面倒だなと思ってた。要素のロケーター指定がクソ手間で、AppiumとかEspressoのドキュメント読んでも結局試行錯誤の連続。そんなタイミングで見かけたのがDroidclawだった。
実際にセットアップしてみると、思ったより素直に動く。pip install droidclawして、デバイスをADBで接続、スクリーンショット撮ってAIに投げるだけ。最初は「本当に動くんか?」って半信半疑だったんだけど、返ってきたテストコードを見て「あ、これ使える」ってなった。要素の特定精度が想像以上に高い。
ここが本当に良かった点は、スクリーンショットをベースに作業が進むから、UIの変更があってもサッと対応できるってこと。従来のXPathとかIDベースのロケーター指定だと、UI変更のたびに全部修正し直す必要があるんだけど、Droidclawは画像認識ベースだからその辺の堅牢性が高い。特にQAチームと開発の連携がスムーズになった。手作業の工数が3割くらい減ったんじゃないかな。
ただし、ドキュメントはまだ育成段階。公式のREADMEは基本的な使い方しか載ってなくて、複雑な条件分岐のテストになるとAIの出力をそこそこ手入れする必要がある。あと、複数画面にまたがるシナリオテストは今のところ人手が入る。
結論として、AndroidのUIテスト自動化で手作業が多くて困ってるなら、一度試してみる価値は十分ある。特に、デバイスファーム運用してるとか、回帰テストのボリュームが多いチームには相性いいと思う。自分は今のプロジェクトで使い続けるつもり。