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
ハイスコアから紐解くチームの自動テスト運用
Search
ct
July 08, 2024
Technology
0
1.2k
ハイスコアから紐解くチームの自動テスト運用
2024/07/05 MagicPod Meetupでの発表資料です。
ct
July 08, 2024
Tweet
Share
Other Decks in Technology
See All in Technology
Creative Pair
kawaguti
PRO
1
130
ココナラのセキュリティ組織の体制・役割・今後目指す世界
coconala_engineer
0
220
[TechNight #86] Oracle GoldenGate - 23ai 最新情報&プロジェクトからの学び
oracle4engineer
PRO
1
170
Women in Agile
kawaguti
PRO
2
170
RevOpsへ至る道 データ活用による事業革新への挑戦 / path-to-revops
pei0804
3
800
サービスローンチを成功させろ! 〜SREが教える30日間の攻略ガイド〜
mmmatsuda
2
4.4k
ソフトウェア開発現代史:製造業とソフトウェアは本当に共存できていたのか?品質とスピードを問い直す
takabow
15
5.3k
Redmineの意外と知らない便利機能 (Redmine 6.0対応版)
vividtone
0
190
横断SREの立ち上げと、AWSセキュリティへの取り組みの軌跡
rvirus0817
3
4.5k
Amazon Location Serviceを使ってラーメンマップを作る
ryder472
2
150
[2024年10月版] Notebook 2.0のご紹介 / Notebook2.0
databricksjapan
0
1.4k
Autify Company Deck
autifyhq
2
41k
Featured
See All Featured
Designing for Performance
lara
604
68k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Optimizing for Happiness
mojombo
376
70k
Learning to Love Humans: Emotional Interface Design
aarron
274
40k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
6
220
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
520
Rebuilding a faster, lazier Slack
samanthasiow
79
8.8k
How to train your dragon (web standard)
notwaldorf
89
5.8k
Documentation Writing (for coders)
carmenintech
67
4.6k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
175
51k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Transcript
© LY Corporation Internal Use Only LINEヤフー株式会社 Product QA Dept
Toda Chiharu ハイスコアから紐解く チームの⾃動テスト運⽤ - 240705 MagicPodミートアップ ヘルススコアNight -
© LY Corporation Internal Use Only Toda Chiharu LINEヤフー株式会社 /
QAエンジニア • 2014年にLINE Fukuoka株式会社に⼊社 • 会社統合のタイミングでLINEヤフーに転籍 • 2020年より「LIFF」を担当 • 品質保証・向上などの取り組み • E2E⾃動テスト導⼊戦略、運⽤・保守 ⾃⼰紹介
© LY Corporation Internal Use Only お話しする内容 1. LIFFの品質管理体制 •
LIFFの概要 • QAチーム体制 • ⾃動化状況 2. チームの⾃動テスト運⽤について • 属⼈化解消のための取り組み • 習慣化の⼯夫 • 安定性の⾼いテストケースのための⼯夫 3. まとめ
© LY Corporation Internal Use Only LIFFの品質管理体制
© LY Corporation Internal Use Only 「LIFF」について • LINE Front-end
Framework (LIFF)は、LINEヤフー株式会社が提供 するウェブアプリのプラットフォームのことです。 LIFFの概要 LIFFの品質管理体制 テスト対象 • モバイル(iOS/Android) • LINE内で開くLIFFブラウザと外部ブラウザ • PCウェブ • 2週間に⼀度 リリースサイクル
© LY Corporation Internal Use Only QAチームについて LIFFの品質管理体制 品質管理体制について •
QAエンジニア1名、テスター5名 • 現在は私含め2名で⾃動テストを運⽤中 • (以前はチーム全員がMagicPodを使えていたが、 メンバーの総⼊れ替えに伴い再度教育中…)
© LY Corporation Internal Use Only LIFFの⾃動テスト LIFFの品質管理体制 ⾃動テスト導⼊の⽬的 1.
テスト活動の効率化 • テスト⾃動化によって⽣み出した余剰⼯数を他活動へ当て、 品質全体への貢献 2. 早期検知による開発⽣産性向上 • ⾼頻度で⾃動テストを回し、バグをより早い段階で検出する ことで機能追加や仕様変更によるデグレードリスクの防⽌に 貢献 3. オペレーションミス防⽌ • テストデータのコピペミスやtypoなどの⼈的ミスを防⽌ • テスト結果の確認ミスや確認深度のブレを防⽌
© LY Corporation Internal Use Only LIFFの⾃動テスト LIFFの品質管理体制 ⾃動化状況について •
MagicPodでの⾃動テストを導⼊して3年⽬突⼊! • CI環境連携済みでモバイル(iOS/Android)・ブラウザで毎⽇ テスト実⾏中 • 実施される⽉のテストの総件数は1万超え • 隔週リリース毎に⼿動実施していた回帰テストは全て⾃動化 済み • 簡単なテストであれば修正確認も⾃動テストの結果で確認
© LY Corporation Internal Use Only • 機能リリース( 2023年12⽉ 〜
)以来、毎週確認 • 平均して90点以上を継続 • モバイル(iOS/Android) • ブラウザ • 周りのプロジェクトよりも⽐較 的良いスコアを保てている ヘルススコアについて
© LY Corporation Internal Use Only • 機能リリース( 2023年12⽉ 〜
)以来、毎週確認 • 平均して90点以上を継続 • モバイル(iOS/Android) • ブラウザ • 周りのプロジェクトよりも⽐較 的良いスコアを保てている ヘルススコアについて ハイスコア継続に繋がったものは何?
© LY Corporation Internal Use Only チームの⾃動テスト運⽤について
© LY Corporation Internal Use Only • 失敗したテストは原因を切り分けて対処が必要(アプリの不具合、⼀時的 なもの、環境要因、テストケース⾃体の不具合) →⼤抵はアプリの不具合以外による失敗(偽陽性)が多い。
⾃動テスト運⽤に割く時間も作れず結果確認も後回しに。 →⾃動テストの結果を信頼できていない 12 チームの⾃動テスト運⽤課題 チームの⾃動テスト運⽤について
© LY Corporation Internal Use Only • ⾃動テストの結果を信頼できていない ∟信頼性向上のためのテストケース設計の⾒直しと改善 ∟環境要因で落ちないようにするためのテスト環境の安定化
などが考えられる。 13 チームの⾃動テスト運⽤課題 チームの⾃動テスト運⽤について
© LY Corporation Internal Use Only • ⾃動テストの結果を信頼できていない ∟信頼性向上のためのテストケース設計の⾒直しと改善 ∟環境要因で落ちないようにするためのテスト環境の安定化
などが考えられる。 14 チームの⾃動テスト運⽤課題 →⾃動化対応のためのリソース(⼈や時間)確保が必要 チームの⾃動テスト運⽤について
© LY Corporation Internal Use Only 属⼈化が進むことによって… • カバレッジ拡⼤の動きが鈍化 •
ノンコードツールなのでテストケース作成のハードルは低い⼀⽅で、 • 動作性・安定性・可読性・効率性・可変性などを考慮しての作成は難易度が上がる • ⽣産性の低下 • 問題が発⽣したときに担当者以外が原因の追及ができない • 改善活動を偏った観点でしか運⽤できない → ⾃動化を運⽤していく上で属⼈化を防ぐことはマスト 15 チームの⾃動テスト運⽤課題 チームの⾃動テスト運⽤について
© LY Corporation Internal Use Only • ⽇々の作業と並⾏して⾃動化対応を取り組める体制を整える • ⾃動化対応が可能なメンバーの確保や能⼒向上
• 継続してチームで⾃動テストに向き合う習慣 • メンテナンス性・安定性を向上させる • 安定したテストケースを設計する 16 チームの⾃動テスト運⽤課題 チームの⾃動テスト運⽤について
© LY Corporation Internal Use Only Point 2 習慣化 Point
1 脱属⼈化 Point 3 保守安定化 17 チームの⾃動テスト運⽤課題 チームの⾃動テスト運⽤について
© LY Corporation Internal Use Only Point 2 習慣化 Point
1 脱属⼈化 Point 3 保守安定化 18 チームの⾃動テスト運⽤課題 チームの⾃動テスト運⽤について
© LY Corporation Internal Use Only • 取り組み:ペアプロ⾵の進⾏でテストケースを作成してみる 19 脱属⼈化のための取り組み
ドライバー 実際に⼿を動かしてテストケースを作成する⼈ ナビゲーター テストケースを⾒ながらドライバーに指⽰する⼈ チームの⾃動テスト運⽤について
© LY Corporation Internal Use Only Step1. Zoomを繋いでドライバー(教わる側)が画⾯共有 • ⼀台のPCを⼆⼈で利⽤するのが⼀般的な⽅法
• 「同時に確認する」状態をZoomの画⾯共有機能で再現 Tips: Zoomの書き込み機能を使うことで、操作して欲しい場所をペンで指定しながら指⽰ もできて進めやすい 20 脱属⼈化のための取り組み チームの⾃動テスト運⽤について
© LY Corporation Internal Use Only Step2. 時間を決めて実⾏ 21 時間
やること 説明 5分 ゴールを決める 計画表に基づき何をどこまで⾃動化するか両者感の認識 を合わせる 1分 役割を決める 新⼈がドライバー(教わる側)固定 60分 テストケース作成 ナビゲーター(教える側)がケースの構成共有→実装→ 実⾏→エラーログを確認→修正を繰り返す 10分 振り返りとネクストアクショ ンの決定 ドライバー(教わる側)から勉強になったことなどの 「気づき」を発信してもらうようにする。ここで出た内 容は後で他のメンバーにも共有する。 脱属⼈化のための取り組み チームの⾃動テスト運⽤について
© LY Corporation Internal Use Only • 会話を重ねて作っていくため⼀緒に考えて 作り上げていくことを実感できて楽しく、 頭に⼊りやすい
• リアルタイムで進⾏していくので、調べる 時間や返答待ちの時間も削れる • エラーログの確認をナビゲーターと⼀緒に タイムリーに⾏えるので、失敗したテスト の⾒⽅を覚えやすい ドライバー(教わる側)のメリット 22 • レビュー時間の削減 • 判断理由(思考プロセス)を⾔語化して伝 えることでアウトプットになり、⾃分⾃⾝ のスキルの定着と向上になる • シームレスなやりとりにより、個⼈に合わ せた教育をしやすい(調整ができる) ナビゲータ(教える側)のメリット 脱属⼈化のための取り組み チームの⾃動テスト運⽤について
© LY Corporation Internal Use Only • 会話を重ねて作っていくため⼀緒に考えて 作り上げていくことを実感できて楽しく、 頭に⼊りやすい
• リアルタイムで進⾏していくので、調べる 時間や返答待ちの時間も削れる • エラーログの確認をナビゲーターと⼀緒に タイムリーに⾏えるので、失敗したテスト の⾒⽅を覚えやすい ドライバー(教わる側)のメリット 23 • レビュー時間の削減 • 判断理由(思考プロセス)を⾔語化して伝 えることでアウトプットになり、⾃分⾃⾝ のスキルの定着と向上になる • シームレスなやりとりにより、個⼈に合わ せた教育をしやすい(調整ができる) ナビゲータ(教える側)のメリット 脱属⼈化のための取り組み チームの⾃動テスト運⽤について
© LY Corporation Internal Use Only • チームメンバーレベル感によってペアプロ進⾏の向き不向きはある • レベル1:未経験者
• レベル2:テストケースを作れる • レベル3:⼈に教えることができる 24 メンバーのレベル ペアプロ進⾏適正 全員レベル1 あまり向かない レベル1とレベル2または3のペア 向いている ※レベル1が⼀気にレベル2まで上がるイメー ジ チーム全員がレベル2または3 教育⾯で考えるとメリットはない ※スキルの相乗効果は期待ができる 脱属⼈化のための取り組み チームの⾃動テスト運⽤について
© LY Corporation Internal Use Only 結果 • ⾃動化対応ができるメンバーを増やすことができた •
担当者不在時も運⽤が継続可能になった 25 脱属⼈化のための取り組み チームの⾃動テスト運⽤について
© LY Corporation Internal Use Only Point 2 習慣化 Point
1 脱属⼈化 Point 3 保守安定化 26 ⾃動化対応を習慣化するための⼯夫 チームの⾃動テスト運⽤について
© LY Corporation Internal Use Only 何故、習慣化してないのか • ⾃動化対応以外の業務が忙しく優先度を下げがち •
「⾃動化するよりも⼿動でやった⽅が早い」という⼼理になりがち → 意識的に優先度を上げて、⽇々の作業プロセスに組み込む 27 ⾃動化対応を習慣化するための⼯夫 チームの⾃動テスト運⽤について
© LY Corporation Internal Use Only • スケジュールを設定して1⽇1時間は⾃動化 対応に時間を割く •
毎⽇⾃動テストの結果を確認 • 連⽇失敗しているケースから優先してエ ラー原因の特定・修正対応を実施(⼿動で 計測) ヘルススコア機能リリース前 28 • ヘルススコア集計サイクルに合わせて作業 を⾏うようにシフトチェンジ • ⽉曜 1. ヘルススコアの結果確認 2. 改善ポイント確認 3. 平常作業のボリューム確認、⾃動化対応に避ける時間の⾒積もり 4. ⾃動化対応の⽬標決定(⼩さいものでも可) 5. テストケース新規作成・修正を⾏う場合、実装⽅針の認識合わせ • ⾦曜 1. 対応内容共有 2. ナレッジ共有、振り返り ヘルススコア機能リリース後 ⾃動化対応を習慣化するための⼯夫 チームの⾃動テスト運⽤について
© LY Corporation Internal Use Only • スケジュールを設定して1⽇1時間は⾃動化 対応に時間を割く •
毎⽇⾃動テストの結果を確認 • 連⽇失敗しているケースから優先してエ ラー原因の特定・修正対応を実施(⼿動で 計測) 対応頻度は上がったものの結局忙しいと スケジュールを無視しがちに… ヘルススコア機能リリース前 29 • ヘルススコア集計サイクルに合わせて作業 を⾏うようにシフトチェンジ • ⽉曜 1. ヘルススコアの結果確認 2. 改善ポイント確認 3. 平常作業のボリューム確認、⾃動化対応に避ける時間の⾒積もり 4. ⾃動化対応の⽬標決定(⼩さいものでも可) 5. テストケース新規作成・修正を⾏う場合、実装⽅針の認識合わせ • ⾦曜 1. 対応内容共有 2. ナレッジ共有、振り返り ヘルススコア機能リリース後 ⾃動化対応を習慣化するための⼯夫 チームの⾃動テスト運⽤について
© LY Corporation Internal Use Only • スケジュールを設定して1⽇1時間は⾃動化 対応に時間を割く •
毎⽇⾃動テストの結果を確認 • 連⽇失敗しているケースから優先してエ ラー原因の特定・修正対応を実施(⼿動で 計測) 対応頻度は上がったものの結局忙しいと スケジュールを無視しがちに… ヘルススコア機能リリース前 30 • ヘルススコア集計サイクルに合わせて作業 を⾏うようにシフトチェンジ • ⽉曜 1. ヘルススコアの結果確認 2. 改善ポイント確認 3. 通常業務のボリューム確認、⾃動化対応に割ける時間の⾒積もり 4. ⾃動化対応の⽬標決定(⼩さいものでも可) 5. テストケース新規作成・修正を⾏う場合、実装⽅針の認識合わせ • ⾦曜 1. 対応内容共有 2. ナレッジ共有、振り返り ヘルススコア機能リリース後 ⾃動化対応を習慣化するための⼯夫 チームの⾃動テスト運⽤について
© LY Corporation Internal Use Only • スケジュールを設定して1⽇1時間は⾃動化 対応に時間を割く •
毎⽇⾃動テストの結果を確認 • 連⽇失敗しているケースから優先してエ ラー原因の特定・修正対応を実施(⼿動で 計測) 対応頻度は上がったものの結局忙しいと スケジュールを無視しがちに… ヘルススコア機能リリース前 31 • ヘルススコア集計サイクルに合わせて作業 を⾏うようにシフトチェンジ • ⽉曜 1. ヘルススコアの結果確認 2. 改善ポイント確認 3. 通常業務のボリューム確認、⾃動化対応に割ける時間の⾒積もり 4. ⾃動化対応の⽬標決定(⼩さいものでも可) 5. テストケース新規作成・修正を⾏う場合、実装⽅針の認識合わせ • ⾦曜 1. 対応内容共有 2. ナレッジ共有、振り返り ⾃分たちにとって無理のない作業サイクルで ⾃動化対応のルーティン化を実現! ヘルススコア機能リリース後 ⾃動化対応を習慣化するための⼯夫 チームの⾃動テスト運⽤について
01 発表内容のアジェンダをここに⼊⼒してください © LY Corporation Internal Use Only 運⽤結果 l
⾃動化対応がチームの習慣として定着し、継続的な改善が可能に l (健全さの可視化がモチベーション維持に効果⼤!) 32 チームの⾃動テスト運⽤について ⾃動化対応を習慣化するための⼯夫
© LY Corporation Internal Use Only Point 2 習慣化 Point
1 脱属⼈化 Point 3 保守安定化 33 テストケースのメンテナンス性・安定性向上のためのポイント チームの⾃動テスト運⽤について
01 発表内容のアジェンダをここに⼊⼒してください © LY Corporation Internal Use Only (例)モバイルで外部ブラウザを開き、ウェブアプリを開く 34
テストケースのメンテナンス性・安定性向上のためのポイント チームの⾃動テスト運⽤について
01 発表内容のアジェンダをここに⼊⼒してください © LY Corporation Internal Use Only ‒ 問題点
• テストケース毎にウェブアプリを新規で開き続けるためタブが無限に増え、 アプリの動作が重くなってしまう ‒ 解決⽅法案 • ??? 35 テストケースのメンテナンス性・安定性向上のためのポイント チームの⾃動テスト運⽤について
01 発表内容のアジェンダをここに⼊⼒してください © LY Corporation Internal Use Only ‒ 問題点
• テストケース毎にウェブアプリを新規で開き続けるためタブが無限に増え、 アプリの動作が重くなってしまう ‒ 解決⽅法案 • そもそもタブが毎回新規で開かないようにする • テストケースの最後でタブを閉じるステップを追加する • 「ブラウザタブをすべて閉じる」専⽤のテストケースを作成する etc… 36 テストケースのメンテナンス性・安定性向上のためのポイント チームの⾃動テスト運⽤について
01 発表内容のアジェンダをここに⼊⼒してください © LY Corporation Internal Use Only ‒ 結論
• E2Eで考える⽅法は最終⼿段 ‒ 何故なら、以下のリスクに繋がってしまう可能性が増える • テスト実⾏時間増加 • メンテナンス性、安定性の低下 • 仮にChromeの仕様が変われば修正が必要 • 失敗確率増加 • 本来テストしたい場所ではない処理で失敗すると対応時間も取られる 37 テストケースのメンテナンス性・安定性向上のためのポイント チームの⾃動テスト運⽤について
01 発表内容のアジェンダをここに⼊⼒してください © LY Corporation Internal Use Only ‒ E2E以外での解決⽅法例
• WEBプロジェクトのモバイルエミュレーションを利⽤ • シークレットモードでテストする • テスト実⾏前にADB(Android Debug Bridge)でChrome Appを初期化する • (adb shell pm clear com.android.chrome コマンドを実⾏) etc.. 38 テストケースのメンテナンス性・安定性向上のためのポイント チームの⾃動テスト運⽤について
01 発表内容のアジェンダをここに⼊⼒してください © LY Corporation Internal Use Only ‒ E2E以外での解決⽅法例
• WEBプロジェクトのモバイルエミュレーションを利⽤ • シークレットモードでテストする • テスト実⾏前にADB(Android Debug Bridge)でChrome Appを初期化する<採⽤> • Jenkinsも⽤いて初期化プロセスも⾃動化済み 39 テストケースのメンテナンス性・安定性向上のためのポイント チームの⾃動テスト運⽤について
01 発表内容のアジェンダをここに⼊⼒してください © LY Corporation Internal Use Only ★E2Eを通さずに効率的に解決できる⽅法がないか 考えてみることも⼤切
40 テストケースのメンテナンス性・安定性向上のためのポイント チームの⾃動テスト運⽤について
© LY Corporation Internal Use Only まとめ 41
01 発表内容のアジェンダをここに⼊⼒してください © LY Corporation Internal Use Only ü属⼈化を防ぐ ü⾃動化対応の習慣を定着させる
ü安定性、メンテナンス性を考慮したテスト設計をする 上記の取り組みが安定したハイスコア継続への効果が⼤きい 42 まとめ
01 発表内容のアジェンダをここに⼊⼒してください © LY Corporation Internal Use Only スコアは⾼いに越したことはないが、 取り組みは良いスコアを取ることが⽬的だったわけではない。
43 まとめ
01 発表内容のアジェンダをここに⼊⼒してください © LY Corporation Internal Use Only ⼤切なことはスコアを通して、 ・どのように⾃動テストと向き合っていくか
・そして、プロダクトの品質向上にどう繋げていくか 44 まとめ
01 発表内容のアジェンダをここに⼊⼒してください © LY Corporation Internal Use Only ヘルススコア機能から得られたもの •
⾃分たちの⾃動化対応のルーティンの変化 • 継続的な改善活動のきっかけ • ⾃信やモチベーションの向上 45 まとめ
01 発表内容のアジェンダをここに⼊⼒してください © LY Corporation Internal Use Only ヘルススコア機能から得られたもの •
⾃分たちの⾃動化対応のルーティンの変化 • 継続的な改善活動のきっかけ • ⾃信やモチベーションの向上 46 まとめ ⾼品質なプロダクトを提供するための 重要な⼀歩となった。
01 発表内容のアジェンダをここに⼊⼒してください © LY Corporation Internal Use Only Thank you
MagicPod ! 47 まとめ
© LY Corporation Internal Use Only ご清聴ありがとうございました。