Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ヘルススコアの改善の過程で起きた嬉しい変化
Search
Recruit
PRO
July 05, 2024
Technology
1.6k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ヘルススコアの改善の過程で起きた嬉しい変化
2024/07/05に、MagicPod Meetupで発表した、Takafumi Yanagawaの資料です。
Recruit
PRO
July 05, 2024
More Decks by Recruit
See All by Recruit
つくって納得、つかって実感! 大規模言語モデルことはじめ ver2.0
recruitengineers
PRO
6
2.4k
ブラウザ研修 2026
recruitengineers
PRO
8
1.5k
事業価値と Engineering 2026年度版
recruitengineers
PRO
58
28k
トヨタ⽣産⽅式(TPS)⼊⾨
recruitengineers
PRO
3
1.3k
JavaScript 研修 (2026)
recruitengineers
PRO
2
770
TypeScript入門 2026
recruitengineers
PRO
3
1.4k
モダンフロントエンド 開発研修
recruitengineers
PRO
4
1.1k
Webアクセシビリティ入門 2026
recruitengineers
PRO
3
1k
攻撃と防御で学ぶAI時代のプロダクトセキュリティ演習
recruitengineers
PRO
9
3.8k
Other Decks in Technology
See All in Technology
NW運用でNWトポロジ可視化ツールに期待すること/shumoku-meetup1
corestate55
2
100
コーディングエージェントでM5Stack系の開発を少し試した時の話 / M5 Japan Tour 2026 Autumn 東京
you
PRO
0
160
From Vanilla Kubernetes to a Batteries-Included Platform: Developer Experience at 1,300+ Clusters
yosshi_
0
680
リージョンの壁を越える、 ちょっと変わったAWSサービスの話
falken
PRO
1
300
アプリをもっと"iOSアプリっぽく"する小さな工夫 / Small Touches That Make Your App Feel More Like an iOS App
matsuji
1
500
生成AIのテナント制御とシャドーMCP対策 | AIを"止めずに"、情報を守る
yukun
0
150
株式会社シーエーシー エンジニア向け会社紹介資料
cac
0
57k
2026-09-09 【sigma_ucj#1】Sigma を IaC 管理したい! / IaC for Sigma
civitaspo
0
110
module Synths; end
asonas
1
130
なぜSRE・セキュリティは評価されないのか?守りの組織を事業成長エンジンに変えた実践
cscengineer
PRO
3
2.5k
Amazon S3 Tablesに全部任せてみた結果——コンパクション/スナップショット管理は本当に手放せるか
shigeruoda
1
470
Amazon Quick on DesktopがIAM Identity Centerで動かない理由
yukiogawa
0
160
Featured
See All Featured
ラッコキーワード サービス紹介資料
rakko
1
4.8M
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Test your architecture with Archunit
thirion
2
2.4k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
230
Automating Front-end Workflow
addyosmani
1369
210k
Ethics towards AI in product and experience design
skipperchong
2
370
A Modern Web Designer's Workflow
chriscoyier
699
190k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
400
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.1k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
780
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
510
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
690
Transcript
MagicPodミートアップ ヘルススコアNight ヘルススコアの改善の過程で起きた 嬉しい変化 Takafumi Yanagawa (@tyngw) MagicPodミートアップ ヘルススコアNight
MagicPodミートアップ ヘルススコアNight Agenda | 01 02 03 04 05 About
me & us はじめに ヘルススコアを上げるために取り組んだこと ヘルススコアを改善する中で起きた嬉しい変化 まとめと今後の課題
MagicPodミートアップ ヘルススコアNight • スタディサプリのQAエンジニアをしています • ソフトウェアテストが好きです ◦ テスト⾃動化も好きです • ⼩学1年と1歳の娘がいます
• 電気⼯事⼠の資格を持ってます ◦ 我が家の照明・配線器具の交換やエアコン 掃除をしています ⾃⼰紹介 Takafumi Yanagawa (@tyngw) 別名: アシカ
MagicPodミートアップ ヘルススコアNight 👆こちらのプロダクト群を横断する QA組織に所属しています
MagicPodミートアップ ヘルススコアNight 対象は Webアプリ 本⽇のスコープとなるサービス 本⽇お話しする対象のサービス スタディサプリ for TEACHERSの機能の1つ 先⽣と⽣徒間、先⽣と保護者間での
コミュニケーション機能
MagicPodミートアップ ヘルススコアNight Agenda | 01 02 03 04 05 About
me & us はじめに ヘルススコアを上げるために取り組んだこと ヘルススコアを改善する中で起きた嬉しい変化 まとめと今後の課題
MagicPodミートアップ ヘルススコアNight 本⽇お話しすること 🙆 E2Eテスト⾃動化の安定運⽤を実現するために、何を考え、 どのように実践していったのかをご紹介します 🙆 その結果、得られた効果をご紹介します 🙅 MagicPodで実装する上でのTIPSやテクニックはご紹介しません
(交流タイムでたっぷりとお話ししましょう🍺)
MagicPodミートアップ ヘルススコアNight 体制 ◯ ◯ ◯ 開発 △△△開発 □□□開発 QAグループ
QAエンジニア QAエンジニアは開発組織に常駐し、 実業務やプロセスの整備と改善を⾏っています QAエンジニア QAエンジニア
MagicPodミートアップ ヘルススコアNight * Darklaunchと呼ばれるFeature Togglesの仕組みにより、デプロイとは独⽴してリリースタイミング を決めることもできます。 スタディサプリのWebアプリケーションはこうやって開発されている https://blog.studysapuri.jp/entry/2023/03/17/studysapuri-development リリースサイクルについて リリース⽅法
対象 タイミング・テスト⽅法 Weekly Release モノリスアプリケーションや モノリスに依存するWebサー ビス群 週に1度、Weekly Happy Path Testを実⾏し、ブロッカ ーがなければリリース(*) Single Release モノリスに依存がないマイク ロサービス 任意のタイミングでリリース 所属チームがオーナーシップを持っているサービスのリリース⽅法は主に2種類あります
MagicPodミートアップ ヘルススコアNight E2Eテスト⾃動化の⽬的 • 任意のタイミングで⾏われるSingle Releaseにおいて、利⽤者に影響 がある⽋陥を検出する • Weekly Releaseで実施しているリグレッションテストよりも早いタイ
ミングでリグレッションを検知することにより、開発者に素早く⽋陥 の情報をフィードバックする
MagicPodミートアップ ヘルススコアNight ⽬的を達成するために考えていたこと リグレッションを 検知したい テスト結果の 信頼性を⾼める ⾃動テストの 保守性を⾼める 偽陽性/偽陰性
を減らす テスト対象の 試験性の向上 定期的に実⾏ 結果のモニタリ ングと修正 開発者の協⼒
MagicPodミートアップ ヘルススコアNight あれ…ヘルススコアの項⽬そのものでは︖ • ⼗分なメンバーが参加する • ⼗分なテストケースを作成する • 共有ステップを活⽤する •
テストケースを⻑すぎないように保つ • テストケースを⽇次実⾏する • 定期実⾏によるテストが安定して成功する • 安定したロケータを使⽤する
MagicPodミートアップ ヘルススコアNight ヘルススコアを上げることで ⽬的達成もできる︕
MagicPodミートアップ ヘルススコアNight Agenda | About me & us はじめに ヘルススコアを改善するために取り組んだこと
ヘルススコアを改善する中で起きた嬉しい変化 まとめと今後の課題 01 02 03 04 05
MagicPodミートアップ ヘルススコアNight ⾃動テストケース実装フェーズで取り組んだこと① 最⼩限のテストケースを実装 ⼀部のWeb開発者とHappy Path相当の 最⼩限のテストケースを実装 確実に保守できる量のテストケースを実装 機能⼀覧と考慮すべき条件の⼀覧を作り、 実装の優先度を決定
*実際のドキュメントを参考に作成したサンプル(架空)で す
MagicPodミートアップ ヘルススコアNight ⾃動テストケース実装フェーズで取り組んだこと② ハンズオンの開催 MagicPodを知らない開発者に対して ハンズオンを開催 • 簡単なテストケースを実装してもらう • 実装済みのテストの概要を知ってもらう
E2Eテスト⾃動化の活動を認知してもらう もう◯◯ケースも実装されてい る︕ 処理の共通化もできるんですね なるほど、こうすると保守性が ⾼くなるのか〜 参加者のコメント
MagicPodミートアップ ヘルススコアNight Slackにテスト結果を通知し、 確認結果や対応状況をスレッドに投稿 ⾃動テストの運⽤・保守フェーズで取り組んだこと① 偽陽性・偽陰性への対処 ⽇次で実⾏し、結果をモニタリング • 偽陽性が⾒つかった時は、即⽇中に修正 し、テストが失敗する状況を放置しない
• 偽陰性が⾒つかった時は、 E2Eテストで担保すべきか検討 テスト結果の信頼性を⾼める
MagicPodミートアップ ヘルススコアNight ⾃動テストの運⽤・保守フェーズで取り組んだこと② 振る舞いの変化への対応 テスト対象の挙動に変化があった時は、些細 なことでも開発チームに相談 相談の結果、意図した変更であることがほと んどであるものの、⾃動テストの担当者内で 閉じずに都度コミュニケーションをとる E2E⾃動テストの結果に関⼼を持ってもらう
MagicPodミートアップ ヘルススコアNight MagicPodさんが提案する プラクティスそのものです スタートガイド︓5.テスト⾃動化の習慣を最速で定着させる(ブラウザ)
MagicPodミートアップ ヘルススコアNight 取り組みの結果 ヘルススコアは98まで上がりました🎉
MagicPodミートアップ ヘルススコアNight Agenda | 01 02 03 04 05 About
me & us はじめに ヘルススコアを上げるために取り組んだこと ヘルススコアを改善する中で起きた嬉しい変化 まとめと今後の課題
MagicPodミートアップ ヘルススコアNight 嬉しい変化① ライブラリアップデート時のリグレッションを早期に検知可能に Renovate / Dependabot でのライブラリバージョンアップ時の問題にいち早く気づけるようになった これまでは週次のWeekly Happy
Path Testで検知していた事象が PR mergeの翌⽇には検知できるようになった リグレッションの原因となったPRの特定がしやすくなった * PR = Pull Request
MagicPodミートアップ ヘルススコアNight リグレッションが検知できた︕ めでたしめでたし🎉
MagicPodミートアップ ヘルススコアNight おしまい🎉
MagicPodミートアップ ヘルススコアNight だけではなかった…︕
MagicPodミートアップ ヘルススコアNight 嬉しい変化② MagicPodを活⽤したテストの相談が来るようになった 開発チームから、フロントエンドビルド基盤のリプレースにあたって 実装済みのテストを活かしてリグレッションを検知することはできないかという相談が持ちかけられた まだVRT(Visual Regression Test)が実装されていないサブシステムに対して、既存のMagicPodシナ リオにVRTを追加することで、追加⼯数を最⼩限に抑えてVRTを実装
リグレッションを発⽣させることなくビルド基盤のリプレースを実現 * storycap + reg-cliによるVRTを導⼊しているサブシステムもあります
MagicPodミートアップ ヘルススコアNight 嬉しい変化③ 開発者から軽微な変更内容であっても共有してもらえるように ⾃動テスト担当者から軽微な変化を報告していった結果、 開発者からもデザインの微修正、⽂⾔の変更などを⾏った際に、 「E2E⾃動テストで差分が出るかもしれない」ことを事前に共有してもらえるようになった あらかじめ変更内容を把握できていることで、事前の修正やテスト結果の判定が容易に * 機能の変更などにはQAも関わりますが、デザイン・⽂⾔の変更はPO・デザイナーレビューで完結することもあります
MagicPodミートアップ ヘルススコアNight 嬉しい変化④ テスト対象システムの不安定さの検知 ⾃動テストスクリプト起因での失敗を減らしていくことで、 テスト対象システム起因で、再現頻度が毎回ではないエラーなどの事象に気づけるようになった ⾃動テストの効果を⽰していたことで、開発チームに温度感⾼く調査・修正してもらえるようになり、 テスト対象システムの安定性が向上した テスト対象システムの安定性が向上することで、 ⾃動テストの信頼性も⾼めることができた
MagicPodミートアップ ヘルススコアNight Agenda | About me & us はじめに ヘルススコアを上げるために取り組んだこと
ヘルススコアを改善する中で起きた嬉しい変化 まとめと今後の課題 01 02 03 04 05
MagicPodミートアップ ヘルススコアNight • テスト⾃動化のベストプラクティスを着実に実践することで、 リグレッションの検知という⽬的を達成することができました • 継続的に、テスト対象システムの変化を報告していくことで、 開発者も含めたチーム全体に⾃動テストが認知されるとともに、 テスト結果が信頼されるようになりました ◦
⾃動テストという資産を活かした新たな取り組みができるように なりました ◦ テスト対象システムの安定性を⾼めることにも繋がっています まとめ
MagicPodミートアップ ヘルススコアNight 今後の課題 • テストが増えることによって実⾏時間が延びる ◦ 並列実⾏を導⼊することで解消しつつあるものの、 テストデータの独⽴性に課題 • 毎回ユニークなデータを作成しなければならないテストが⾃動化でき
ていない ◦ ユーザの新規登録といった⼀部のテストを除き、 ユーザデータなどは作成済みのデータを利⽤している • Web/モバイルを跨ぐテストが⾃動化できていない ◦ 例えば、Webで送信したメッセージをモバイルで確認するなど
MagicPodミートアップ ヘルススコアNight ご清聴ありがとうございました