SlideShare a Scribd company logo
1 of 34
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.
● トライアル(スタンダード)できるので、実際に試してみるのが良さそう
● 初期コストはかかるものの、メンテコストはそこまで高くない
● ノー(ロー)コードだと、属人化しないので誰でもできる
● サーバーなど環境準備やメンテが不要
● 共有ステップの活用でメンテコスト削減できる
● 自動化が難しいところは無理して自動化しないことが重要かも
今日お話しした内容の一部はブログでも公開していますので、ご覧ください!
MagicPodで自動化率を爆上げしたハナシ

More Related Content

What's hot

3 Amigosの考え方で、独立したQAチームがアジャイルテストチームになるまでの話
3 Amigosの考え方で、独立したQAチームがアジャイルテストチームになるまでの話3 Amigosの考え方で、独立したQAチームがアジャイルテストチームになるまでの話
3 Amigosの考え方で、独立したQAチームがアジャイルテストチームになるまでの話
Koichiro Takashima
 
クラウドコストを最適化せよ!マルチクラウド時代に届けるクラウド活用2.0
クラウドコストを最適化せよ!マルチクラウド時代に届けるクラウド活用2.0クラウドコストを最適化せよ!マルチクラウド時代に届けるクラウド活用2.0
クラウドコストを最適化せよ!マルチクラウド時代に届けるクラウド活用2.0
Tomohisa Koyanagi
 

What's hot (20)

怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
 
エムスリーのQAチームが目指すもの
エムスリーのQAチームが目指すものエムスリーのQAチームが目指すもの
エムスリーのQAチームが目指すもの
 
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
 
3 Amigosの考え方で、独立したQAチームがアジャイルテストチームになるまでの話
3 Amigosの考え方で、独立したQAチームがアジャイルテストチームになるまでの話3 Amigosの考え方で、独立したQAチームがアジャイルテストチームになるまでの話
3 Amigosの考え方で、独立したQAチームがアジャイルテストチームになるまでの話
 
クラウドコストを最適化せよ!マルチクラウド時代に届けるクラウド活用2.0
クラウドコストを最適化せよ!マルチクラウド時代に届けるクラウド活用2.0クラウドコストを最適化せよ!マルチクラウド時代に届けるクラウド活用2.0
クラウドコストを最適化せよ!マルチクラウド時代に届けるクラウド活用2.0
 
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
 
テスト観点に関する取り組み事例
テスト観点に関する取り組み事例テスト観点に関する取り組み事例
テスト観点に関する取り組み事例
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
 
Redmineでメトリクスを見える化する方法
Redmineでメトリクスを見える化する方法Redmineでメトリクスを見える化する方法
Redmineでメトリクスを見える化する方法
 
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3 データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
 
アジャイル開発のストーリーをGherkin記法で作成
アジャイル開発のストーリーをGherkin記法で作成アジャイル開発のストーリーをGherkin記法で作成
アジャイル開発のストーリーをGherkin記法で作成
 
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
 
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
 
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組みさくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
 
Redmineの情報を自分好みに見える化した話
Redmineの情報を自分好みに見える化した話Redmineの情報を自分好みに見える化した話
Redmineの情報を自分好みに見える化した話
 

Similar to MagicPodで自動化率を爆上げしたハナシ

パーソナライズニュースを支えるML業務のまわしかた@Yahoo! JAPAN
パーソナライズニュースを支えるML業務のまわしかた@Yahoo! JAPANパーソナライズニュースを支えるML業務のまわしかた@Yahoo! JAPAN
パーソナライズニュースを支えるML業務のまわしかた@Yahoo! JAPAN
Yahoo!デベロッパーネットワーク
 
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーEc cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナー
Ayumu Kawaguchi
 

Similar to MagicPodで自動化率を爆上げしたハナシ (20)

