SlideShare a Scribd company logo
1 of 14
株式会社LOBでのmabl活用事例の紹介
Koichi Hosono (koichi.a.hosono@rakuten.com)
発表内容
● Introduction
○ 株式会社 LOB
○ AdServer (仮称です)
○ LOB QAチームの業務活動について
○ AdServer プロジェクトにおける
mabl
● Webアプリのテスト自動化における
一般的な論点と困難な点について
=> mabl ではどう解決できるか
○ Record & Re-Run ?
○ プログラミングスキルが必要 ?
○ 動的な要素
○ テストスクリプトの見やすさ
○ 複数環境 (Dev / Stg / Prod)
● まとめ
Introduction – 株式会社LOBとAdServer
● 株式会社LOB: 楽天グループ企業
● 開発プロジェクト:
○ AdServer (仮称)
○ Pasha
● 絶賛求人中です!
(The image is for illustrative purposes only / 画面はイメージです)
LOB QAチームの業務活動 (AdServerの場合)
● QAメンバー2名 / 開発メンバー14名
● タスク: QAメンバー2名分
○ マニュアルテスト / 探索的テスト
○ 広告配信監視ツール
○ バナー表示チェクツール
○ 管理コンソールテスト自動化
. . . 他にも実施したいこと幾つもあり
Unit Level
Integration Level
UI / E2E Level
Ad delivery
monitoring
Banner
auto-check AdminConsole
auto-test
AdServerプロジェクトにおける mabl
● なぜ mabl を選んだか
○ Regressionテスト自動化を最低限のメン
テナンスコストで実現したい
○ 複雑なセットアップが不要 / 低い学習コ
スト
○ AI による自動修復能力
● これまでの流れ
○ 11月中旬: テストスクリプト作成開始
○ 12月末: Stgでのデイリー実行開始
○ 1月以降 : 拡張中
● 関連データ:
○ 3 mabl テストプラン (Stg)
○ 44 mabl テスト (Stg)
○ 1,448 テスト / 48,789ステップを1月に実行
● Introduction
○ LOB, Inc.
○ Rakuten AdServer (Tentative Name)
○ How LOB QA team is wokring
○ mabl in AdServer project
● Webアプリのテスト自動化における
一般的な論点と困難な点について
=> mabl ではどう解決できるか
○ Record & Re-Run ?
○ プログラミングスキルが必要 ?
○ 動的な要素
○ テストスクリプトの見やすさ
○ 複数環境 (Dev / Stg / Prod)
● まとめ
mabl での Record & Re-Run
● 誰でもすぐに操作を録画 & 再実行することでテスト自動化を始められます
● その後テストスクリプトに対してアサーション、安定化、スピードアップ、再利用しや
すさ等のため手作業は必要です(当たり前かもしれませんが)
<テスト安定性についての実例>
まずこのアイテムをクリック
するステップを作成
その後、別のアイテム
が作成される
するとテストステップはこの
新しいアイテムをクリックす
るようになってしまう
<解決方法>
● XPath
//a[text()="AutoCreate 20200212"]
この場合は //tbody/tr[1]/td[2]/a ではなく
● mablの ”Configure Find” 機能
プログラミングスキルが mablで必要か
● XPath の知識は必須
● 変数を利用すれば便利
(フロー、if条件等も同様)
● JavaScript を利用することも可能
mablがまだ実現していないことにつ
いては
● 例: JavaScriptが必要になる場合
○ Date & Time
○ 要素の数
(これについては最近サポートされました ! )
動的な要素と mabl
● 要素の情報が Chromeデベロッパーツールで得られない場合、自動化テストステップの
作成は困難(一般的に)
● mablでは単純に ”録画 & 再実行” することがそのような要素に対しても可能
さらに、その後 “Configure find” も活用できる
(ただ、時々 “Configure find” が必要な属性を示してくれない時もある?)
テストステップの見やすさ
● mablの “録画 & 再実行” でテストステップを作成する場合、および XPathを使う場合、
ステップの記述が他メンバーやレビュアーにとって分かりにくくなりがち
● チェック項目の目的や実際にやっていることをどう関係者に示せばよい?
● mabl では以下が可能:
○ Annotation
○ Echo
○ 関係者を mablの “Viewer”メンバー
として招待
● (ただ、今でも発表者はベストプラクティスを模索中)
複数環境 (Dev/Stg/Prd) と mabl
● mablでは WebアプリのURLとログイン認証情報を変えることにより同一のテストを複
数環境(Dev/Stg/Prd) で実行可能
● mabl 内で定義される環境変数の利用も可能
● (ただしブランチのサポートは満足できないレベル)
○ mabl プランをスケジューラーやデプロイをトリガーにして実行する場合、”master” しか選べない
○ ブランチがマージできるのは “master” へのみ
まとめ mabl:
クイックにテスト自動化を始め、進化
させるための良い選択肢です!
最近サポートされた新機能の例:
• 要素の数
• テスト結果通知時の slack groupへのメンション
• mabl CLI (コマンドラインインターフェース)
• iframe のサポート
. . . そして今後も新しいものがサポートされていく
と思います。(例えばタイムゾーン等)
https://help.mabl.com/changelog
ありがとうございました! / Thank you !
追記:LOB QAメンバーは JaSST (Japan Symposium on Software Testing) の英語セッションの
コーディネートをしています。次ページのスライドもよろしければご参照ください。
Additional Note: LOB QA member is coordinating English sessions of JaSST (Japan Symposium
on Software Testing). Please see the next slide if you are interested.
JaSST 東京
英語セッション
2020
Being Agile
about Architecture
Mr. Joseph W. Yoder
(Refactory CEO)
QA2AQ u– Being Agile at Quality:
Values, Practices, and Patterns
Date: Mar 9 and 10, 2020
Venue: TOKYO BIG SIGHT
http://www.bigsight.jp/english/
Unofficial mobile application
Hashtag: #JaSSTES
http://jasst.jp/symposium/jasst20tokyo.html
チュートリアル
基調講演
ドクトラルシンポジウム
グローバルチームマネジメン
ト
国際標準の ISO/IEC/IEEE
29119 series に基づくテス
トの現在と未来
ソフトウェアの品質予測の
ための品質特性に基づい
た不具合データの分類手
法の提案 ほか

