$30 off During Our Annual Pro Sale. View Details »

MagicPodで実現するE2Eテスト自動化

Nozomi Ito
September 13, 2023

 MagicPodで実現するE2Eテスト自動化

Nozomi Ito

September 13, 2023
Tweet

More Decks by Nozomi Ito

Other Decks in Technology

Transcript

  1. MagicPodで実現する
    E2Eテスト⾃動化
    2023.9.12

    View Slide

  2. About me
    • 伊藤 望 (Ito Nozomi)
    • MagicPod CEO
    • ⾃動テストツール歴:約13年
    • Seleniumコミュニティ主宰
    • Twitter:@ito_nozomi

    View Slide

  3. 1. MagicPodの紹介
    2. MagicPodが実現したいこと
    3. MagicPod的ベストプラクティス
    4. 各種機能紹介
    Agenda

    View Slide

  4. 1. MagicPodの紹介
    2. MagicPodが実現したいこと
    3. MagicPod的ベストプラクティス
    4. 各種機能紹介

    View Slide

  5. MagicPod
    §Web & モバイルアプリのE2Eテスト⾃動化SasS
    §ノーコードで簡単にテスト作成
    §柔軟性とメンテナンス性が強み
    (magicpod.com)
    1. MagicPodの紹介

    View Slide

  6. エキスパートが作ったテストツール
    著者 翻訳者 コミッター
    1. MagicPodの紹介

    View Slide

  7. ご利⽤ユーザー様
    https://magicpod.com/customer-stories/
    1. MagicPodの紹介

    View Slide

  8. Demo
    1. MagicPodの紹介

    View Slide

  9. Webサイトテスト
    https://www.youtube.com/watch?v=p1lHiyj2dms
    1. MagicPodの紹介 - Demo

    View Slide

  10. モバイルアプリテスト
    https://www.youtube.com/watch?v=UQsw-q702PY
    1. MagicPodの紹介 - Demo

    View Slide

  11. 1. MagicPodの紹介
    2. MagicPodが実現したいこと
    3. MagicPod的ベストプラクティス
    4. 各種機能紹介

    View Slide

  12. 1. 開発⽣産性向上に寄与
    2. MagicPodが実現したいこと
    • 毎⽇テスト、常にテスト
    • 問題の早期検出で⽣産性が向上
    開発期間
    😁
    リリース

    View Slide

  13. 2. 継続的デリバリーの実現を⽀援
    2. MagicPodが実現したいこと
    • 1⽇何回も、好きなタイミングで変更を本番環境にデプロイ
    • あらゆるレベルのテストを⾃動化する必要がある
    本番
    デプロイ
    本番
    デプロイ
    本番
    デプロイ
    本番
    デプロイ

    View Slide

  14. Daily Test/Deployを実現した
    ユーザーが増えている
    2. MagicPodが実現したいこと

    View Slide

  15. 2. MagicPodが実現したいこと

    View Slide

  16. 2. MagicPodが実現したいこと
    家族アルバム みてねの安定リリースを⽀えるMagicPod活⽤状況

    View Slide

  17. 2. MagicPodが実現したいこと
    『スタディサプリ 中学講座』における E2E Test の運⽤と計測による改善

    View Slide

  18. 2. MagicPodが実現したいこと
    ⾼い開発⽣産性を実現するために取り組んだMagicPodの利活⽤

    View Slide

  19. 1. MagicPodの紹介
    2. MagicPodが実現したいこと
    3. MagicPod的ベストプラクティス
    4. 各種機能紹介

    View Slide

  20. テストは毎⽇⾃動実⾏
    3. MagicPod的ベストプラクティス
    • 最新のソースコードを毎⽇ビルド‧デプロイし、テストを実⾏
    • ⼿動だと、担当者‧体制が変わった際に実施されなくなりがち
    • リリース直前だけ実⾏だと、問題が起きた時に時間がなくて放置
    しがち
    • 毎⽇の変更を随時反映していく⽅がメンテナンス難易度が低い

    View Slide

  21. テストはクラウドで実⾏
    3. MagicPod的ベストプラクティス
    • MagicPodクラウド、BrowserStack、SauceLabsのいずれか
    • ローカルPCだと、トラブルでテスト実⾏に時間がかかり、⼼理
    的ハードルが⾼くなる
    - モバイル実機の接続トラブル
    - MagicPodDesktopバージョンアップのトラブル
    - マシン環境トラブル

    View Slide

  22. 優先順位をつけて⾃動化する
    3. MagicPod的ベストプラクティス
    • 早めに何らかの成果を得ることが、⾃動化定着の近道
    • 優先順位をつけて⾃動化することが⼤切
    まずは正常系を
    カバー
    運⽤してみて、
    課題を洗い出す
    異常系は
    正常系のあと

    View Slide

  23. テスト間の依存関係を減らす
    3. MagicPod的ベストプラクティス
    • 分かりにくいエラーが減る
    • 失敗切り分けの難易度が下がる
    • 実現しやすいよう、MagicPod側も改善していきたい

    View Slide

  24. 共有ステップを積極的に使う
    3. MagicPod的ベストプラクティス
    • 画⾯が⼤きく変わった時のメンテナンスが楽
    • ⾃動修復は(現状)あらゆるケースに有効ではない

    View Slide

  25. ロケーターについて学ぶ
    3. MagicPod的ベストプラクティス
    • ロケーター編集できると、画⾯変更により強いテストが作れる
    • ⽂法について学べるコンテンツ
    - https://speakerdeck.com/nozomiito/roketawoxue-ndetesutozi-
    dong-hua-shang-ji-zhe-womu-zhi-sou
    - https://qiita.com/rllllho/items/cb1187cec0fb17fc650a
    - http://blog.bangboo.com/sub/xpath.html

    View Slide

  26. テストしやすいアプリケーションにする
    3. MagicPod的ベストプラクティス
    • 変わりにくいユニークIDをUI要素に付与する
    • テスト環境では⾃動テストしやすい設定にする
    - WebViewデバッグ有効化
    - ⾃動化しにくい機能を迂回する⽅法を⽤意
    • データを取得‧操作できるWeb APIを⽤意
    - データのクリア
    - 初期データのセットアップ
    - 内部IDの取得

    View Slide

  27. 1. MagicPodの紹介
    2. MagicPodが実現したいこと
    3. MagicPod的ベストプラクティス
    4. 各種機能紹介

    View Slide

  28. クロスブラウザ‧マルチ端末
    4. 各種機能紹介
    • 作ったテストをさまざまなブラウザ‧端末で実⾏
    • 並列実⾏もサポート

    View Slide

  29. Visual Regression Test
    4. 各種機能紹介
    • 画⾯キャプチャが期待値と⼀致するかチェック
    • デザイン崩れバグなどの検出が可能

    View Slide

  30. UI変更があった場合のテスト⾃動修復
    4. 各種機能紹介

    View Slide

  31. CI連携
    4. 各種機能紹介
    • Jenkins、GitHub Actions、 CircleCI、 Bitriseほか

    View Slide

  32. 各種メンテナンス⽀援機能
    4. 各種機能紹介
    UI定義共有
    共有ステップ データ駆動テスト
    変数
    条件分岐 履歴管理

    View Slide

  33. さまざまなコマンド
    4. 各種機能紹介

    View Slide

  34. 値チェック
    4. 各種機能紹介 ‒ さまざまなコマンド
    • 様々な条件で期待値チェック

    View Slide

  35. 各種ブラウザ操作
    4. 各種機能紹介 ‒ さまざまなコマンド

    View Slide

  36. 各種モバイル端末操作
    4. 各種機能紹介 ‒ さまざまなコマンド

    View Slide

  37. 各種モバイル端末操作
    4. 各種機能紹介 ‒ さまざまなコマンド
    画像アップロード
    フリーハンド図形描画
    端末回転
    スワイプ

    View Slide

  38. 各種モバイル端末設定
    4. 各種機能紹介 ‒ さまざまなコマンド
    地域
    タイムゾーン
    位置情報
    ⾔語

    View Slide

  39. 各種ユーティリティコマンド
    4. 各種機能紹介 ‒ さまざまなコマンド
    数値⽐較
    2段階認証突破
    正規表現
    四則演算

    View Slide

  40. ⽇付計算コマンド
    4. 各種機能紹介 ‒ さまざまなコマンド
    • 「明⽇の⽇付を⼊⼒」などの⽤途に

    View Slide

  41. HTTPリクエスト送信
    4. 各種機能紹介 ‒ さまざまなコマンド
    • DBの値チェックやデータクリアなどに

    View Slide

  42. 無料トライアルも可能です!

    View Slide