単体テストをやってみた~既存サービスに単体テストを追加するチャレンジ~
単体テストをやってみた~既存サービスに単体テストを追加するチャレンジ~単体テストをやってみた~既存サービスに単体テストを追加するチャレンジ~
単体テストをやってみた~既存サービスに単体テストを追加するチャレンジ~
 
「シン・テストエンジニアのキャリアについて: Q裏 甘口」 wacate_2016_winter
「シン・テストエンジニアのキャリアについて: Q裏  甘口」 wacate_2016_winter「シン・テストエンジニアのキャリアについて: Q裏  甘口」 wacate_2016_winter
「シン・テストエンジニアのキャリアについて: Q裏 甘口」 wacate_2016_winter
 
ワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeployワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeploy
 
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
 
開発もQAも自動テスト!「LOST JUDGMENT:裁かれざる記憶」のQAテスター参加で進化した「テスト自動化チーム(仮)」の取り組みについて
開発もQAも自動テスト!「LOST JUDGMENT:裁かれざる記憶」のQAテスター参加で進化した「テスト自動化チーム(仮)」の取り組みについて開発もQAも自動テスト!「LOST JUDGMENT:裁かれざる記憶」のQAテスター参加で進化した「テスト自動化チーム(仮)」の取り組みについて
開発もQAも自動テスト!「LOST JUDGMENT:裁かれざる記憶」のQAテスター参加で進化した「テスト自動化チーム(仮)」の取り組みについて
 
JaSST Niigata'20
JaSST Niigata'20JaSST Niigata'20
JaSST Niigata'20
 
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
 
Effective web performance tuning for smartphone
Effective web performance tuning for smartphoneEffective web performance tuning for smartphone
Effective web performance tuning for smartphone
 
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テストDevice Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
 
機械学習モデルの負荷がやばすぎて、100倍高速にしつつ精度も上げた話
機械学習モデルの負荷がやばすぎて、100倍高速にしつつ精度も上げた話機械学習モデルの負荷がやばすぎて、100倍高速にしつつ精度も上げた話
機械学習モデルの負荷がやばすぎて、100倍高速にしつつ精度も上げた話
 
iOSにおけるコードレビューを一歩先へ進める
iOSにおけるコードレビューを一歩先へ進めるiOSにおけるコードレビューを一歩先へ進める
iOSにおけるコードレビューを一歩先へ進める
 
ぼくのかんがえた iOSテスト戦略
ぼくのかんがえた iOSテスト戦略ぼくのかんがえた iOSテスト戦略
ぼくのかんがえた iOSテスト戦略
 
パーソナライズニュースを支えるML業務のまわしかた@Yahoo! JAPAN
パーソナライズニュースを支えるML業務のまわしかた@Yahoo! JAPANパーソナライズニュースを支えるML業務のまわしかた@Yahoo! JAPAN
パーソナライズニュースを支えるML業務のまわしかた@Yahoo! JAPAN
 
「最強」のチームを「造る」技術基盤 ディレクターズ・カット
「最強」のチームを「造る」技術基盤 ディレクターズ・カット「最強」のチームを「造る」技術基盤 ディレクターズ・カット
「最強」のチームを「造る」技術基盤 ディレクターズ・カット
 
Automation with SoftLayer and Zabbix
Automation with SoftLayer and ZabbixAutomation with SoftLayer and Zabbix
Automation with SoftLayer and Zabbix
 
Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境
 
Pull request時の画面差分取得の自動化
Pull request時の画面差分取得の自動化Pull request時の画面差分取得の自動化
Pull request時の画面差分取得の自動化
 
ドリコムJenkins勉強会資料
ドリコムJenkins勉強会資料ドリコムJenkins勉強会資料
ドリコムJenkins勉強会資料
 
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーEc cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナー
 
