Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
画像認識とヒエラルキーベースを併用した自動テスト改善のアプローチ
Search
gree_tech
PRO
October 17, 2025
Technology
0
140
画像認識とヒエラルキーベースを併用した自動テスト改善のアプローチ
GREE Tech Conference 2025で発表された資料です。
https://techcon.gree.jp/2025/session/TrackC-5
gree_tech
PRO
October 17, 2025
Tweet
Share
More Decks by gree_tech
See All by gree_tech
マネジメントに役立つ Google Cloud
gree_tech
PRO
0
22
今この時代に技術とどう向き合うべきか
gree_tech
PRO
2
2.3k
生成AIを開発組織にインストールするために: REALITYにおけるガバナンス・技術・文化へのアプローチ
gree_tech
PRO
0
120
安く・手軽に・現場発 既存資産を生かすSlack×AI検索Botの作り方
gree_tech
PRO
0
110
生成AIを安心して活用するために──「情報セキュリティガイドライン」策定とポイント
gree_tech
PRO
1
620
あうもんと学ぶGenAIOps
gree_tech
PRO
0
160
MVP開発における生成AIの活用と導入事例
gree_tech
PRO
0
180
機械学習・生成AIが拓く事業価値創出の最前線
gree_tech
PRO
0
160
コンテンツモデレーションにおける適切な監査範囲の考察
gree_tech
PRO
0
90
Other Decks in Technology
See All in Technology
JavaScript パーサーに using 対応をする過程で与えたエコシステムへの影響
baseballyama
1
110
単一Kubernetesクラスタで実現する AI/ML 向けクラウドサービス
pfn
PRO
1
220
スタートアップの事業成長を支えるアーキテクチャとエンジニアリング
doragt
0
480
明日から真似してOk!NOT A HOTELで実践している入社手続きの自動化
nkajihara
1
830
今、MySQLのバックアップを作り直すとしたら何がどう良いのかを考える旅
yoku0825
2
440
Dart and Flutter MCP serverで実現する AI駆動E2Eテスト整備と自動操作
yukisakai1225
0
570
Perlの生きのこり - YAPC::Fukuoka 2025
kfly8
0
120
手を動かしながら学ぶデータモデリング - 論理設計から物理設計まで / Data modeling
soudai
PRO
24
6.1k
Kubernetesと共にふりかえる! エンタープライズシステムのインフラ設計・テストの進め方大全
daitak
0
360
第65回コンピュータビジョン勉強会
tsukamotokenji
0
150
「O(n log(n))のパフォーマンス」の意味がわかるようになろう
dhirabayashi
0
190
AI × クラウドで シイタケの収穫時期を判定してみた
lamaglama39
1
360
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
11
930
Mobile First: as difficult as doing things right
swwweet
225
10k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
2.9k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
For a Future-Friendly Web
brad_frost
180
10k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Why Our Code Smells
bkeepers
PRO
340
57k
Making Projects Easy
brettharned
120
6.5k
A Modern Web Designer's Workflow
chriscoyier
697
190k
Designing for humans not robots
tammielis
254
26k
Transcript
株式会社WFS 山木 弘 画像認識とヒエラルキーベースを併用した 自動テスト改善のアプローチ
2 山木 弘(やまき ひろし) 株式会社WFS シニアQA コンシューマー向けゲーム開発会社を経て 2012年にグリー株式会社(現:グリーホール ディングス株式会社)に入社 運用中のタイトルを中心に静的データの検証や
モバイルアプリケーションの検証の自動化を担 当
3 目次 • 背景と課題 • ヒエラルキーベースのテスト導入 • まとめと今後の展望
4 目次 • 背景と課題 • ヒエラルキーベースのテスト導入 • まとめと今後の展望
これまでのテスト自動化の取り組み • 画像認識ベースのテストを採用 • 直感的で導入しやすいという利点 5 背景と課題 画像認識ベースのテスト
直感的で導入しやすい
画像認識ベースのテストにおける課題 • 信頼性 ◦ UIの色味やレイアウト変更により画像認識の精度が低下 ◦ 意図しない画像を正解と誤認識するケース • 効率性
◦ 画像認識に時間がかかり、テスト実行の効率が低下 • 堅牢性 ◦ 画像認識に失敗すると、後続のテストシナリオが実行不可 ◦ 画像変更に対する耐性が低く、保守性にも影響 6 背景と課題
7 背景と課題 課題の影響 • テスト結果の信頼性が低下し、品質保証の観点でリスクとなる • テストの実行時間が長くなり、CI/CDパイプラインへの影響も懸念 • 画像変更によりスクリプトの修正が必要となり、保守コストが増加
信頼性の低下 効率性の低下 保守コストの増加
改善の対象 テスト品質向上のビジョン • 画像認識と新しい手法のテストの併用によりテスト品質を改善 8 テスト品質向上のアプローチ 画像の誤認識、画像認識の処理時間、スクリプトの堅牢性の低さ 既存のテスト手法との互換性を維持(画像認識と共存)
品質向上を目的とした新しいテスト手法の選択的導入(画像認識と相互に補完) 条件 対象
9 目次 • 背景と課題 • ヒエラルキーベースのテスト導入 • まとめと今後の展望
導入の背景と目的 • 画像認識ベースのテストにおける課題への対応 ◦ 誤認識(信頼性) ◦ 処理時間(効率性) ◦
変更による失敗(堅牢性) 10 ヒエラルキーベースのテスト導入 UI構造の情報を利用するヒエラルキーベースのテストを導入
11 ヒエラルキーベースのテスト導入 ヒエラルキーベースのテストとは • UI要素の階層構造を利用して、要素を論理的に特定・操作 • 見た目に依存せず、構造的にUIを捉える
◦ 誤認識が少なく、信頼性が高い ◦ 処理が高速で、実行効率が高い ◦ 見た目に依存せず、UI変更に強い
画像認識とヒエラルキーベースの比較 特徴 12 ヒエラルキーベースのテスト導入 観点 画像認識 ヒエラルキーベース 操作対象の特定 画面上の画像
UI要素の構造 UI変更への耐性 低い(変化、差し替え) 高い(構造の変更は少ない) 実行速度 比較的遅い 速い 実装の直感性 高い(見た目) やや低い(構造の理解が必要) 誤認識のリスク 高い(類似画像) やや低い(論理的な識別) ※どちらが優れているかではなく、得意な領域が異なる
13 ヒエラルキーベースのテスト導入 画像認識とヒエラルキーベースの併用の意義 • シーンに応じた最適な選択が可能 ◦ 画像認識が有効なケース
▪ 見た目の確認が重要なUI ▪ UI構造が取得できない環境 ◦ ヒエラルキーベースが有効なケース ▪ 見た目の確認が必要ないUI ▪ ボタンやテキストなど、構造が安定しているUI
14 ヒエラルキーベースのテスト導入 画像認識との比較と併用の意義 • 併用の意義 ◦ テストの柔軟性が向上し、失敗率の低減・保守性の向上 ◦
実行時間の短縮と安定したテスト結果の取得が可能 ◦ 画像認識の直感性とヒエラルキーの堅牢性を両立
15 使用したツール:Airtest & Poco Airtest • 概要 ◦ NetEaseが開発したUI自動テストフレームワーク。画像認識をベースにしてお
り、クロスプラットフォーム(Android/iOS/Windows)対応。 • 特徴 ◦ スクリーンショットで操作対象を認識 ◦ Pythonでスクリプトの記述が可能 ◦ ゲームUIなど、視覚的要素が強いアプリに適している
16 使用したツール:Airtest & Poco Poco • 概要 ◦ Airtestと連携して動作するUI要素取得ライブラリ。アプリのUIツリー構造を取 得し、ヒエラルキー情報に基づいて要素を操作
• 特徴 ◦ UI要素の名前、クラス、親子関係などを取得可能 ◦ 見た目に依存せず、論理的に要素を特定 ◦ Android/iOS/Unityなど複数のプラットフォームに対応
17 使用したツール:Airtest & Poco 選定した理由 • 既存の画像認識ベースのテストを活かしつつ、ヒエラルキー情報を扱えるPocoを 追加することで、段階的な移行と併用が可能 •
AirtestのライブラリであるためPythonベースで統一されており、追加で学習するコ ストが低く、スクリプトの再利用性が高い
18 実装例(画像認識のみ / 併用) 誤認識の比較( 画像認識のみ ) • テスト内容は「1-2」を選択する操作 •
キャプチャ元画像「1-2」をゲーム 画面で検索 • 時間経過で色調が変化するようなイ メージの場合に別のオブジェクトと類 似度が近くなり誤認識 • リトライやしきい値の調整が必要 ◦ 実装コストも増加 キャプチャ元画像 時間の経過により色調が変化するUIで誤認識 キャプチャ元画像の「1-2」を検索
19 実装例(画像認識のみ / 併用) 誤認識の比較( 併用) • 対象のソフトウェアにSDKを組み込み APIを通じて階層構造情報を取得 •
名前や識別子を指定することで要素を 操作可能 • 見た目の変化に影響されないテスト 識別子をコードで指定 poco = UnityPoco() poco(“Stage1_2”).tap() 階層構造情報から「1-2」を検索 色調の変化するUIでも問題なく操作可能
20 実装例(画像認識のみ / 併用) 処理時間の比較( 画像認識のみ ) • 画像認識を行う際、複数のアルゴリズムを組み合わせて使用 ◦
マルチスケールテンプレートマッチング、SHIFT、BRISKなど • iOSやAndroidのキャプチャから静的に用意したUIパーツを検索するのに3 秒程度 • 使用するアルゴリズムの種類を減らせば速度は上がる ◦ シーンによりチューニングが必要 ▪ 実装コストの増加
21 実装例(画像認識のみ / 併用) 処理時間の比較( 併用) • 画像認識と比べて平均して1テストケースあたり30倍程度高速に処理 • 画像認識ではキャプチャからピクセル単位で走査するため計算量が多い
• 階層構造はノードをたどるので検索回数が少ない
22 実装例(画像認識のみ / 併用) 画像変更による影響( 画像認識のみ ) • 要素の識別に画像を使用 ◦
画像変更で対象の識別が不能に • 画像のタップでシーンが遷移する場 合、遷移ができずテストが継続できな いため失敗 キャプチャ元画像 形状の変化により対象を識別不能 キャプチャ元画像の「1-2」を検索
23 実装例(画像認識のみ / 併用) 画像変更による影響(併用) • 画像認識で要素の取得を試す • 存在する場合にはタップ
• 存在しない場合にはスクリーン ショットで画像を見つけられな かったエビデンスを残し、ログも 出力する • 遷移は階層構造の情報を使用して 行う 画像がみつからない場合はスクショして継続 target_image = find(Template(“Stage1_2.png”)) if target_image != None: target_image.tap() else: snapshot() #スクショ Logger.log(“Stage1_2.pngが見つからない”) poco = UnityPoco() poco(“Stage1_2”).tap()
24 目次 • 背景と課題 • ヒエラルキーベースのテスト導入 • まとめと今後の展望
25 導入の効果 併用による効果 • 誤認識の抑制(信頼性の向上) ◦ Before ▪
レイアウトや色味の違いで識別不可 ◦ After ▪ 階層構造の情報からUI要素の位置を取得可能 ▪ レイアウトや色味の違いに左右されないテスト
26 導入の効果 併用による効果 • テスト実行時間の削減(効率性の向上) ◦ Before ▪
全てのテストが画像認識のためテスト実行に時間がかかる ◦ After ▪ テストの内容により使い分けることが可能なため 全体的なテスト速度が向上 ▪ 代替可能なテストケースの場合、処理の効率が約30倍向上
27 導入の効果 併用による効果 • 画像変更による影響 ◦ Before ▪
画像認識の失敗やテスト対象の画像が表示されていない場合、 後続のテストシナリオの実行が不可能 ◦ After ▪ 代替のテストを行うことでUI要素を特定し、 テストシナリオの実行が可能
28 今後の展望 • ローカルAI × 自然言語によるテスト自動化 • ファインチューニングによる精度向上 •
非エンジニアでも自然言語でテスト記述が可能に • テストケースの網羅性向上と、保守性の高いテスト基盤の構築 • 将来的には、AIによるテストシナリオの自動提案・最適化
ご清聴ありがとうございました 29
None