[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
SlideShare a Scribd company logo
「UI自動テストツールとAI」
〜AIを使った自動テストの「今」と「未来」〜
株式会社TRIDENT
伊藤望
About Me
p 伊藤 望
p 株式会社TRIDENT	代表取締役
n テスト自動化の支援を行うベンチャー
p コミュニティ運営
n 日本Seleniumユーザーコミュニティ
p 執筆
今日のお話
1. AI技術を使った自動テストサービス
「Magic	Pod」
2. Magic	Podの仕組み
3. Magic	Pod自身のAIエンジンのテスト
4. AI自動テストの今後の可能性
1.	AI技術を使った自動テストサービス
「Magic	Pod」
定型的な作業は、
どんどん置き換えられていく
今、様々な仕事が
AIに置き換えられつつある
p 運転
p 翻訳
p 倉庫作業
p 記事執筆
テストの領域における
定型作業
主なテストの領域
テスト設計
テスト実行
AIでもっと効率よくなりそう!
主に非定型作業
単純作業・繰り返し作業が
かなり多い
AI技術を活用したテスト自動化
Magic	Pod
p AIを活用した自動テストWebサービス
n ディープラーニングなどの機械学習技術などを活用
n 現在はモバイルアプリ向けのみ
p 旧「Magic	Pot」から改名
コンセプト動画
https://www.youtube.com/watch?v=f6SO9pZANas
デモ (Yahoo!乗換案内)
https://www.youtube.com/watch?v=f6SO9pZANas
Magic	Pod	ニュースレター
p Magic	Podの情報を定期的にお知らせ
2.	Magic	Podの仕組み
p 2通りの方式がある
1. テスト実行時検索方式
n 画面キャプチャだけでテストを作成
2. テスト作成時検索方式
n もう少しシステム情報を活用した方式
n 画像解析が間違っていたら手直しできる
n 実運用ではこちらをメインに使ってもらっている
テスト作成・実行エンジンの仕組み
1.	テスト実行時検索方式
1.	テスト実行時検索方式
-テストを作成する-
①画像解析
②選んでテスト作成
1.	テスト実行時検索方式
-テストを実行する-
③Appiumスクリプトに変換
④コマンドラインから実行 ④CIで実行
1.	テスト実行時検索方式
-テストを実行する-
⑤実行時に再度画像解析
⑥対応するAppium要素を取得
UIATextField[1]
⑦Appiumで実行
1.	テスト実行時検索方式
-テストを実行する-
⑤実行時に再度画像解析
⑥対応するAppium要素を取得
UIATextField[1]
⑦Appiumで実行
「名前」入力エリア UIATextField[1]
の対応はキャッシュし、
2回目からは高速に動作
2.	テスト作成時検索方式
2.	テスト作成時検索方式
-テストを作成する-
②画像解析&
対応する要素計算
①Magic	Pod	Desktopで画像と
UIツリー情報をアップロード
2.	テスト作成時検索方式
-テストを作成する-
③選んでテスト作成
テストスクリプト
UIマップ
④実行前に
UIマップを作成可能
2.	テスト作成時検索方式
-テストを作成する-
テストスクリプト
UIマップ
• 画像解析で生成されたラベル
• 人間が書き換えてもよい
2.	テスト作成時検索方式
-テストを実行する-
⑤そのままAppiumで実行
3.	Magic	Pod自身のAIエンジンのテスト
1. 人間のように賢そうなプログラムをAIと呼ぶケース
2. 機械学習を使ったプログラムを指すケース
n データを学習させる作業が発生
n 学習データによって挙動が変わる
AIって何?
p 学習データの一部をテストデータとして使い、正答率で
エンジンの性能を測る (交差検証)
p 機械学習エンジニアは、大抵このテストをしている
機械学習エンジンのテスト
テストデータ
①学習させる
エンジン
学習データ
②テストする
③正答率が低いとNG
p 正答率の数字だけでは気づかないこともある
p 例:
1. 学習データを増やした
2. その結果、正答率が96%	=>	98%にアップ
3. だが、これまで「ボタン」と認識できていた画像が認識できな
くなった
機械学習エンジンのテスト
p どう学習されたかは、人間にはブラックボックス
n 意図せぬ結果が時々起きる
p 学習ロジックの中に、ランダム処理がある(ことが多い)
n 例:確率的勾配降下法:学習データの偏りをなくすため、毎回
データをランダムに選んで学習
n 「データもロジックも変えてないのに、学習し直したら結果が
変わった!」みたいなことが..
原因
p 正答率を見る +	きちんと動作して欲しい基本テストケー
スを自動テスト化
p 開発中もこまめにテスト
Magic	Pod開発ではどうしているか
p 失敗することはあるか
n わかりやすいアイコン等の識別は、通常失敗しない
n 人間も判断に困るような際どいデータの判定は、学習ごとに
結果が変わりがち
p 失敗した時の対策
n 対策1:間違えたデータを学習データに加える
n 対策2:とりあえず再学習
n 対策3:諦める
n 対策4:機械学習ロジック自体の改良
基本テストケースが失敗したら
p 現状世の中で機械学習が使われているところ
1. 不安定さを許容できる処理
n 投稿写真のタグ付け
n チャットボット
n 商品のレコメンド
2. 人間より精度が良い処理
n 工場の不良品検出
n 病気の原因診断
そんな不安定で大丈夫か?
p Magic	Podは?
n 不安定さを許容できる部分に機械学習を使っている
n 画像解析結果は、間違えてもユーザーが直せる
n テスト実行には、現状機械学習エンジンを使っていない
p 自動運転は?
n 画像認識の精度はすでに人間と同レベル?
n センサーなど、非機械学習技術と併用?
そんな不安定で大丈夫か?
p不安定さを許容できる処理
p人間より精度が良い処理
機械学習は使い所が大事
4.	AI自動テストの今後の可能性
人間向けの
テストケースを理解したい
現在のMagic	Pod
メールアドレスに「user@example.com」を入力
パスワードに「pass01」を入力
ログインボタンをクリック
Input("id=mail",	"user@example.com")
Input("id=pass",	"pass01")
Click("loginbutton")
既存自動テストツールのコード
形式の決まった日本語の詳細ステップ
Magic	Podの最終目標
p 人間向けの手動テストケースをAIが理解し自動実行
user@example.com	/	pass01	でログイン
user@example.com pass01
Magic	Podの最終目標
多くが「UI手動テスト」
1. Excel(など)でテストケース作成
2. 人間がUIからテスト実施
世界で毎年テストに
費やされている金額
15兆円 (推定)
Magic	Podの最終目標
多くが「UI手動テスト」
1. Excel(など)でテストケース作成
2. 人間がUIからテスト実施
世界で毎年テストに
費やされている金額
15兆円 (推定)
この部分を置き換える
実現するには
user@example.com	/	pass01	でログイン
メールアドレスに「user@example.com」を入力
パスワードに「pass01」を入力
ログインボタンをクリック
Input("id=mail",	"user@example.com")
Input("id=pass",	"pass01")
Click("loginbutton")
行間を読んで自動展開
既存自動テストツールのコードに変換
大変そう
できそう
行間を読んで自動展開 - アイデア
1. Magic	Podで、共通関数機能を提供
メールアドレスに{user}を入力
パスワードに{pass}を入力
ログインボタンをクリック
{user}/{pass}でログイン
ユーザーが、好きな名前で
共通関数を作成できる
行間を読んで自動展開 - アイデア
2. 共通関数名 → 処理名のビッグデータを
学習すれば、自動展開できるように!
メールアドレスに{user}を入力
パスワードに{pass}を入力
ログインボタンをクリック
{user}/{pass}でログイン
行間を読んで自動展開 - アイデア
2. 共通関数名 → 処理名のビッグデータを
学習すれば、自動展開できるように!
メールアドレスに{user}を入力
パスワードに{pass}を入力
ログインボタンをクリック
{user}/{pass}でログイン
テスト設計も自動化したい
テスト設計の自動化
p 背後のデータモデルの推定など、複雑な論
理的思考が必要
p システム仕様の背後にある、暗黙の常識を
読み取る必要がある
テスト設計の自動化
p効率化は、色々できる
p完全自動化は当面無理では?
n 自動化された時は、おそらくシステム開発の
仕事は全て自動化されている
AIとQAの未来
QAの仕事はどう変わっていくか
pテスト実行などの定型的な仕事は、少しず
つ減っていくのではないか
pテスト設計などの、より創造性の必要なテ
ストに注力できるはず
QAの未来は
pテストの中に単純作業があることが、QAの
地位や価値を下げている
p 単純作業がなくなり、スキル(業務理解、ユー
ザー理解、テスト技法、等)勝負の世界になれ
ば、QAの地位はむしろ向上するはず!
ご静聴ありがとうございました!

More Related Content

「UI自動テストツールとAI」〜AIを使った自動テストの「今」と「未来」〜