SlideShare a Scribd company logo
1 of 47
Download to read offline
2018年12月8日
テスト自動化
カンファレンス2018
AI for Testing
のスタートアップ情報共有
日本酒エバンジェリスト
板垣 真太郎
富士通株式会社
サービステクノロジー本部 技術戦略室
新技術のリサーチ部門
オープンに社内外と情報共有して、新技術を取り入れる
• マントラ「世界の最新技術を浸透させる」
• 自前主義からの脱却し、有望な技術の目利きと発掘をする
• 現在は、シリコンバレーのスタートアップ調査に注力
Curiosity
Unbiased
Keep it Simple
Embracing Failure
Openness
Diversity
Tenacity
Values
5
アジャイルが浸透し、開発は高速化したが、テストがボトルネックになっている
アジャイル開発を導入
89%
テストの半数以上を自動化
23%
テスト自動化のROI
アジャイルによって、開発の生産性は10倍以上になったが、テストの
生産性はあまり変わっていない。
テスト自動化しても、そのテストを繰り返さなければ、効果が得られ
ない。条件によっては投資回収に3年以上かかることもある。
http://www.atmarkit.co.jp/ait/articles/1406/27/news047.html
STATE OF TESTING REPORT 2018
課題解決の新しいアプローチ
AI for Testing
市場の期待
57%
QAとテストにAIを活用するプ
ロジェクトがある、または計
画している
World Quality Report 2018-19
ソフトウェア開発とAI
品質管理/テストはソフトウェア開発プロセスの中でBtoB Ready(製品化済)が最も多い
https://medium.com/ai-for-software-engineering/ai-for-software-engineering-industry-landscape-12-aug-2018-e8e028628663
アイディア
製品
ムーブメント
https://www.aitesting.org/
2017年、Artificial Intelligence for Software
Testing Association (AISTA)設立
Jason ArbonとTariq Kingが設立。
ArbonはMicrosoft, Googleでテスト自動化に携わり、「テスト
から見えてくるグーグルのソフトウェア開発」の共著者。
AISTAは、ソフトウェアテストに適用するAIシステムの開発、
AIシステムをテストする方法、最終的には自動でテストして
自動で修復するソフトウェアの設計を目的としている。
予測
Unitテスト 機能テスト
オムニチャネル
機能テスト AI
DevOps
10+ deploys/day
Agileマニフェスト
1997
JUnit Now
2009
2022年までに、40%のアプリ開発プロジェクトがAIを活用してテスト資産を
ビルド、保守、実行及び最適化するテスト最適化ツールを利用する
2004
Selenium
2011
Appium
2001
Gartner, 100 Data and Analytics Predictions Through 2022, G00353459, By Douglas Laney, Guido De Simoni, Rick
Greenwald, Cindi Howson, Ankush Jain, Valerie Logan, Alan D. Duncan 21 May 2018
2018
AIST設立
2017
テスト自動化
カンファレンス開始
2013
It’s time to ride on!
AI for Testing
本日紹介するAI for Testing
セルフテスティング
アプリの変更を検知し、テストを自動修復
セルフヒーリング
AIがテストを自動生成、実行する
セルフテスティングセルフヒーリング
アプリの変更を検知し、テストを自動修復 AIがテストを自動生成、実行する
アプリの変更
単純なモデル
2 ポイント 1 ポイント
Id Same Not Same
Class Not Same Not Same
Text Not Same Not Same
X-path Not Same Not Same
Tag Same Same
機械学習モデル
変数
Id
Class
Text
X-path
Tag
類似度機械学習
0.9
0.7
セルフテスティングセルフヒーリング
アプリの変更を検知し、テストを自動修復 AIがテストを自動生成、実行する
3つのステップ
要素の特定
コンテキスト
の学習
ユーザーフロー
の学習
Step 1 Step 2 Step 3
Step 1: 要素の特定
見出し
テキスト入力
パスワード入力
ボタン
リンク
機械学習不要
Step 2: コンテキストの学習 Jason Arbon – AI for User Flow Verification, https://aisummitguild.com/
Step 2: コンテキストの学習
Step 2: コンテキストの学習
Step 3: ユーザーフローの学習
https://www.youtube.com/watch?v=V1eYniJ0Rnk&feature=youtu.be
Reward
100
10
-10
-100
Q-Learning
Step 3: ユーザーフローの学習
1. IDを入力
2. パスワードを入力
3. ログインボタンをクリック
Step 3: ユーザーフローの学習
Step 3: ユーザーフローの学習
アプローチ
Tariq King - A Vision of Self-Testing Systems, https://aisummitguild.com/
主なスタートアップ
評価
記録再生ツールの拡張
アプリの変更を検知し、テストを自動修復。
モジュール化、データ駆動にも対応し、既存
のテスト自動化ツールの問題点を解決する。
セルフヒーリング
プレイヤー 資金調達 代表者 経歴 備考
(testim)
Series A
($7.9M)
Oren Rubin (CEO):
Googleなど20年以上
の経験を持つエンジ
ニア
2018/5/30 The AI Summit Guild
2017/11/2 Series A
2014/9 創業
複数企業が実用中。日本企業も
複数がPoCを実施している。
(Mabl)
Series B
($30M)
Dan Belcher, Izzy Azeri:
元Googleで
Stackdriverの開発者
2018/9/18 Series B
2018/5/30 The AI Summit Guild
2018/5/9 Nanalyze
2018/2/21 TechCrunch
2018/2/21 Series A
2017/1/23 創業
Google Venturesによる投資を受
け、急速にチームを拡充してい
る。
評価結果のサマリー
2 回 3 回
1 回
手動テスト
テスト自動化
インストール 5分
学習 1 時間
4 回1 回
4回 繰り返すと効果あり
できない / しにくいテスト
 プラグイン (Active X, Silverlight, Flash etc.)
 排他テストなどの同時処理
 見た目(崩れ、アニメーションなど)の検証