【Unite Tokyo 2018】非プログラマでもできる!簡単プロジェクト管理&マネタイゼーション術!
【Unite Tokyo 2018】非プログラマでもできる!簡単プロジェクト管理&マネタイゼーション術!【Unite Tokyo 2018】非プログラマでもできる!簡単プロジェクト管理&マネタイゼーション術!
【Unite Tokyo 2018】非プログラマでもできる!簡単プロジェクト管理&マネタイゼーション術!
 

Recently uploaded

Recently uploaded (10)

Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

MagicPodで自動化率を爆上げしたハナシ

  • 2. Copyright (C) nohana, Inc. All rights reserved. トピック ● 自己紹介&会社紹介 ● MagicPodの導入経緯 ● MagicPodでの回帰テスト自動化 ● 回帰テストの手動と自動の工数比較 ● 回帰テストの自動化率 ● CircleCIによる定期実行 ● ライブチェックの自動化 ● ダッシュボード(進行中) ● MagicPodでやっていること ● 抱えている課題&改善してほしい点 ● 今後の取り組み ● 最後に
  • 3. Copyright (C) nohana, Inc. All rights reserved. 自己紹介 Copyright (C) nohana, Inc. All rights reserved. 田井 康平 ● 株式会社ノハナ ○ サービスデザイン部 品質管理グループ ■ QAエンジニア ● 以前はテスト専門の会社に所属 ● 趣味:読書、ドライブ(スイーツ巡り)、飛行機を見ること ● プログラミングの知識はほぼなし ● Twitter: @kotatoshi
  • 4. Copyright (C) nohana, Inc. All rights reserved. ノハナの紹介 Copyright (C) nohana, Inc. All rights reserved. ● フォトブックアプリ、年賀状アプリの開発 通常フォトブック 毎月1冊無料でつくれるスタンダードタイプ。 高画質仕上げ、表紙デザインやギフト包装など、用途で選べ るオプションも豊富にご用意しています。 定期的な写真のまとめや、月齢アルバムにおすすめです。 プレミアムフォトブック 高精細な写真画質仕上げの銀塩ハードカバータイプ。 レイフラット製本で迫力の見開き写真が実現、最大89枚(表 紙含む)の写真が入ります。 特別なイベントや、1年ごとの思い出の記録におすすめです。
  • 5. Copyright (C) nohana, Inc. All rights reserved. ノハナの紹介 Copyright (C) nohana, Inc. All rights reserved. かざる、差し替えるに特化した「フォトカード+フレーム」 スマホで選んだ写真を、専用のましかくフレームに飾ることができ、お気に入 りの写真を気軽に差し替えて毎日楽しむことができます。
  • 6. Copyright (C) nohana, Inc. All rights reserved. MagicPodの導入経緯 テスト観点作成 開発(2weeks) テスト(2weeks) 全体 QA テスト観点 レビュー テストケース 作成 機能テスト実行 機能テスト結果 レビュー テストケース レビュー 回帰テスト実行 回帰テスト実行 結果レビュー ライブチェック 開発(2weeks) リリーススプリント(1week) 回帰テスト実行 全体 QA 開発&テスト(2weeks) テスト観点作成 テスト観点 レビュー テスト観点ベー スの 探索的テスト 全体 QA 回帰テスト実行 スプリント レビュー スプリント レビュー スプリント レビュー テスト観点作成 テスト観点 レビュー プレQA (探索的テスト) テストケース作 成 機能テスト実行 テストケースレ ビュー リリース リリース リリース ライブチェック ライブチェック ⭐️スクラム開発導入前(オフショアでテストをしていたとき) ⭐️スクラム開発導入後(開発期間とテスト期間でスプリントをわけていたとき) ⭐️スクラム開発の現状
  • 7. Copyright (C) nohana, Inc. All rights reserved. MagicPodの導入経緯 Copyright (C) nohana, Inc. All rights reserved. ● 導入前(2017年ごろ) ○ 回帰テスト、ライブチェックともに全て手動で実施 ■ 回帰テストはオフショアで実施してたこともあり ○ 回帰テストは手動で1日かかっていた ■ 短いサイクルでのリリース(スクラム開発)を進める中で早く回帰テ ストを完了させることが重要になってきた ● 前任のQAマネージャーと自動テスト導入を検討
  • 8. Copyright (C) nohana, Inc. All rights reserved. MagicPodの導入経緯 Copyright (C) nohana, Inc. All rights reserved. ● 導入理由 ○ プログラミング(コーディング)のスキルがいらない ■ シナリオ作成が簡単 ■ 個人のスキルに依存しない ○ 価格がリーズナブル ○ サーバーなど自前で準備不要(メンテやアップデート含め) ○ 共有ステップでシナリオ間でテストを共有できる
  • 9. Copyright (C) nohana, Inc. All rights reserved. MagicPodの導入経緯 Copyright (C) nohana, Inc. All rights reserved. ● 導入理由 ○ シークレット変数が使える ■ DBへのアクセス情報など含め ○ サポートが早い ■ メールやSlackなどで随時対応してくれる ○ 自動修復機能 ■ 提案だけしてくれるので、こちら側で承認するか決められる ○ 外部ツールとの連携 ■ Slackへの結果通知、Jenkinsのジョブ実行、CIからの自動実行
  • 10. Copyright (C) nohana, Inc. All rights reserved. MagicPodでの回帰テスト自動化(活用) Copyright (C) nohana, Inc. All rights reserved. ● 共有ステップ ● 組み合わせのサンプル(実際の組み合わせではありません) ○ この場合だと5シナリオある ■ それぞれで個別にテストケースを作成するとそれだけでも大変 ○ 仕様変更時などのたびに5つのシナリオを修正する必要がある ○ 実際のテストではもっと多いパターンもあることが多い → 共有ステップで対応
  • 11. Copyright (C) nohana, Inc. All rights reserved. MagicPodでの回帰テスト自動化(活用) Copyright (C) nohana, Inc. All rights reserved. ● 共有ステップ ● 共有ステップ内ではデータパターンの値をもとに条件分岐を導入 ○ 例:商品選択の共有ステップで、色が◯◯である場合、◯◯を選択する ● 最初に共有ステップを作る時間はかかった ○ その後は流用できるので全体工数としては少なく済んだ 共有ステップのメリット ● 使い回し可能 ● 修正時に1つのシナリオ修正でOK ● 修正工数の削減
  • 12. Copyright (C) nohana, Inc. All rights reserved. 回帰テストの手動と自動の工数比較 Copyright (C) nohana, Inc. All rights reserved. ● 自動テストは失敗時のメンテコスト含む ● 自動テストの作成工数は除く ● バージョンは仮 Android 手動で全て実施 自動テストが少し安 定してきたころ 期間は2年ぐらい オフショアから内製 に切り替え
  • 13. Copyright (C) nohana, Inc. All rights reserved. 回帰テストの手動と自動の工数比較 Copyright (C) nohana, Inc. All rights reserved. ● 自動テストは失敗時のメンテコスト含む ● 自動テストの作成工数は除く ● バージョンは仮 iOS テストケース見 直しのため 自動化初期はエラー になるケースが多い 期間は2年ぐらい オフショアから内製 に切り替え
  • 14. Copyright (C) nohana, Inc. All rights reserved. 回帰テストの手動と自動の工数比較 Copyright (C) nohana, Inc. All rights reserved. ● 全体工数が減ったタイミング ○ オフショアでの手動テストから内製での手動テストへの切り替え ○ 自動テストの増加 ● 全体工数が増えたタイミング ○ テストケースの見直し ○ エラーのため手動で実施 ○ エラーが大量に発生しメンテナンスが必要 ■ テストケースの修正漏れ(修正箇所を全て修正してないケースなど) ■ アプリを更新すると要素が見つからなくなることなどがある
  • 15. Copyright (C) nohana, Inc. All rights reserved. 回帰テストの自動化率 Copyright (C) nohana, Inc. All rights reserved. ※1Sprintは2週間 テストケース見 直しのため
  • 16. Copyright (C) nohana, Inc. All rights reserved. 回帰テストの自動化率(Android) Copyright (C) nohana, Inc. All rights reserved.
  • 17. Copyright (C) nohana, Inc. All rights reserved. 回帰テストの自動化率(iOS) Copyright (C) nohana, Inc. All rights reserved.
  • 18. Copyright (C) nohana, Inc. All rights reserved. 回帰テストの自動化率 Copyright (C) nohana, Inc. All rights reserved. ● 現状、期初の予定とほぼ同じ進捗で推移 ● Androidはそのまま(現状、追加で自動化できる箇所なし) ● 今後も決済とiOSは自動化を進める予定 ● Android&iOSともにCIで定期実行を行っている(テスト環境) ○ デグレなどを早期検知するため ● 定期実行の安定化 ● リリース前の本番環境でのテスト
  • 19. Copyright (C) nohana, Inc. All rights reserved. CircleCIによる定期実行 Copyright (C) nohana, Inc. All rights reserved. ● Android&iOSともに朝イチ定期実行を行っている ○ Slackに結果を通知 ● デグレなどを検知することができている ● 結果の詳細はスプレッドシートに吐き出し、成功率を管理している
  • 20. Copyright (C) nohana, Inc. All rights reserved. CircleCIによる定期実行 Copyright (C) nohana, Inc. All rights reserved. Android 1年3ヶ月ぐらいの推移 0%は環境起因のエラーなど 数字が全然わからないので、、
  • 21. Copyright (C) nohana, Inc. All rights reserved. CircleCIによる定期実行 Copyright (C) nohana, Inc. All rights reserved. Android 今年に入ってからの推移 0%は環境起因のエラーなど
  • 22. Copyright (C) nohana, Inc. All rights reserved. CircleCIによる定期実行 Copyright (C) nohana, Inc. All rights reserved. iOS 4ヶ月ぐらいの推移 0%は環境起因のエラーなど
  • 23. Copyright (C) nohana, Inc. All rights reserved. ライブチェック(リリース前テスト)の自動化 Copyright (C) nohana, Inc. All rights reserved. ● 回帰テスト完了後にリリース用アプリで基本機能のテストを実施 ○ Android&iOSともに8割ぐらい自動化完了 ○ Androidは約2年前から自動で実施 ○ iOSは2023年1月からようやく自動化
  • 24. Copyright (C) nohana, Inc. All rights reserved. ダッシュボード(進行中) Copyright (C) nohana, Inc. All rights reserved. ● magicpod-analyzerとBigQueryでダッシュボード作成中 ○ 週2回のQAチームのもくもく会で(悪戦苦闘しながら)進行中
  • 25. Copyright (C) nohana, Inc. All rights reserved. MagicPodでやっていること Copyright (C) nohana, Inc. All rights reserved. ● 通常のUI操作&確認以外 ○ シミュレーターへの画像追加 ○ DBへのデータ追加やデータ取得 ○ メールの文面取得 ○ Jenkinsのジョブ実行
  • 26. Copyright (C) nohana, Inc. All rights reserved. 抱えている課題 Copyright (C) nohana, Inc. All rights reserved. ● テストが安定しないことがある ○ 同じ環境やテストケースでもコケることがある ○ 確認や対応にコストがかかっている ● 条件分岐を多用するとテストケースがわかりにくくなる ● UIがどのシナリオで使われているかわからない(使用数だけはわかるけど) ○ UIが変更になった際に使用しているテストケースを見つけるのが困難
  • 27. Copyright (C) nohana, Inc. All rights reserved. 抱えている課題 Copyright (C) nohana, Inc. All rights reserved. ● 共有ステップは便利だけど、部分実行できない ○ 共有ステップ内の特定の場所でコケることがあり、確認のため共有ステップから コピペして実行している(全部実行したくないケース) ● iOSの実行時間が長い ○ 手動テストよりも時間がかかってしまうケースがある ○ Androidよりもシナリオ数は少ないが、倍以上かかる場合が多い ○ 同じテスト内容でも、実行時間が2時間以上変わることがある ■ 平均で2時間ぐらいかかるものだとして、1時間30分から3時間30分ぐらいと 幅が大きい
  • 28. Copyright (C) nohana, Inc. All rights reserved. 改善してほしい点(抱えてる課題に対して) Copyright (C) nohana, Inc. All rights reserved. ● テストが安定しないことがある ○ 要素の指定方法で解決するのかもしれないですが、定期実行で前日成功したとこ ろが翌日失敗するなど ○ 自動修正の精度がさらに上がれば、少しは解決するかも ■ #269 単体実行でも自動修復が発動するように ● 条件分岐のセットがわかるようにしてほしい(#99 条件分岐コマンドのUX改 善) ○ Step数が多いテストケース内で複数の条件分岐が連続すると、条件分岐終わりが どの条件に対してか探すのが大変なことがある
  • 29. Copyright (C) nohana, Inc. All rights reserved. 改善してほしい点(抱えてる課題に対して) Copyright (C) nohana, Inc. All rights reserved. ● UIがどのシナリオで使われているかわからない ○ 使われている数はわかるけど、どのシナリオわからない ○ 使用しているシナリオが簡単にわかると助かる ● 共有ステップの部分実行(#300 共有ステップの編集画面でも端末を操作した い) ○ 失敗したところだけ確認したいケースがある ○ 現在は共有ステップ全てを実行するか、該当箇所をコピーして実行
  • 30. Copyright (C) nohana, Inc. All rights reserved. 改善してほしい点(抱えてる課題に対して) Copyright (C) nohana, Inc. All rights reserved. ● iOSの実行スピードの改善 ○ 要素の指定などで改善できるものなのか? ● 実機とシミュレータでロケータが異なることがある ○ 同じシナリオでも成功と失敗になるケース(アプリ側の問題?) ■ 例えばview.ViewとTextViewで条件分岐をして対応 ● 1スクショで1要素に複数のロケータを指定できたりすると便利かも ○ 同じスクショが必要になってしまう
  • 31. Copyright (C) nohana, Inc. All rights reserved. 改善してほしい点 Copyright (C) nohana, Inc. All rights reserved. ● キャプチャしたUIの移動(#149 共有UIを整理しやすく) ○ セクションが多いと地味に面倒 ○ 簡単にセクションを移動できると良さそう ● バージョンアップの対応(#250 Magic Pod Desktopのバージョンアップをも っと快適に) ○ ZIPファイルではなく、サクッとアップデートできると助かる ■ 動作が停止してしまうことが多い
  • 32. Copyright (C) nohana, Inc. All rights reserved. 今後の取り組み Copyright (C) nohana, Inc. All rights reserved. ● テストの安定化 ● テストケースのリファクタリング ○ 都度変更を入れているので、ごちゃごちゃになってきている ● 決済関連のテスト自動化 ○ 現状は一部だけ自動化済み ● ダッシュボードの作成(進行中)
  • 33. Copyright (C) nohana, Inc. All rights reserved. 最後に Copyright (C) nohana, Inc. All rights reserved. ● トライアル(スタンダード)できるので、実際に試してみるのが良さそう ● 初期コストはかかるものの、メンテコストはそこまで高くない ● ノー(ロー)コードだと、属人化しないので誰でもできる ● サーバーなど環境準備やメンテが不要 ● 共有ステップの活用でメンテコスト削減できる ● 自動化が難しいところは無理して自動化しないことが重要かも 今日お話しした内容の一部はブログでも公開していますので、ご覧ください!