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で自動化率を爆上げしたハナシ.pdf
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Kohei Tai
April 26, 2023
Technology
290
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
MagicPodで自動化率を爆上げしたハナシ.pdf
Kohei Tai
April 26, 2023
More Decks by Kohei Tai
See All by Kohei Tai
MagicPodを利用して回帰テストを自動化している話
kotatoshi
0
56
スクラム開発でアジャイルテスティングを実施し、リリースサイクルを早めた話.pdf
kotatoshi
0
59
Other Decks in Technology
See All in Technology
AI時代に、プロダクトの数だけ積み上がる所有コストをどうエンジニアリングするか / Engineering the Cost of Ownership
kzkmaeda
0
960
スクラムで身についていた動き方を、XPで捉え直してみた
codmoninc
1
190
Backstageでつくるセルフサービスな社内開発基盤
kikunosuke75
1
240
ブラウザアプリの継続的パフォーマンスモニタリング (序) / Continuous Browser Application Performance Monitoring; Act 1
moznion
0
110
作り直せるコードは迅速に 作り直せないDBは慎重に - AI時代のプロダクトエンジニアが「判断の不可逆性」で開発速度を変える話
kinosuke01
0
210
【視聴者参加型!】AWSセキュリティアンチパターンクイズ
syoshie
0
340
IDperturb: Enhancing Variation in Synthetic Face Generation via Angular Perturbation
sansantech
PRO
0
140
Bet AI Day 2026丨How We Bet AI: AIとともに働く場をつくる
layerx
PRO
1
2.1k
AI時代におけるプロダクト横断勉強会の設計
zozotech
PRO
0
150
AIエージェントの開発・提供におけるセキュリティリスクの論点と対策
flatt_security
1
560
Claude Codeの体系的な理解と知識のフック
oikon48
10
6.7k
Jetpack Compose で挑む新聞紙面UI ─ 複合ジェスチャー・ポリゴン記事領域・適応的ページ構成という3つの壁/droidkaigi2026
nikkei_engineer_recruiting
0
190
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
520
GraphQLとの向き合い方2022年版
quramy
50
15k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.3k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
How to Ace a Technical Interview
jacobian
281
24k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
490
How to make the Groovebox
asonas
2
2.4k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
[SF Ruby Conf 2025] Rails X
palkan
2
1.3k
The Language of Interfaces
destraynor
162
27k
Transcript
MagicPodで自動化率を爆上げしたハナシ 2023.04.26
Copyright (C) nohana, Inc. All rights reserved. トピック • 自己紹介&会社紹介
• MagicPodの導入経緯 • MagicPodでの回帰テスト自動化 • 回帰テストの手動と自動の工数比較 • 回帰テストの自動化率 • CircleCIによる定期実行 • ライブチェックの自動化 • ダッシュボード(進行中) • MagicPodでやっていること • 抱えている課題&改善してほしい点 • 今後の取り組み • 最後に
Copyright (C) nohana, Inc. All rights reserved. 自己紹介 Copyright (C)
nohana, Inc. All rights reserved. 田井 康平 • 株式会社ノハナ ◦ サービスデザイン部 品質管理グループ ▪ QAエンジニア • 以前はテスト専門の会社に所属 • 趣味:読書、ドライブ(スイーツ巡り)、飛行機を見ること • プログラミングの知識はほぼなし • Twitter: @kotatoshi
Copyright (C) nohana, Inc. All rights reserved. ノハナの紹介 Copyright (C)
nohana, Inc. All rights reserved. • フォトブックアプリ、年賀状アプリの開発 通常フォトブック 毎月1冊無料でつくれるスタンダードタイプ。 高画質仕上げ、表紙デザインやギフト包装など、用途で選べるオプ ションも豊富にご用意しています。 定期的な写真のまとめや、月齢アルバムにおすすめです。 プレミアムフォトブック 高精細な写真画質仕上げの 銀塩ハードカバータイプ。 レイフラット製本で迫力の見開き写真が実現、最大89枚(表紙含む) の写真が入ります。 特別なイベントや、1年ごとの思い出の記録におすすめです。
Copyright (C) nohana, Inc. All rights reserved. ノハナの紹介 Copyright (C)
nohana, Inc. All rights reserved. かざる、差し替えるに特化した「 フォトカード+フレーム 」 スマホで選んだ写真を、専用のましかくフレームに飾ることができ、お気に入りの写 真を気軽に差し替えて毎日楽しむことができます。
Copyright (C) nohana, Inc. All rights reserved. MagicPodの導入経緯 テスト観点作成
開発(2weeks) テスト(2weeks) 全体 QA テスト観点 レビュー テストケース 作成 機能テスト実行 機能テスト結果 レビュー テストケース レビュー 回帰テスト実行 回帰テスト実行 結果レビュー ライブチェック 開発(2weeks) リリーススプリント(1week) 回帰テスト実行 全体 QA 開発&テスト(2weeks) テスト観点作成 テスト観点 レビュー テスト観点ベー スの 探索的テスト 全体 QA 回帰テスト実行 スプリント レビュー スプリント レビュー スプリント レビュー テスト観点作成 テスト観点 レビュー プレQA (探索的テスト) テストケース作 成 機能テスト実行 テストケースレ ビュー リリース リリース リリース ライブチェック ライブチェック ⭐スクラム開発導入前(オフショアでテストをしていたとき) ⭐スクラム開発導入後(開発期間とテスト期間でスプリントをわけていたとき) ⭐スクラム開発の現状
Copyright (C) nohana, Inc. All rights reserved. MagicPodの導入経緯 Copyright (C)
nohana, Inc. All rights reserved. • 導入前(2017年ごろ) ◦ 回帰テスト、ライブチェックともに全て手動で実施 ▪ 回帰テストはオフショアで実施してたこともあり ◦ 回帰テストは手動で1日かかっていた ▪ 短いサイクルでのリリース(スクラム開発)を進める中で早く回帰テストを完 了させることが重要になってきた • 前任のQAマネージャーと自動テスト導入を検討
Copyright (C) nohana, Inc. All rights reserved. MagicPodの導入経緯 Copyright (C)
nohana, Inc. All rights reserved. • 導入理由 ◦ プログラミング(コーディング)のスキルがいらない ▪ シナリオ作成が簡単 ▪ 個人のスキルに依存しない ◦ 価格がリーズナブル ◦ サーバーなど自前で準備不要(メンテやアップデート含め) ◦ 共有ステップでシナリオ間でテストを共有できる
Copyright (C) nohana, Inc. All rights reserved. MagicPodの導入経緯 Copyright (C)
nohana, Inc. All rights reserved. • 導入理由 ◦ シークレット変数が使える ▪ DBへのアクセス情報など含め ◦ サポートが早い ▪ メールやSlackなどで随時対応してくれる ◦ 自動修復機能 ▪ 提案だけしてくれるので、こちら側で承認するか決められる ◦ 外部ツールとの連携 ▪ Slackへの結果通知、Jenkinsのジョブ実行、CIからの自動実行
Copyright (C) nohana, Inc. All rights reserved. MagicPodでの回帰テスト自動化(活用) Copyright (C)
nohana, Inc. All rights reserved. • 共有ステップ • 組み合わせのサンプル(実際の組み合わせではありません) ◦ この場合だと5シナリオある ▪ それぞれで個別にテストケースを作成するとそれだけでも大変 ◦ 仕様変更時などのたびに5つのシナリオを修正する必要がある ◦ 実際のテストではもっと多いパターンもあることが多い → 共有ステップで対応
Copyright (C) nohana, Inc. All rights reserved. MagicPodでの回帰テスト自動化(活用) Copyright (C)
nohana, Inc. All rights reserved. • 共有ステップ • 共有ステップ内ではデータパターンの値をもとに条件分岐を導入 ◦ 例:商品選択の共有ステップで、色が◯◯である場合、◯◯を選択する • 最初に共有ステップを作る時間はかかった ◦ その後は流用できるので全体工数としては少なく済んだ 共有ステップのメリット • 使い回し可能 • 修正時に1つのシナリオ修正でOK • 修正工数の削減
Copyright (C) nohana, Inc. All rights reserved. 回帰テストの手動と自動の工数比較 Copyright (C)
nohana, Inc. All rights reserved. • 自動テストは失敗時のメンテコスト含む • 自動テストの作成工数は除く • バージョンは仮 Android 手動で全て実施 自動テストが少し安定 してきたころ 期間は2年ぐらい オフショアから内製に 切り替え
Copyright (C) nohana, Inc. All rights reserved. 回帰テストの手動と自動の工数比較 Copyright (C)
nohana, Inc. All rights reserved. • 自動テストは失敗時のメンテコスト含む • 自動テストの作成工数は除く • バージョンは仮 iOS テストケース見 直しのため 自動化初期はエラー になるケースが多い 期間は2年ぐらい オフショアから内製に 切り替え
Copyright (C) nohana, Inc. All rights reserved. 回帰テストの手動と自動の工数比較 Copyright (C)
nohana, Inc. All rights reserved. • 全体工数が減ったタイミング ◦ オフショアでの手動テストから内製での手動テストへの切り替え ◦ 自動テストの増加 • 全体工数が増えたタイミング ◦ テストケースの見直し ◦ エラーのため手動で実施 ◦ エラーが大量に発生しメンテナンスが必要 ▪ テストケースの修正漏れ(修正箇所を全て修正してないケースなど) ▪ アプリを更新すると要素が見つからなくなることなどがある
Copyright (C) nohana, Inc. All rights reserved. 回帰テストの自動化率 Copyright (C)
nohana, Inc. All rights reserved. ※1Sprintは2週間 テストケース見 直しのため
Copyright (C) nohana, Inc. All rights reserved. 回帰テストの自動化率(Android) Copyright (C)
nohana, Inc. All rights reserved.
Copyright (C) nohana, Inc. All rights reserved. 回帰テストの自動化率(iOS) Copyright (C)
nohana, Inc. All rights reserved.
Copyright (C) nohana, Inc. All rights reserved. 回帰テストの自動化率 Copyright (C)
nohana, Inc. All rights reserved. • 現状、期初の予定とほぼ同じ進捗で推移 • Androidはそのまま(現状、追加で自動化できる箇所なし) • 今後も決済とiOSは自動化を進める予定 • Android&iOSともにCIで定期実行を行っている(テスト環境) ◦ デグレなどを早期検知するため • 定期実行の安定化 • リリース前の本番環境でのテスト
Copyright (C) nohana, Inc. All rights reserved. CircleCIによる定期実行 Copyright (C)
nohana, Inc. All rights reserved. • Android&iOSともに朝イチ定期実行を行っている ◦ Slackに結果を通知 • デグレなどを検知することができている • 結果の詳細はスプレッドシートに吐き出し、成功率を管理している
Copyright (C) nohana, Inc. All rights reserved. CircleCIによる定期実行 Copyright (C)
nohana, Inc. All rights reserved. Android 1年3ヶ月ぐらいの推移 0%は環境起因のエラーなど 数字が全然わからないので、、
Copyright (C) nohana, Inc. All rights reserved. CircleCIによる定期実行 Copyright (C)
nohana, Inc. All rights reserved. Android 今年に入ってからの推移 0%は環境起因のエラーなど
Copyright (C) nohana, Inc. All rights reserved. CircleCIによる定期実行 Copyright (C)
nohana, Inc. All rights reserved. iOS 4ヶ月ぐらいの推移 0%は環境起因のエラーなど
Copyright (C) nohana, Inc. All rights reserved. ライブチェック(リリース前テスト)の自動化 Copyright (C)
nohana, Inc. All rights reserved. • 回帰テスト完了後にリリース用アプリで基本機能のテストを実施 ◦ Android&iOSともに8割ぐらい自動化完了 ◦ Androidは約2年前から自動で実施 ◦ iOSは2023年1月からようやく自動化
Copyright (C) nohana, Inc. All rights reserved. ダッシュボード(進行中) Copyright (C)
nohana, Inc. All rights reserved. • magicpod-analyzerとBigQueryでダッシュボード作成中 ◦ 週2回のQAチームのもくもく会で(悪戦苦闘しながら)進行中
Copyright (C) nohana, Inc. All rights reserved. MagicPodでやっていること Copyright (C)
nohana, Inc. All rights reserved. • 通常のUI操作&確認以外 ◦ シミュレーターへの画像追加 ◦ DBへのデータ追加やデータ取得 ◦ メールの文面取得 ◦ Jenkinsのジョブ実行
Copyright (C) nohana, Inc. All rights reserved. 抱えている課題 Copyright (C)
nohana, Inc. All rights reserved. • テストが安定しないことがある ◦ 同じ環境やテストケースでもコケることがある ◦ 確認や対応にコストがかかっている • 条件分岐を多用するとテストケースがわかりにくくなる • UIがどのシナリオで使われているかわからない(使用数だけはわかるけど) ◦ UIが変更になった際に使用しているテストケースを見つけるのが困難
Copyright (C) nohana, Inc. All rights reserved. 抱えている課題 Copyright (C)
nohana, Inc. All rights reserved. • 共有ステップは便利だけど、部分実行できない ◦ 共有ステップ内の特定の場所でコケることがあり、確認のため共有ステップからコピペし て実行している(全部実行したくないケース) • iOSの実行時間が長い ◦ 手動テストよりも時間がかかってしまうケースがある ◦ Androidよりもシナリオ数は少ないが、倍以上かかる場合が多い ◦ 同じテスト内容でも、実行時間が2時間以上変わることがある ▪ 平均で2時間ぐらいかかるものだとして、1時間30分から3時間30分ぐらいと幅が大き い
Copyright (C) nohana, Inc. All rights reserved. 改善してほしい点(抱えてる課題に対して) Copyright (C)
nohana, Inc. All rights reserved. • テストが安定しないことがある ◦ 要素の指定方法で解決するのかもしれないですが、定期実行で前日成功したところが翌 日失敗するなど ◦ 自動修正の精度がさらに上がれば、少しは解決するかも ▪ #269 単体実行でも自動修復が発動するように • 条件分岐のセットがわかるようにしてほしい(#99 条件分岐コマンドのUX改善) ◦ Step数が多いテストケース内で複数の条件分岐が連続すると、 条件分岐終わりがどの条 件に対してか探すのが大変なことがある
Copyright (C) nohana, Inc. All rights reserved. 改善してほしい点(抱えてる課題に対して) Copyright (C)
nohana, Inc. All rights reserved. • UIがどのシナリオで使われているかわからない ◦ 使われている数はわかるけど、どのシナリオわからない ◦ 使用しているシナリオが簡単にわかると助かる • 共有ステップの部分実行(#300 共有ステップの編集画面でも端末を操作したい) ◦ 失敗したところだけ確認したいケースがある ◦ 現在は共有ステップ全てを実行するか、該当箇所をコピーして実行
Copyright (C) nohana, Inc. All rights reserved. 改善してほしい点(抱えてる課題に対して) Copyright (C)
nohana, Inc. All rights reserved. • iOSの実行スピードの改善 ◦ 要素の指定などで改善できるものなのか? • 実機とシミュレータでロケータが異なることがある ◦ 同じシナリオでも成功と失敗になるケース(アプリ側の問題?) ▪ 例えばview.ViewとTextViewで条件分岐をして対応 • 1スクショで1要素に複数のロケータを指定できたりすると便利かも ◦ 同じスクショが必要になってしまう
Copyright (C) nohana, Inc. All rights reserved. 改善してほしい点 Copyright (C)
nohana, Inc. All rights reserved. • キャプチャしたUIの移動(#149 共有UIを整理しやすく) ◦ セクションが多いと地味に面倒 ◦ 簡単にセクションを移動できると良さそう • バージョンアップの対応(#250 Magic Pod Desktopのバージョンアップをもっと快適 に) ◦ ZIPファイルではなく、サクッとアップデートできると助かる ▪ 動作が停止してしまうことが多い
Copyright (C) nohana, Inc. All rights reserved. 今後の取り組み Copyright (C)
nohana, Inc. All rights reserved. • テストの安定化 • テストケースのリファクタリング ◦ 都度変更を入れているので、ごちゃごちゃになってきている • 決済関連のテスト自動化 ◦ 現状は一部だけ自動化済み • ダッシュボードの作成(進行中)
Copyright (C) nohana, Inc. All rights reserved. 最後に Copyright (C)
nohana, Inc. All rights reserved. • トライアル(スタンダード)できるので、実際に試してみるのが良さそう • 初期コストはかかるものの、メンテコストはそこまで高くない • ノー(ロー)コードだと、属人化しないので誰でもできる • サーバーなど環境準備やメンテが不要 • 共有ステップの活用でメンテコスト削減できる • 自動化が難しいところは無理して自動化しないことが重要かも 今日お話しした内容の一部はブログでも公開していますので、ご覧ください!
None