ScopeROI
80 % がテスト可能(Webのみ)
* 検証用の簡易Webアプリで検証: 39 テストケース, 818 LOC
Testim, Mablに
大きな差はない
セルフヒーリング
単一要素の変更
1. ID, 2. class, 3. タグ, 4. 位置, 5. テキス
ト, 6. 見た目
要素の順序変更
セルフヒーリング
繰り返し要素の変更 NG
セルフヒーリング
評価
セルフテスティング
探索的ボット
AIがテストを自動生成、実行する。
テストの70%は単純作業と言われており、こ
の70%分をAIが代替できる。
プレイヤー 資金調達 代表者 経歴 備考
(test.ai)
Series A
($17.6M)
• Jason Arbon (CEO)
Microsoft, Google出身
でAIST創設者、
「How Google Tests
Software」の共著者
• Justin Liu (COO)
2018/6/31 Series A
2016/9/14 Seed
2015/10/1 創業
AISTAを立ち上げるなど、この分野
のパイオニア
(Appvance.ai)
Series A
($7M)
• Frank Cohen: シリア
ルアントレプレナー
• Kevin Surace: 元
Serious EnergyのCEO
2016/2/24 Series A
2013/2/1 Seed Round
2011/10/1 創業
Sum Microsystemsからのスピンアウ
トで日本市場にも精通している
リサーチ結果
対象 モバイル
* 今年中にWebも対応予定?
Webとモバイル
提供形態 SaaS オンプレ
学習方法 アプリをクローリング 人による要素定義、httpログ
結果判定 人の確認が必要だが実装済? 人によるバリデーション定義
その他の特徴 Gherkin言語の拡張(AISTAで策定中)でAIに
テストを指示できる
-
appvanceのみ実機
検証
3つのステップ
要素の特定
コンテキスト
の学習
ユーザーフロー
の学習
Step 1 Step 2 Step 3
アプローチの違い:コンテキストの学習
30kのアプリから学習
公開されているアプリを学習
データにしてログインボタン、
ショッピングカートなどの要
素を学習
Jason Arbon – AI for User Flow Verification, https://aisummitguild.com/
アプローチの違い:コンテキストの学習
人が要素を定義
X Pathで要素を特定し、種類、
バリデーションを人が定義し
て、コンテキストを教える
アプローチの違い:ユーザーフローの学習
QLearningで学習
QLearningを用いて、どのよ
うにしてショッピングカート
にたどり着くかといったユー
ザーフローを学習
Jason Arbon – AI for User Flow Verification, https://aisummitguild.com/
アプローチの違い:ユーザーフローの学習
httpログから学習
httpログから、実際のユー
ザーによるユーザーフローを
再現する
まとめ
レベル1(セルフヒーリング) :記録・再生ツールの拡張として実用段階
レベル2(セルフテスティング):製品化されているもののトライアル段階
レベル3(宣言的スクリプト) :製品開発段階
自動化補助、セルフヒーリング
セルフテスティング
宣言的スクリプト
AIがほぼ全てを実施
完全AI化(人の補助が不要)
https://blog.appdiff.com/test-autonomy-levels-7de7967d030eAI for Testingのレベル(AISTA版)
評価のポイント
 創業者、投資家、開発
