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

MagicPodで始めるがんばらない回帰試験の自動化​/Automated Regression Testing Journey with MagicPod​

gkzz
July 14, 2023

MagicPodで始めるがんばらない回帰試験の自動化​/Automated Regression Testing Journey with MagicPod​

【有料プランユーザー様限定×オフライン】MagicPodユーザーLT会
https://trident-qa.connpass.com/event/283709/

gkzz

July 14, 2023
Tweet

More Decks by gkzz

Other Decks in Technology

Transcript

  1. 自己紹介 2 § ۄ໦ַ࣐ / Gakuji Tamaki § αΠϘ΢ζגࣜձࣾ QAΤϯδχΞ

    § αΠϘ΢ζ Office ϞόΠϧͷQAۀ຿ § MagicPodを使ったE2E自動テストの設計と運用 § Twitter: @gkzvoice § झຯ: ଍Λ͖ͭͳ͕Β ࣗసंͰࢁΛొΔ͜ͱ
  2. § 1.前提 § 2.MagicPodの導⼊経緯 § 3.MagicPodをこんなふうに使っています § 4.MagicPodで回帰試験の⾃動化をやってみてよかったこと § 5.MagicPodで回帰試験の⾃動化の失敗談と学び

    § 6.MagicPodではじめるがんばらない回帰試験の⾃動化の⼀例 § 7.MagicPodで回帰試験の⾃動化、その先に⾒据えること § 8.このLTで⼀番お伝えしたいこと 6 ⽬次
  3. § 1.前提 § 2.MagicPodの導⼊経緯 § 3.MagicPodをこんなふうに使っています § 4.MagicPodで回帰試験の自動化をやってみてよかったこと § 5.MagicPodで回帰試験の⾃動化の失敗談と学び

    § 6.MagicPodではじめるがんばらない回帰試験の⾃動化の⼀例 § 7.MagicPodで回帰試験の⾃動化、その先に⾒据えること § 8.このLTで⼀番お伝えしたいこと 7 ⽬次
  4. § 1.前提 § 2.MagicPodの導入経緯 § 3.MagicPodをこんなふうに使っています § 4.MagicPodで回帰試験の自動化をやってみてよかったこと § 5.MagicPodで回帰試験の⾃動化の失敗談と学び

    § 6.MagicPodではじめるがんばらない回帰試験の自動化の一例 § 7.MagicPodで回帰試験の自動化、その先に見据えること § 8.このLTで一番お伝えしたいこと 10 目次
  5. 19 2-1.なぜ自動テストを導入したのか? 機能A 機能B 機能C 機能A 機能B 機能A 参考: https://icooon-mono.com/11324-サラリーマン/

    , https://www.browserstack.com/guide/regression-testing を参考に筆者作成 スプリント 試験のボリューム/スプリント スプリントを重ねるごとに 試験は増えるばかり。
  6. 20 2-1.なぜ自動テストを導入したのか? 機能A 機能B 機能C 機能A 機能B 機能A 参考: https://icooon-mono.com/11324-サラリーマン/

    , https://www.browserstack.com/guide/regression-testing を参考に筆者作成 スプリント 試験のボリューム/スプリント スプリントを重ねるごとに試験は 増えるばかり。 一方でQAの人手は増えません、、。
  7. 21 2-1.なぜ自動テストを導入したのか? 機能A 機能B 機能C 機能A 機能B 機能A 参考: https://icooon-mono.com/11324-サラリーマン/

    , https://www.browserstack.com/guide/regression-testing を参考に筆者作成 スプリント 試験のボリューム/スプリント ところで、 増え続ける試験には ある特徴がありました、、!
  8. 22 2-1.なぜ自動テストを導入したのか? 機能A 機能B 機能C 機能A 機能B 機能A 参考: https://icooon-mono.com/11324-サラリーマン/

    , https://www.browserstack.com/guide/regression-testing を参考に筆者作成 スプリント 試験のボリューム/スプリント 増え続けるのは 回帰試験だけ! 新機能分の試験は毎回同じくらい
  9. 23 2-1.なぜ自動テストを導入したのか? 機能A 機能B 機能C 機能A 機能B 機能A 参考: https://icooon-mono.com/11324-サラリーマン/

    , https://icooon-mono.com/16067-ロボットアイコン1/ https://www.browserstack.com/guide/regression-testing を参考に筆者作成 スプリント 試験のボリューム/スプリント 増え続ける 回帰試験を 自動化しよう!
  10. 33 参考: Janet Gregory, Lisa Crispin,『Agile Testing Condensed Japanese Edition』,

    2019, p7 "Agile Testing Condensed Japanese Edition" 私の理解 § リリースを早くする ≠ 品質を蔑ろにす る § 「最後にテストするのでははく、ずっと テストする」ようにチーム一丸で、かつ 常に品質保証と向き合うべき
  11. § 1.前提 § 2.MagicPodの導入経緯 § 3.MagicPodをこんなふうに使っています § 4.MagicPodで回帰試験の自動化をやってみてよかったこと § 5.MagicPodで回帰試験の自動化の失敗談と学び

    § 6.MagicPodではじめるがんばらない回帰試験の自動化の一例 § 7.MagicPodで回帰試験の自動化、その先に見据えること § 8.このLTで一番お伝えしたいこと 35 目次
  12. 36 ☆ アーカイブ NO.(^1) - iOS/Android ☆ GitHub Actions -

    GitHub Hosted Runner - Self Hosted Runner on Macbook @弊社オフィス ☆ iOS/Android 端末の試験環境 - MagicPod クラウド端末 - 弊社オフィスに置いてある実機端末 Schedule? ^1: アーカイブとは、それぞれ以下を指す。 試験環境が iOSシミュレータの場合は Appファイル、iOS 実機端末の場合は ipaファイル、Androidエミュレータ/実機端末の場合は apkファイル。 参考: https://support.magic-pod.com/hc/ja/articles/4408836787609 , https://github.com/logos , https://github.com/actions , https://magicpod.com/resources/brand ☆ MagicPodの定期実行の結果の記録 - 弊社のサービスのKintone 3.MagicPod をこんなふうに使っています
  13. § 1.前提 § 2.MagicPodの導入経緯 § 3.MagicPodをこんなふうに使っています § 4.MagicPodで回帰試験の自動化をやってみてよかったこと § 5.MagicPodで回帰試験の自動化の失敗談と学び

    § 6.MagicPodではじめるがんばらない回帰試験の自動化の一例 § 7.MagicPodで回帰試験の自動化、その先に見据えること § 8.このLTで一番お伝えしたいこと 37 目次
  14. 38 4.MagicPodで回帰試験の自動化をやってみてよ かったこと § みなさんがおっしゃるとおり使いやすく、すんなり導入できた ◎ § Se◯enium の初期セットアップが大変だった記憶があるので余計にすごく感じる §

    サポート力が尋常じゃない ◎ § 謎エラーに対するアドバイスには幾度なく助けられました § MagicPodのデグレが起きることがない ◎ § ツールとしての信頼性が高い
  15. § 1.前提 § 2.MagicPodの導入経緯 § 3.MagicPodをこんなふうに使っています § 4.MagicPodで回帰試験の自動化をやってみてよかったこと § 5.MagicPodで回帰試験の自動化の失敗談と学び

    § 6.MagicPodではじめるがんばらない回帰試験の自動化の一例 § 7.MagicPodで回帰試験の自動化、その先に見据えること § 8.このLTで一番お伝えしたいこと 39 目次
  16. 46 実機端末で自動テストする3つの難しさ n 実機端末の自動テスト環境の構築そのもの n 1台のMacbookと1台の実機端末の直列は用意できた n 並列複数台はドキュメントが乏しく茨の道 n 例)実機端末ごとにユニークなポートを割り当てても同じ端末でテストが走ってしまう問題

    n 実機端末の自動テスト環境のメンテ n 実機端末/Macbook/MagicPodDesktop/Xcodeなどのアップデート n Macbookと実機端末をつなぐケーブルの不調 n実機端末を使ったクリーンな試験環境を維持すること n 直前のテストケースが落ちたことを、後続のテストケースは知る術がない。テストケースの冒頭で落ちた場合のケアをすると実行時間が長く なるので避けたい。。。 n MagicPodDesktopのプロセスがゾンビ化することを防ぐ、、。
  17. § 1.前提 § 2.MagicPodの導入経緯 § 3.MagicPodをこんなふうに使っています § 4.MagicPodで回帰試験の自動化をやってみてよかったこと § 5.MagicPodで回帰試験の自動化の失敗談と学び

    § 6.MagicPodではじめるがんばらない回帰試験の自動化の一例 § 7.MagicPodで回帰試験の自動化、その先に見据えること § 8.このLTで一番お伝えしたいこと 47 目次
  18. 52 "クラウドにアップロードしたファイルを選択でき る"と何がうれしいのか? 参考: https://github.com/Magic-Pod/japanese-issue-and-doc/issues/516 予めPCに配置したアーカイブで MagicPodDesktopと端末などを起動 テストケース開始直後にバージョン アップ前のアーカイブをインストール テストケース中にリリース予定の

    アーカイブをインストール これまではクラウド端末上でテストケース 中にアーカイブをインストールする手段が なかった。 そのため、バージョンアップ試験は実機端 末とTestFlight/Firebase App Testerを使って バージョンアップ後のアーカイブをインス トールすることで自動化していた。
  19. 53 "クラウドにアップロードしたファイルを選択でき る"と何がうれしいのか? 参考: https://github.com/Magic-Pod/japanese-issue-and-doc/issues/516 ところが、"クラウドにアップロードしたファ イルを選択できる"機能があることで、テス トケース中に「リリース予定のアーカイ ブ」(^1)をインストールすることができるよ うになった。

    そのため、バージョンアップ試験の試験環 境は実機端末からMagicPodのクラウド端末 へ移行することができた。 ^1:「リリース予定のアーカイブ」は「MagicPodに最後にアップロードされたアーカイブ」 と いう制約はある。 バージョンアップ前の アーカイブでMagicPod のクラウド端末を起動 テストケース中にリ リース予定のアーカイ ブをインストール
  20. 55 ☆ アーカイブ NO.(^1) - iOS/Android ☆ GitHub Actions -

    GitHub Hosted Runner - Self Hosted Runner on Macbook @弊社オフィス ☆ iOS/Android 端末の試験環境 - MagicPod クラウド端末 - 弊社オフィスに置いてある実機端末 Schedule? ^1: アーカイブとは、それぞれ以下を指す。 試験環境が iOSシミュレータの場合は Appファイル、iOS 実機端末の場合は ipaファイル、Androidエミュレータ/実機端末の場合は apkファイル。 参考: https://support.magic-pod.com/hc/ja/articles/4408836787609 , https://github.com/logos , https://github.com/actions , https://magicpod.com/resources/brand ☆ MagicPodの定期実行の結果の記録 - 弊社のサービスのKintone MagicPod をこんなふうに使っています(再掲)
  21. § 1.前提 § 2.MagicPodの導入経緯 § 3.MagicPodをこんなふうに使っています § 4.MagicPodで回帰試験の自動化をやってみてよかったこと § 5.MagicPodで回帰試験の自動化の失敗談と学び

    § 6.MagicPodではじめるがんばらない回帰試験の自動化の一例 § 7.MagicPodで回帰試験の自動化、その先に見据えること § 8.このLTで一番お伝えしたいこと 59 目次
  22. § 1.前提 § 2.MagicPodの導入経緯 § 3.MagicPodをこんなふうに使っています § 4.MagicPodで回帰試験の自動化をやってみてよかったこと § 5.MagicPodで回帰試験の自動化の失敗談と学び

    § 6.MagicPodではじめるがんばらない回帰試験の自動化の一例 § 7.MagicPodで回帰試験の自動化、その先に見据えること § 8.このLTで一番お伝えしたいこと 61 目次
  23. 70 参考資料 n Regression Testing : Definition, How it works

    | BrowserStack, https://www.browserstack.com/guide/regression-testing , 2023/07/14 n Appファイルの作成方法 – MagicPodヘルプセンター, https://support.magic- pod.com/hc/ja/articles/4408836787609 , 2023/07/14 n スタートガイド:5.テスト自動化の習慣を最速で定着させる(モバイルアプリ) – MagicPodヘルプセン ター, https://support.magic-pod.com/hc/ja/articles/7515195778457 , 2023/07/14 n 一括テスト実行・コマンドラインテスト実行(ローカルPCテスト) – MagicPodヘルプセン ター, https://support.magic-pod.com/hc/ja/articles/6468420020633 , 2023/07/14 n クラウドアップロードした任意のAppファイル(アーカイブ)をMagicPodのクラウド環境下でインストールできるよ うにする · Issue #516 · Magic-Pod/japanese-issue-and-doc, https://github.com/Magic-Pod/japanese-issue-and- doc/issues/516 , 2023/07/14 n iOSの実行時間がAndroidよりも遅い – MagicPodヘルプセンター, https://support.magic- pod.com/hc/ja/articles/20127503942425 , 2023/07/14 n グラフ機能の概要 | kintone ヘルプ, https://jp.cybozu.help/k/ja/user/app_settings/report.html , 2023/07/14