Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
セーフィーにおけるMagicpod活用の歴史と改善の取り組み
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
森重 丈
March 03, 2025
Business
990
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
セーフィーにおけるMagicpod活用の歴史と改善の取り組み
森重 丈
March 03, 2025
Other Decks in Business
See All in Business
人生初のマネージャーというロールを 経験して得たもの・失ったもの / Reflections on My First Manager Role
mackey0225
0
780
OKRの本質 / Scrum Fest Osaka 2026
kawaguti
PRO
6
3.9k
SimpleForm 会社紹介資料
simpleform
2
58k
株式会社ナビタイムジャパン 会社紹介資料2026
navitimejapan
PRO
1
150
Company Profile
katsuegu23
2
15k
キャシュモグループ会社紹介|Company Profile
cashmo
1
130
RECRUIT DECK 株式会社KOBIRA 会社説明資料
kobira_official
PRO
0
6.8k
マルチプロダクト時代のPMM-Discoveryから0→1、Expansionまで フェーズで変わる期待役割とアサインの設計図
sasaguchi
0
430
三井物産グループのデジタル証券~名古屋・大規模レジデンス~徹底解説セミナー
c0rp_mdm
PRO
0
1.3k
なぜ勉強会だけでは浸透しないのか ~数百人規模の組織でコーディングエージェントを当たり前にした戦略とその結果~
sigma_sig
0
190
AIネイティブ時代における 開発組織の役割と拡張の可能性
recruitengineers
PRO
2
340
WHITEGLASSES BRAND BOOK | デジタル時代に勝てるキャリアを
whiteglasses2021
1
200
Featured
See All Featured
BBQ
matthewcrist
89
10k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
300
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
320
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Agile that works and the tools we love
rasmusluckow
331
22k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
Being A Developer After 40
akosma
91
590k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
230
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
520
Transcript
1 © Safie Inc.| セーフィーにおけるMagicpod活⽤の 歴史と改善の取り組み 森重 丈
2 © Safie Inc.| アジェンダ • ⾃⼰紹介 • 会社紹介 •
はじめに • MagicPod導⼊経緯/現在の活⽤⽅法 • セーフィーにおけるMagicPod活⽤と改善の歴史
3 © Safie Inc.| ⾃⼰紹介 • 森重 丈 • 経歴 ・オフィス機器メーカー
/テストエンジニア ・セーフィー/QAエンジニア ・MagicPodは1年半くらい • 趣味 ◦ バイク ◦ 釣り ◦ お酒
4 © Safie Inc.| 会社紹介
None
会社概要 設⽴年⽉ 従業員数 (2025年1⽉)*1 年間売上⾼ (FY2025予想) 課⾦カメラ台数 (2024年12⽉末)*3 At a
Glance 製品‧サービスの概要 *1 各⽉初の⼈数 *2 ARR Annual Recurring Revenue。各四半期末時点のMRR(Monthly Recurring Revenue)を12倍して算出。 MRRは対象⽉末時点における継続課⾦となる契約に基づく当⽉分の料⾦の合計額(販売代理店経由の売上を含む) *3 各四半期に販売したカメラ台数ではなく、各四半期末時点で稼働‧課⾦しているカメラ台数 2014年10⽉ 480⼈ 18,400百万円 29.3万台 クラウドドリブンなカメラOS 強固なセキュリティ 誰もが使える高品質なUI・UX 拡張性の高いプラットフォーム
7 © Safie Inc.| はじめに 登壇背景 • ユーザーインタビューの内容が他のMagicPodユーザーの参考になりそうとの ことで登壇依頼を受けた ユーザーインタビューで話題になった
• 導⼊経緯/現在の活⽤⽅法 • セーフィーのMagicPod史/改善活動 について詳細をお話したいとおもいます。
8 © Safie Inc.| MagicPodの導⼊経緯/現在の活⽤状況 導⼊経緯 • 増え続けるリグレッションテストを楽にしたい • 開発後半での不具合検出を避けたい
• MagicPodを選んだ理由 ◦ 低コスト ◦ 実⾏回数制限無し ◦ 社内QAエンジニアのスキルセット 活⽤状況 • 毎⽇リグレッションテストの⼀部(7~80ケース)実⾏ • リグレッションテストに掛かる⼯数を30%削減 • QAメンバー全員で実装/メンテナンスは分担
9 © Safie Inc.| セーフィーにおけるMagicPod活⽤と改善の歴史
10 © Safie Inc.| セーフィーにおけるMagicPod活⽤と改善の歴史 導⼊ 拡⼤ 安定
11 © Safie Inc.| 活⽤状況/困り事 MagicPod活⽤状況 • テストケース:10ケース程度 • 実⾏頻度:⽉1で開発後半に実⾏
• メンテナンス:実装者 導⼊初期の困り事 • ⽉1実⾏で多くテストケースが失敗 • メンテナンス作業が⼤変で⾃動テストが増やせない 導⼊初期 拡⼤期 安定期
12 © Safie Inc.| 困り事(詳細) • ⽉1実⾏で多くテストケースが失敗 ◦ ⽉1実⾏では画⾯の変更に追従できない ◦
不安定なロケータを使っていた • メンテナンスが⼤変で⾃動テストが増やせない ◦ 可読性の悪さ ▪ ロケータ名に領域(n)が多⽤ ▪ コメントや空⾏が適切に⼊れられてない ▪ 200⾏以上のステップ ◦ 保守性の低さ ▪ テスト対象のUIが1部分の変更されると複数の⾃動テストに影響してしまう 導⼊初期 拡⼤期 安定期
13 © Safie Inc.| 改善施策の検討 • ⽉1実⾏で多くテストケースが失敗 ◦ ⽉1実⾏では画⾯の変更に追従できない → ①⽉1実⾏から毎⽇実⾏へ ◦
不安定なロケータを使っていた → ②ロケータに対する理解不⾜。勉強会の実施。 • メンテナンスが⼤変で⾃動テストが増やせない ◦ 可読性の悪さ ▪ ロケータ名に領域(n)が多⽤ → ③実装ルールの制定 ▪ コメントや空⾏が適切に⼊れられてない → ③実装ルールの制定 ▪ 200⾏以上のステップ → ③実装ルールの制定 ◦ 保守性の低さ ▪ テスト対象のUIが⼀部分変更されると複数の⾃動テストに影響してしまう → ②共有 ステップする理解不⾜。勉強会の実施。 導⼊初期 拡⼤期 安定期
14 © Safie Inc.| 改善施策②勉強会の実施 • 対象者 ◦ MagicPodでテストケースを作成したことがあるメンバー ◦
MagicPodでテストケース作成したことないけど、メンテンスだけできるメンバー ◦ MagicPod触ったことないメンバー • ⽬標 ◦ 可読性/保守性を考慮したテストケースが作成できるようになること • 内容 ◦ MagicPodの基本的な操作の理解 ◦ ロケータの理解 ◦ 変数/条件分岐/共有ステップの活⽤⽅法の理解 • 形式 / 頻度 ◦ 資料精読(基本的にはMagicPodのスタートガイド) ◦ ハンズオン(週1で1時間) 導⼊初期 拡⼤期 安定期
15 © Safie Inc.| 改善施策②勉強会の実施 こちらは実際に勉強会を実施したときのNotion。 導⼊初期 拡⼤期 安定期
16 © Safie Inc.| 改善施策②勉強会の実施 ハンズオンの流れ ①お題の説明 ②実装(1回⽬) 普段通りに実装 ③各⾃実装、気づき‧感想の共有(1回⽬)
④実装(2回⽬) 共有ステップや条件分岐、変数について 説明したうえで再度実装 ⑤各⾃実装、気付き‧感想の共有(2回⽬) 導⼊初期 拡⼤期 安定期
17 © Safie Inc.| 改善施策③実装ルールの制定 • テストケースの先頭 ◦ コメント ▪
テスト名 ▪ テストケースのURL • テストケース中 ◦ ロケータ名 ▪ 領域(0)、ボタン(n)などNG ▪ 適切なロケータ名をつけること ◦ 確認ステップのあとには空⾏ • テストケース数 ◦ 100ステップを⽬安にする ◦ 200ステップ以上は分割する 導⼊初期 拡⼤期 安定期
18 © Safie Inc.| 改善施策③実装ルールの制定 • テストケースの先頭 ◦ コメント ▪
テスト名 ▪ テストケースのURL • テストケース中 ◦ ロケータ名 ▪ 領域(0)、ボタン(n)などNG ▪ 適切なロケータ名をつけること ◦ 確認ステップのあとには空⾏ • テストケース数 ◦ 100ステップを⽬安にする ◦ 200ステップ以上は分割する 導⼊初期 拡⼤期 安定期
19 © Safie Inc.| 改善施策③実装ルールの制定 • テストケースの先頭 ◦ コメント ▪
テスト名 ▪ テストケースのURL • テストケース中 ◦ ロケータ名 ▪ 領域(0)、ボタン(n)などNG ▪ 適切なロケータ名をつけること ◦ 確認ステップのあとには空⾏ • テストケース数 ◦ 100ステップを⽬安にする ◦ 200ステップ以上は分割する 導⼊初期 拡⼤期 安定期
20 © Safie Inc.| 改善効果 • ⽉1実⾏で多くテストケースが失敗 ◦ ⽉1実⾏では画⾯の変更に追従できない → ①⽉1実⾏から毎⽇実⾏へ:◎ ◦
不安定なロケータを使っていた → ②ロケータに対する理解不⾜。勉強会の実施。:△ • メンテナンスが⼤変で⾃動テストが増やせない ◦ 可読性の悪さ ▪ ロケータ名に領域(n)が多⽤ → ③実装ルールの制定:◎ ▪ コメントや空⾏が適切に⼊れられてない → ③実装ルールの制定:◎ ▪ 200⾏以上のステップ → ③実装ルールの制定:◎ ◦ 保守性の低さ ▪ テスト対象のUIが1部分の変更されると複数の⾃動テストに影響してしまう → 共有ス テップする理解不⾜。勉強会の実施。:△ 勉強会だけではスキルが定着せず。追加施策としてペアプロを追加導⼊。 導⼊初期 拡⼤期 安定期
21 © Safie Inc.| 改善施策③ペアプロ • MagicPod ペアプロで検索して出てきた記事を参考に実施 • ペア
◦ 社員メンバー+業務委託メンバーでペア ◦ 基本的には社員がナビゲーター、業務委託メンバーがドライバー • 利⽤したツール ◦ GoogleMeet • 頻度 ◦ 1⽇1時間 • 期間 ◦ 3ヶ⽉~4ヶ⽉程度ペアプロ実施 ◦ その後は各⾃実装しつつ、わからないことがあればペアに相談する形 導⼊初期 拡⼤期 安定期
22 © Safie Inc.| 改善効果 • ⽉1実⾏で多くテストケースが失敗 ◦ ⽉1実⾏では画⾯の変更に追従できない → ①⽉1実⾏から毎⽇実⾏へ:◎ ◦
不安定なロケータを使っていた → ②ロケータに対する理解不⾜。勉強会の実施+ペアプ ロ。:◎ • メンテナンスが⼤変で⾃動テストが増やせない ◦ 可読性の悪さ ▪ ロケータ名に領域(n)が多⽤ → ③実装ルールの制定:◎ ▪ コメントや空⾏が適切に⼊れられてない → ③実装ルールの制定:◎ ▪ 200⾏以上のステップ → ③実装ルールの制定:◎ ◦ 保守性の低さ ▪ テスト対象のUIが1部分の変更されると複数の⾃動テストに影響してしまう → 共有ス テップする理解不⾜。勉強会の実施+ペアプロ:◎ 勉強会+ペアプロでメンテナンス性の⾼いテストケースが作れるように。 導⼊初期 拡⼤期 安定期
23 © Safie Inc.| セーフィーにおけるMagicPod活⽤と改善の歴史 拡⼤
24 © Safie Inc.| 活⽤状況/困り事 MagicPod活⽤状況 • テストケース:20~60ケース程度、どんどんテストケースを作成していた • 実⾏頻度:毎⽇実⾏
• メンテナンス:曜⽇で持ち回りで毎⽇⼀⼈が担当 困り事 • あるテストケースがコケると他のテストケースもコケる • ⾃動テストの実⾏時間が増えた • ⼀⼈でメンテするのやや⾟くなってきた 導⼊初期 拡⼤期 安定期
25 © Safie Inc.| 困り事(詳細) • あるテストケースがコケると他のテストケースもコケる ◦ 複数テストケースで同じテストデータを使っていた ◦
どのテストケースが悪かったのか調査に時間が掛かる • ⾃動テストの実⾏時間が増えた ◦ ⼀括実⾏時に単⼀環境で実⾏ ◦ 実⾏上限時間 • ⼀⼈でメンテするのが⾟くなってきた ◦ 可読性/保守性⾼い⾃動テストでも数あると⼀⼈では⼤変 導⼊初期 拡⼤期 安定期
26 © Safie Inc.| 改善施策の検討 • あるテストケースがコケると他のテストケースもコケる ◦ 複数テストケースで同じテストデータを使っていた → ①テストデータの分離 ◦
どのテストケースが悪かったのか調査に時間が掛かる → ①テストデータの分離 • ⾃動テストの実⾏時間が増えた ◦ ⼀括実⾏時に単⼀環境で実⾏ → ②⼀括実⾏の⾒直し ◦ 実⾏上限時間 → ②⼀括実⾏の⾒直し • ⼀⼈でメンテするのが⾟くなってきた ◦ 可読性/保守性⾼い⾃動テストでも数あると⼀⼈では⼤変 → ③メンテナンス運⽤の変更 導⼊初期 拡⼤期 安定期
27 © Safie Inc.| 改善施策①テストデータの分離 テストデータを分離するためにルールを制定 • テストケース毎にテストデータは作成する • テストデータはテストケース番号を使って⼀意なものにする
◦ ユーザーアカウント ▪ OS+テストケース番号+作成順@~ ◦ カメラ名 ▪ OS+テストケース番号+作成順 導⼊初期 拡⼤期 安定期
28 © Safie Inc.| 改善施策②⼀括実⾏の⾒直し ⼀括実⾏設定のタグで実⾏する機能で並列実⾏しを実⾏時間を削減! • テストケースのタグ⾒直し ◦ ⼤きく機能単位でテストケースにタグ付けする
• ⼀括実⾏設定の⾒直し ◦ 並列実⾏できる⽤にタグ毎の 実⾏環境を⽤意する ◦ 並列実⾏設定のチェックボックスをONへ 導⼊初期 拡⼤期 安定期
29 © Safie Inc.| 改善施策③メンテナンス運⽤の⾒直し ⼀⼈ではなく、みんなでメンテナンスする体制の準備 • 分担準備 ◦ 改善施策②の⼀括実⾏の⾒直しですでに完了
• 担当 ◦ 分担表を作成、リリース毎に担当を⼊れ替える ◦ タグ毎に実⾏しているので担当分もわかりやすい 導⼊初期 拡⼤期 安定期
30 © Safie Inc.| 改善施策の効果 • あるテストケースがコケると他のテストケースもコケる ◦ 複数テストケースで同じテストデータを使っていた → ①テストデータの分離:◎ ◦
どのテストケースが悪かったのか調査に時間が掛かる → ①テストデータの分離:◎ • ⾃動テストの実⾏時間が増えた ◦ ⼀括実⾏時に単⼀環境で実⾏ → ②⼀括実⾏の⾒直し:◎ ◦ 実⾏上限時間 → ②⼀括実⾏の⾒直し:◎ • ⼀⼈でメンテするのが⾟くなってきた ◦ 可読性/保守性⾼い⾃動テストでも数あると⼀⼈では⼤変 → ③メンテナンス運⽤の変更 :◎ 多くのテストケースを安定してメンテナンスできるチーム/運⽤ができた! 導⼊初期 拡⼤期 安定期
31 © Safie Inc.| 今後の取り組み ‧⾃動化領域の拡⼤(PCブラウザ) ‧多⾔語テストの⾃動化(モバイルアプリ) ‧E2Eの⾃動テスト最適化 セーフィーにおけるMagicPod活⽤と改善の歴史(まとめ) 時期
困りごと 改善施策 導 ⼊ ‧テストケースの品質:悪 ‧テストケース増やせない ‧実⾏回数を増やす ‧コメント/空⾏ルール ‧勉強会の実施 ‧ペアプロの実施 拡 ⼤ テストケースが増えてきて ‧テストデータの依存 ‧実⾏時間増 ‧メンテナンス負荷の集中 ‧データ利⽤のルール化 ‧並列実⾏環境の整備 ‧メンテ負荷分散体制の構築 安 定 様々な改善施策を通じて安定的 に⾃動テストを運⽤できるよう に。
© Safie Inc.|32 ご清聴ありがとうございました Thank you!
33 © Safie Inc.| Appendix . 勉強会の内容(読み物) タイトル リンク MagicPodスタートガイド
https://support.magic-pod.com/hc/ja/sections/4408515646361-%E3%82%B9%E3%82%BF %E3%83%BC%E3%83%88%E3%82%AC%E3%82%A4%E3%83%89 導⼊初期に役⽴つTips(モバイルアプリ) https://support.magic-pod.com/hc/ja/articles/20621015915929-%E5%B0%8E%E5%85%A5 %E5%88%9D%E6%9C%9F%E3%81%AB%E5%BD%B9%E7%AB%8B%E3%81%A4Tips-%E3 %83%A2%E3%83%90%E3%82%A4%E3%83%AB%E3%82%A2%E3%83%97%E3%83%AA ページオブジェクトモデルの理解 https://qiita.com/RyomaMaeda/items/517cd5008da40b3fbcee https://tech-blog.rakus.co.jp/entry/20230523/e2etest MagicPod機能ガイド(条件分岐の活⽤) https://support.magic-pod.com/hc/ja/articles/4408909934617-%E6%9D%A1%E4%BB%B6 %E5%88%86%E5%B2%90%E3%81%AE%E6%B4%BB%E7%94%A8 MagicPod機能ガイド(変数の活⽤) https://support.magic-pod.com/hc/ja/articles/4408887437337-%E5%A4%89%E6%95%B0% E3%81%AE%E6%B4%BB%E7%94%A8 MagicPod機能ガイド(共有ステップの活⽤) https://support.magic-pod.com/hc/ja/articles/4408910141977-%E5%85%B1%E6%9C%89% E3%82%B9%E3%83%86%E3%83%83%E3%83%97%E3%81%AE%E6%B4%BB%E7%94%A8
34 © Safie Inc.| Appendix . 勉強会の内容(ハンズオン) ごめんなさい、これはテックブログで今度書きます。 https://engineers.safie.link/