チーム
 鵜呑みにせず、機能とア
プローチを確認
 ROI、ユースケース、課題
Contact me!
参考
testimとmablの比較表
テストカバー率 79% 71%
対象システム要件 Webシステム ※Active X, Silverlightなどプラグインは不可
対応ブラウザ Chrome, Firefox, Safari, Edge, IE11 Chrome, Firefox
ツール実行環境 Chrome ※エクステンションをインストールして使用
ユースケース 繰り返しが前提のテスト。ただし、一部は手動テストにする必要がある。
• スモークテスト
• リグレッションテスト
• クロスプラットフォームテスト
課題 • 排他テストなどの並列処理、アニメーション、マウスオーバー検証、見た目(崩れなど)の検証が
できない(Seleniumベースのため、今後も解消は難しい)
• 効率的な管理には命名規約とモジュール化設計が必要
• ファイルアップロードができない
• ポップアップ・ダイアログの操作ができない
モジュール化
(繰り返す処理をモジュール化し、再
利用する機能)
Shared Stepとしてモジュール化できる
http://docs.testim.io/getting-started/groups
Flowとしてモジュール化できる
https://help.mabl.com/docs/using-reusable-flows-in-the-trainer
乱数入力
(ユーザー名など、同じ値を入力でき
ない場合に利用する機能)
JavaScriptで記述する
http://docs.testim.io/guides/set-random-data-as-text-value
アルファベット、数字、アルファベッ
トと数字の混合を{{alpha:5}}, {{digit: 2}},
{{alnum:8}}のように指定できる
https://help.mabl.com/docs/adding-variables
検証の種類 要素が存在する、存在しない、テキス
トの値(正規表現利用可)、JavaScript
によるカスタム検証が可能。画像検証
(Pixel)も可能
http://docs.testim.io/getting-started/validations
等しい/等しくない、含む/含まない、~
ではじまる/はじまらない、~より大き
い/小さい、~以上/以下JavaScriptによる
カスタム検証が可能
https://help.mabl.com/docs/including-assertions-in-your-
journey
アプリが生成した値の利用(アプリが
受付番号などを発行、次の処理でその
番号が必要なテストで利用)
画面に表示された値を変数に保持する
機能がある
http://docs.testim.io/advanced-steps/extract-text
JavaScriptで要素を取得し、値を変数に
保存できる
https://help.mabl.com/docs/using-javascript-steps-in-the-
trainer

More Related Content

What's hot

What's hot (20)

さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...
 
Redmineの情報を自分好みに見える化した話
Redmineの情報を自分好みに見える化した話Redmineの情報を自分好みに見える化した話
Redmineの情報を自分好みに見える化した話
 
API-first development
API-first developmentAPI-first development
API-first development
 
KVM環境上にルーターを作る/東海道らぐ伊勢2018
KVM環境上にルーターを作る/東海道らぐ伊勢2018KVM環境上にルーターを作る/東海道らぐ伊勢2018
KVM環境上にルーターを作る/東海道らぐ伊勢2018
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
JWTを使った簡易SSOで徐々にシステムをリニューアルしている話
JWTを使った簡易SSOで徐々にシステムをリニューアルしている話JWTを使った簡易SSOで徐々にシステムをリニューアルしている話
JWTを使った簡易SSOで徐々にシステムをリニューアルしている話
 
Open APIで定義しよう! 実践編
Open APIで定義しよう! 実践編Open APIで定義しよう! 実践編
Open APIで定義しよう! 実践編
 