More Related Content

Similar to Lob slide 20200218_j

BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話Katsunori Kanda
 
Try_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hackTry_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hackkimukou_26 Kimukou
 
JAMstackは眠らない
JAMstackは眠らないJAMstackは眠らない
JAMstackは眠らないKuniyoshi Tone
 
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~Sotaro Kimura
 
今すぐブラウザでES6を使おう
今すぐブラウザでES6を使おう今すぐブラウザでES6を使おう
今すぐブラウザでES6を使おうHayashi Yuichi
 
[豆ナイト]Java small object programming
[豆ナイト]Java small object programming[豆ナイト]Java small object programming
[豆ナイト]Java small object programmingYuichi Hasegawa
 
Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-recotech
 
Web技術勉強会第1回目
Web技術勉強会第1回目Web技術勉強会第1回目
Web技術勉強会第1回目龍一 田中
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugMasatoshi Tada
 
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニングKiyokazu Kaba
 
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version - ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version - Tetsutaro Watanabe
 
大規模なJavaScript開発の話
大規模なJavaScript開発の話大規模なJavaScript開発の話
大規模なJavaScript開発の話terurou
 
Hadoopデータ基盤とMulti-CloudなML基盤への取り組みの紹介
Hadoopデータ基盤とMulti-CloudなML基盤への取り組みの紹介Hadoopデータ基盤とMulti-CloudなML基盤への取り組みの紹介
Hadoopデータ基盤とMulti-CloudなML基盤への取り組みの紹介MicroAd, Inc.(Engineer)
 
レコメンドバッチ高速化に向けたSpark/MapReduceの機械学習ライブラリ比較検証
レコメンドバッチ高速化に向けたSpark/MapReduceの機械学習ライブラリ比較検証レコメンドバッチ高速化に向けたSpark/MapReduceの機械学習ライブラリ比較検証
レコメンドバッチ高速化に向けたSpark/MapReduceの機械学習ライブラリ比較検証Recruit Technologies
 
Spark/MapReduceの 機械学習ライブラリ比較検証
Spark/MapReduceの 機械学習ライブラリ比較検証Spark/MapReduceの 機械学習ライブラリ比較検証
Spark/MapReduceの 機械学習ライブラリ比較検証Recruit Technologies
 
CVPR 2011 ImageNet Challenge 文献紹介
CVPR 2011 ImageNet Challenge 文献紹介CVPR 2011 ImageNet Challenge 文献紹介
CVPR 2011 ImageNet Challenge 文献紹介Narihira Takuya
 
2016-11-28 開発・改善ワークフローにおけるDeployGate利用方法
2016-11-28 開発・改善ワークフローにおけるDeployGate利用方法2016-11-28 開発・改善ワークフローにおけるDeployGate利用方法
2016-11-28 開発・改善ワークフローにおけるDeployGate利用方法João Orui
 
[AWSマイスターシリーズ] Amazon DynamoDB
[AWSマイスターシリーズ] Amazon DynamoDB[AWSマイスターシリーズ] Amazon DynamoDB
[AWSマイスターシリーズ] Amazon DynamoDBAmazon Web Services Japan
 

