Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Multi-Browser Testing Strategy Map

Multi-Browser Testing Strategy Map

In DevOps, test is required to be automated. multi-browser testing is also so.
However, multi-browser testing is not easy now.

To guide you to multi-browser testing, I create "Multi-Browser Testing Strategy Map".
You should grow your multi-browser testing and find your best position in "Multi-Browser Testing Strategy Map".

AHA_oretama

July 20, 2019
Tweet

More Decks by AHA_oretama

Other Decks in Programming

Transcript

  1. 2 Confidential - Do Not Share Automation&QA Group(通称AQA)
 • 2018/8にMercariジョイン


    • テスト自動化
 ◦ Appium, WebdriverIO, Espresso…
 ◦ CI/CD
 
 Links
 • https://twitter.com/AHA_oretama
 • https://github.com/aha-oretama
 • https://www.slideshare.net/aha_oretama
 • https://speakerdeck.com/ahaoretama
 関根 康史
 おれたま@AHA_oretama
 

  2. 5 Confidential - Do Not Share 伝えたいこと • マルチブラウザの自動テストの必要性は高まっている •

    まだまだマルチブラウザの自動テストは簡単ではない • Multi-Browser Testing Strategy Mapを見て ステージを進めていく • 自分のプロジェクトに最適なマルチブラウザの 自動テストを見つけていく
  3. 8 Confidential - Do Not Share ブラウザシェア from: http://gs.statcounter.com/ Chrome

    Safari IE Firefox Edge Samsung Internet Android Opera UC Browser Other 45% 33% 8.5% 5.9% 4.5% 1.1% 0.7% 0.6% 0.3% 1.1%
  4. 12 Confidential - Do Not Share Safari in macOS supports

    W3C from: https://webkit.org/blog/6900/webdriver-support-in-safari-10/
  5. 13 Confidential - Do Not Share Microsoft Edge supports W3C

    from:https://blogs.windows.com/msedgedev/2018/06/14/webdriver-w3c-recommenda tion-feature-on-demand/
  6. 14 Confidential - Do Not Share Safari in iOS supports

    W3C from: https://webkit.org/blog/9395/webdriver-is-coming-to-safari-in-ios-13/
  7. 15 Confidential - Do Not Share Internet Explorer not support

    W3C from: https://www.seleniumhq.org/download/
  8. 22 Confidential - Do Not Share Safariでは、”Get Element Text”の仕様を満たしていない ☓

    HTMLタグを除いたテキストが取得される ◦ 表示されているままのテキスト W3Cに準拠していないケース <p>test<br>text</p> ⇒ testtext ⇒ test\ntext
  9. 23 Confidential - Do Not Share W3Cの判断が分かれるケース ⇒ クリック可 ⇒

    エラー $(‘select[name=”year”].option[value=”2000”]’).click()
  10. 30 Confidential - Do Not Share モバイル Mobile Emulate etc

    or Mobile Emulateなら デスクトップと同じ構成でできる
  11. 31 Confidential - Do Not Share モバイル Mobile Emulate etc

    or 実機の管理 or Emulator/Simulatorの準備 → 開発環境、CI環境への影響
  12. 32 Confidential - Do Not Share • デスクトップ、モバイルのすべてに対応すると組み合わせが 非常に多くなる •

    特定のOSでしか動かないブラウザがあるため 開発環境、CI環境の構築・メンテナンスが難しくなる 問題点②
  13. 33 Confidential - Do Not Share • デスクトップ、モバイルのすべてに対応すると組み合わせが 非常に多くなる •

    W3Cで標準化されているが、まだまだブラウザ独自の対応が必要 • 特定のOSでしか動かないブラウザがあるため 開発環境、CI環境の構築・メンテナンスが難しい ここまでのまとめ
  14. 37 Confidential - Do Not Share UIテストを始めたばかり。 初心者がとどまりやすい状態。 代表例 -

    ローカルCI実行 - 1ブラウザのみ ここを抜けるためには、 ・自動テストに知見のある人の協力 ・自動テストの専任の人のアサインが 必要なことが多い。 Start
  15. 38 Confidential - Do Not Share 機能テストを高速で実行する状態 代表例 - 1〜2ブラウザ

    - Selenium Grid on Cloud - Grid数を増やせば時間が減る。 時間が減るほど 実行タイミングを増やしていく。 • QA環境へのデプロイ • プルリクエスト Functional Testing
  16. 40 Confidential - Do Not Share マルチブラウザで高速に実行する メンテナンスコスト、SaaS利用料が高 い。 代表例

    - Sauce Labs - マルチブラウザ メンテナンスコスト、利用料、 ブラウザの必要性を比較しつつ 必要性に合わせてブラウザを 増やしていく。 Full DevOps
  17. 41 Confidential - Do Not Share - Sauce Labs -

    BrowserStack - Aerokube - etc 同時実行数で決まるため、高速化×ブラウザ×OSをすると、 けっこうな利用料がかかる アップデートや保守は自動でやってくれる 月単位なのでいきなり使うとコスパは悪いイメージ Browser Testing SaaS
  18. 42 Confidential - Do Not Share 時間がかかっても マルチブラウザで品質を保証したい場 合のみ 代表例

    - Local Test in Jenkins Slave - ブラウザは複数 リリース速度捨ててでも 品質を重要視しているケース Non DevOps
  19. 44 Confidential - Do Not Share 以下のタイミングでブラウザの自動テスト を実施中 or 検討中

    - プルリクエスト - Functional Testing - Chrome, Chrome Mobile Emulate - テストケース絞る or APIをモック化 - QA環境デプロイ - Functional Testing - Chrome, Firefox, Chrome Mobile Emulate - 全機能テスト - 本番リリース時 - 上記に加えてテストケースをある程度絞り Safari、Safari Mobile、EdgeをSaaSで実行 Mercariでは?
  20. 47 Confidential - Do Not Share Multi-Browser Testing Strategy Mapを見て

    ステージを進めていく 自分のプロジェクトに最適な マルチブラウザの自動テストを 見つけていく まとめ