FuelPHPで3種のprofilerを使ってみた
FuelPHPで3種のprofilerを使ってみたFuelPHPで3種のprofilerを使ってみた
FuelPHPで3種のprofilerを使ってみた
 
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
 
Guide To AGPL
Guide To AGPLGuide To AGPL
Guide To AGPL
 
HTTP/2 入門
HTTP/2 入門HTTP/2 入門
HTTP/2 入門
 
Micrometerでメトリクスを収集してAmazon CloudWatchで可視化
Micrometerでメトリクスを収集してAmazon CloudWatchで可視化Micrometerでメトリクスを収集してAmazon CloudWatchで可視化
Micrometerでメトリクスを収集してAmazon CloudWatchで可視化
 
HashiCorpのNomadを使ったコンテナのスケジューリング手法
HashiCorpのNomadを使ったコンテナのスケジューリング手法HashiCorpのNomadを使ったコンテナのスケジューリング手法
HashiCorpのNomadを使ったコンテナのスケジューリング手法
 
MicroPythonのCモジュールを作ってみる
MicroPythonのCモジュールを作ってみるMicroPythonのCモジュールを作ってみる
MicroPythonのCモジュールを作ってみる
 
Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)
Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)
Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)
 
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPCマイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
SharePoint Online を JavaScript でイジる。
SharePoint Online を JavaScript でイジる。SharePoint Online を JavaScript でイジる。
SharePoint Online を JavaScript でイジる。
 
0-60: Tesla's Streaming Data Platform ( Jesse Yates, Tesla) Kafka Summit SF 2019
0-60: Tesla's Streaming Data Platform ( Jesse Yates, Tesla) Kafka Summit SF 20190-60: Tesla's Streaming Data Platform ( Jesse Yates, Tesla) Kafka Summit SF 2019
0-60: Tesla's Streaming Data Platform ( Jesse Yates, Tesla) Kafka Summit SF 2019
 
Spring と TDD
Spring と TDDSpring と TDD
Spring と TDD
 

Similar to Ai for software testing

第3回ソフトウェアテストセミナー
第3回ソフトウェアテストセミナー第3回ソフトウェアテストセミナー
第3回ソフトウェアテストセミナー
Tomoyuki Sato
 
ありえるえりあ勉強会@五反田~テスト編~ Part2
ありえるえりあ勉強会@五反田~テスト編~ Part2ありえるえりあ勉強会@五反田~テスト編~ Part2
ありえるえりあ勉強会@五反田~テスト編~ Part2
Tomoyuki Sato
 
20181214 Semicon Japan Techspotセミナー:ディープラーニングを応用した製品不良検査ソフトウェアおよびピッキングロボットソリュ...
20181214 Semicon Japan Techspotセミナー:ディープラーニングを応用した製品不良検査ソフトウェアおよびピッキングロボットソリュ...20181214 Semicon Japan Techspotセミナー:ディープラーニングを応用した製品不良検査ソフトウェアおよびピッキングロボットソリュ...
20181214 Semicon Japan Techspotセミナー:ディープラーニングを応用した製品不良検査ソフトウェアおよびピッキングロボットソリュ...
Preferred Networks
 

Similar to Ai for software testing (20)

【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
 
テスト自動化への1エンジニアとしての期待
テスト自動化への1エンジニアとしての期待テスト自動化への1エンジニアとしての期待
テスト自動化への1エンジニアとしての期待
 
ワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeployワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeploy
 
画像認識ベースのUI自動化フレームワークを用いた取り組み
画像認識ベースのUI自動化フレームワークを用いた取り組み画像認識ベースのUI自動化フレームワークを用いた取り組み
画像認識ベースのUI自動化フレームワークを用いた取り組み
 
【SQiP2016】楽天のアジャイル開発とメトリクス事例
【SQiP2016】楽天のアジャイル開発とメトリクス事例【SQiP2016】楽天のアジャイル開発とメトリクス事例
【SQiP2016】楽天のアジャイル開発とメトリクス事例
 
はじめてのアジャイル
はじめてのアジャイルはじめてのアジャイル
はじめてのアジャイル
 