Similar to Lob slide 20200218_j (20)

BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
 
Try_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hackTry_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hack
 
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
 
JAMstackは眠らない
JAMstackは眠らないJAMstackは眠らない
JAMstackは眠らない
 
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
 
今すぐブラウザでES6を使おう
今すぐブラウザでES6を使おう今すぐブラウザでES6を使おう
今すぐブラウザでES6を使おう
 
[豆ナイト]Java small object programming
[豆ナイト]Java small object programming[豆ナイト]Java small object programming
[豆ナイト]Java small object programming
 
Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-
 
Web技術勉強会第1回目
Web技術勉強会第1回目Web技術勉強会第1回目
Web技術勉強会第1回目
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
 
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
 
ぼく(たち)のかんがえた最新のJS開発環境 #scripty04
 ぼく(たち)のかんがえた最新のJS開発環境 #scripty04 ぼく(たち)のかんがえた最新のJS開発環境 #scripty04
ぼく(たち)のかんがえた最新のJS開発環境 #scripty04
 
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version - ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
 
大規模なJavaScript開発の話
大規模なJavaScript開発の話大規模なJavaScript開発の話
大規模なJavaScript開発の話
 
Hadoopデータ基盤とMulti-CloudなML基盤への取り組みの紹介
Hadoopデータ基盤とMulti-CloudなML基盤への取り組みの紹介Hadoopデータ基盤とMulti-CloudなML基盤への取り組みの紹介
Hadoopデータ基盤とMulti-CloudなML基盤への取り組みの紹介
 
レコメンドバッチ高速化に向けたSpark/MapReduceの機械学習ライブラリ比較検証
レコメンドバッチ高速化に向けたSpark/MapReduceの機械学習ライブラリ比較検証レコメンドバッチ高速化に向けたSpark/MapReduceの機械学習ライブラリ比較検証
レコメンドバッチ高速化に向けたSpark/MapReduceの機械学習ライブラリ比較検証
 
Spark/MapReduceの 機械学習ライブラリ比較検証
Spark/MapReduceの 機械学習ライブラリ比較検証Spark/MapReduceの 機械学習ライブラリ比較検証
Spark/MapReduceの 機械学習ライブラリ比較検証
 
CVPR 2011 ImageNet Challenge 文献紹介
CVPR 2011 ImageNet Challenge 文献紹介CVPR 2011 ImageNet Challenge 文献紹介
CVPR 2011 ImageNet Challenge 文献紹介
 
2016-11-28 開発・改善ワークフローにおけるDeployGate利用方法
2016-11-28 開発・改善ワークフローにおけるDeployGate利用方法2016-11-28 開発・改善ワークフローにおけるDeployGate利用方法
2016-11-28 開発・改善ワークフローにおけるDeployGate利用方法
 
[AWSマイスターシリーズ] Amazon DynamoDB
[AWSマイスターシリーズ] Amazon DynamoDB[AWSマイスターシリーズ] Amazon DynamoDB
[AWSマイスターシリーズ] Amazon DynamoDB
 

Lob slide 20200218_j

  • 2. 発表内容 ● Introduction ○ 株式会社 LOB ○ AdServer (仮称です) ○ LOB QAチームの業務活動について ○ AdServer プロジェクトにおける mabl ● Webアプリのテスト自動化における 一般的な論点と困難な点について => mabl ではどう解決できるか ○ Record & Re-Run ? ○ プログラミングスキルが必要 ? ○ 動的な要素 ○ テストスクリプトの見やすさ ○ 複数環境 (Dev / Stg / Prod) ● まとめ
  • 3. Introduction – 株式会社LOBとAdServer ● 株式会社LOB: 楽天グループ企業 ● 開発プロジェクト: ○ AdServer (仮称) ○ Pasha ● 絶賛求人中です! (The image is for illustrative purposes only / 画面はイメージです)
  • 4. LOB QAチームの業務活動 (AdServerの場合) ● QAメンバー2名 / 開発メンバー14名 ● タスク: QAメンバー2名分 ○ マニュアルテスト / 探索的テスト ○ 広告配信監視ツール ○ バナー表示チェクツール ○ 管理コンソールテスト自動化 . . . 他にも実施したいこと幾つもあり Unit Level Integration Level UI / E2E Level Ad delivery monitoring Banner auto-check AdminConsole auto-test
  • 5. AdServerプロジェクトにおける mabl ● なぜ mabl を選んだか ○ Regressionテスト自動化を最低限のメン テナンスコストで実現したい ○ 複雑なセットアップが不要 / 低い学習コ スト ○ AI による自動修復能力 ● これまでの流れ ○ 11月中旬: テストスクリプト作成開始 ○ 12月末: Stgでのデイリー実行開始 ○ 1月以降 : 拡張中 ● 関連データ: ○ 3 mabl テストプラン (Stg) ○ 44 mabl テスト (Stg) ○ 1,448 テスト / 48,789ステップを1月に実行
  • 6. ● Introduction ○ LOB, Inc. ○ Rakuten AdServer (Tentative Name) ○ How LOB QA team is wokring ○ mabl in AdServer project ● Webアプリのテスト自動化における 一般的な論点と困難な点について => mabl ではどう解決できるか ○ Record & Re-Run ? ○ プログラミングスキルが必要 ? ○ 動的な要素 ○ テストスクリプトの見やすさ ○ 複数環境 (Dev / Stg / Prod) ● まとめ
  • 7. mabl での Record & Re-Run ● 誰でもすぐに操作を録画 & 再実行することでテスト自動化を始められます ● その後テストスクリプトに対してアサーション、安定化、スピードアップ、再利用しや すさ等のため手作業は必要です(当たり前かもしれませんが) <テスト安定性についての実例> まずこのアイテムをクリック するステップを作成 その後、別のアイテム が作成される するとテストステップはこの 新しいアイテムをクリックす るようになってしまう <解決方法> ● XPath //a[text()="AutoCreate 20200212"] この場合は //tbody/tr[1]/td[2]/a ではなく ● mablの ”Configure Find” 機能
  • 8. プログラミングスキルが mablで必要か ● XPath の知識は必須 ● 変数を利用すれば便利 (フロー、if条件等も同様) ● JavaScript を利用することも可能 mablがまだ実現していないことにつ いては ● 例: JavaScriptが必要になる場合 ○ Date & Time ○ 要素の数 (これについては最近サポートされました ! )
  • 9. 動的な要素と mabl ● 要素の情報が Chromeデベロッパーツールで得られない場合、自動化テストステップの 作成は困難(一般的に) ● mablでは単純に ”録画 & 再実行” することがそのような要素に対しても可能 さらに、その後 “Configure find” も活用できる (ただ、時々 “Configure find” が必要な属性を示してくれない時もある?)
  • 10. テストステップの見やすさ ● mablの “録画 & 再実行” でテストステップを作成する場合、および XPathを使う場合、 ステップの記述が他メンバーやレビュアーにとって分かりにくくなりがち ● チェック項目の目的や実際にやっていることをどう関係者に示せばよい? ● mabl では以下が可能: ○ Annotation ○ Echo ○ 関係者を mablの “Viewer”メンバー として招待 ● (ただ、今でも発表者はベストプラクティスを模索中)
  • 11. 複数環境 (Dev/Stg/Prd) と mabl ● mablでは WebアプリのURLとログイン認証情報を変えることにより同一のテストを複 数環境(Dev/Stg/Prd) で実行可能 ● mabl 内で定義される環境変数の利用も可能 ● (ただしブランチのサポートは満足できないレベル) ○ mabl プランをスケジューラーやデプロイをトリガーにして実行する場合、”master” しか選べない ○ ブランチがマージできるのは “master” へのみ
  • 12. まとめ mabl: クイックにテスト自動化を始め、進化 させるための良い選択肢です! 最近サポートされた新機能の例: • 要素の数 • テスト結果通知時の slack groupへのメンション • mabl CLI (コマンドラインインターフェース) • iframe のサポート . . . そして今後も新しいものがサポートされていく と思います。(例えばタイムゾーン等) https://help.mabl.com/changelog
  • 13. ありがとうございました! / Thank you ! 追記:LOB QAメンバーは JaSST (Japan Symposium on Software Testing) の英語セッションの コーディネートをしています。次ページのスライドもよろしければご参照ください。 Additional Note: LOB QA member is coordinating English sessions of JaSST (Japan Symposium on Software Testing). Please see the next slide if you are interested.
  • 14. JaSST 東京 英語セッション 2020 Being Agile about Architecture Mr. Joseph W. Yoder (Refactory CEO) QA2AQ u– Being Agile at Quality: Values, Practices, and Patterns Date: Mar 9 and 10, 2020 Venue: TOKYO BIG SIGHT http://www.bigsight.jp/english/ Unofficial mobile application Hashtag: #JaSSTES http://jasst.jp/symposium/jasst20tokyo.html チュートリアル 基調講演 ドクトラルシンポジウム グローバルチームマネジメン ト 国際標準の ISO/IEC/IEEE 29119 series に基づくテス トの現在と未来 ソフトウェアの品質予測の ための品質特性に基づい た不具合データの分類手 法の提案 ほか