【システムテスト自動化カンファレンス2013 LT】 Data Driven Development (仮)
【システムテスト自動化カンファレンス2013 LT】 Data Driven Development (仮)【システムテスト自動化カンファレンス2013 LT】 Data Driven Development (仮)
【システムテスト自動化カンファレンス2013 LT】 Data Driven Development (仮)
 
第3回ソフトウェアテストセミナー
第3回ソフトウェアテストセミナー第3回ソフトウェアテストセミナー
第3回ソフトウェアテストセミナー
 
エンドツーエンドテストを自動化したらチームがすごく良くなった@XPまつり2015LT
エンドツーエンドテストを自動化したらチームがすごく良くなった@XPまつり2015LTエンドツーエンドテストを自動化したらチームがすごく良くなった@XPまつり2015LT
エンドツーエンドテストを自動化したらチームがすごく良くなった@XPまつり2015LT
 
Et west テスト自動化_公開版
Et west テスト自動化_公開版Et west テスト自動化_公開版
Et west テスト自動化_公開版
 
失敗から学ぶテスト自動化導入で大切なこと
失敗から学ぶテスト自動化導入で大切なこと失敗から学ぶテスト自動化導入で大切なこと
失敗から学ぶテスト自動化導入で大切なこと
 
Automotive agile 自動車業界を取り巻くアジャイル・スクラムの潮流
Automotive agile  自動車業界を取り巻くアジャイル・スクラムの潮流Automotive agile  自動車業界を取り巻くアジャイル・スクラムの潮流
Automotive agile 自動車業界を取り巻くアジャイル・スクラムの潮流
 
デブサミ2014【13-B-L】テスト自動化を見直そう!自動化への投資が開発チームをクリエイティブにする(安竹由起夫〔コベリティジャパン〕)
デブサミ2014【13-B-L】テスト自動化を見直そう!自動化への投資が開発チームをクリエイティブにする(安竹由起夫〔コベリティジャパン〕)デブサミ2014【13-B-L】テスト自動化を見直そう!自動化への投資が開発チームをクリエイティブにする(安竹由起夫〔コベリティジャパン〕)
デブサミ2014【13-B-L】テスト自動化を見直そう!自動化への投資が開発チームをクリエイティブにする(安竹由起夫〔コベリティジャパン〕)
 
2018/8/6 トレLABO2 AI案件のよくある落とし穴と人材育成
2018/8/6 トレLABO2 AI案件のよくある落とし穴と人材育成2018/8/6 トレLABO2 AI案件のよくある落とし穴と人材育成
2018/8/6 トレLABO2 AI案件のよくある落とし穴と人材育成
 
ありえるえりあ勉強会@五反田~テスト編~ Part2
ありえるえりあ勉強会@五反田~テスト編~ Part2ありえるえりあ勉強会@五反田~テスト編~ Part2
ありえるえりあ勉強会@五反田~テスト編~ Part2
 
20181214 Semicon Japan Techspotセミナー:ディープラーニングを応用した製品不良検査ソフトウェアおよびピッキングロボットソリュ...
20181214 Semicon Japan Techspotセミナー:ディープラーニングを応用した製品不良検査ソフトウェアおよびピッキングロボットソリュ...20181214 Semicon Japan Techspotセミナー:ディープラーニングを応用した製品不良検査ソフトウェアおよびピッキングロボットソリュ...
20181214 Semicon Japan Techspotセミナー:ディープラーニングを応用した製品不良検査ソフトウェアおよびピッキングロボットソリュ...
 
20150418 システムテスト自動化 第一章
20150418 システムテスト自動化 第一章20150418 システムテスト自動化 第一章
20150418 システムテスト自動化 第一章
 
Gui自動テストツール基本
Gui自動テストツール基本Gui自動テストツール基本
Gui自動テストツール基本
 
DLLAB 製造分科会 2018年度成果報告
DLLAB 製造分科会 2018年度成果報告DLLAB 製造分科会 2018年度成果報告
DLLAB 製造分科会 2018年度成果報告
 
リーンスタートアップ、アジャイル開発導入事例
リーンスタートアップ、アジャイル開発導入事例リーンスタートアップ、アジャイル開発導入事例
リーンスタートアップ、アジャイル開発導入事例
 

Ai for software testing