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
不安定だったテストが信頼を取り戻すまで / The Road to Trustworthy T...
Search
Akihiro Yokota
June 04, 2025
Technology
0
150
不安定だったテストが信頼を取り戻すまで / The Road to Trustworthy Tests
2025/06/04 に開催された、Autify Community Meetup 2025 #2 でお話させていただきました。
Akihiro Yokota
June 04, 2025
Tweet
Share
More Decks by Akihiro Yokota
See All by Akihiro Yokota
ユーザーストーリーマッピングから始めるアジャイルチームと並走するQA / Starting QA with User Story Mapping
katawara
0
540
Other Decks in Technology
See All in Technology
〜『世界中の家族のこころのインフラ』を目指して”次の10年”へ〜 SREが導いたグローバルサービスの信頼性向上戦略とその舞台裏 / Towards the Next Decade: Enhancing Global Service Reliability
kohbis
2
1k
OpenTelemetryセマンティック規約の恩恵とMackerel APMにおける活用例 / SRE NEXT 2025
mackerelio
2
1.6k
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
2
7.8k
ポストコロナ時代の SaaS におけるコスト削減の意義
izzii
1
200
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
10
130k
【LT会登壇資料】TROCCO新コネクタ「スマレジ」を活用した直営店データの分析
kazari0425
1
160
SREのためのeBPF活用ステップアップガイド
egmc
1
830
マルチプロダクト環境におけるSREの役割 / SRE NEXT 2025 lunch session
sugamasao
1
320
オフィスビルを監視しよう:フィジカル×デジタルにまたがるSLI/SLO設計と運用の難しさ / Monitoring Office Buildings: The Challenge of Physical-Digital SLI/SLO Design & Operation
bitkey
1
320
公開初日に Gemini CLI を試した話や FFmpeg と組み合わせてみた話など / Gemini CLI 初学者勉強会(#AI道場)
you
PRO
0
950
DatabricksにOLTPデータベース『Lakebase』がやってきた!
inoutk
0
150
データ基盤からデータベースまで?広がるユースケースのDatabricksについて教えるよ!
akuwano
3
160
Featured
See All Featured
Code Review Best Practice
trishagee
69
19k
Producing Creativity
orderedlist
PRO
346
40k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.4k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
700
Raft: Consensus for Rubyists
vanstee
140
7k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
Statistics for Hackers
jakevdp
799
220k
The World Runs on Bad Software
bkeepers
PRO
69
11k
Transcript
© Alp, Inc. 2025/06/04 Autify Community Meetup 2025 #2 不安定だったテストが
信頼を取り戻すまで
© Alp, Inc. はじめに 自己紹介 あきさん(Akihiro YOKOTA) • アルプ株式会社 QAエンジニア
• X: @katawara 名刺管理の会社でバックエンドエンジニアやEMを経 て、QAチームの立ち上げから、全社横断のQA組織を 作るまでを経験。 2023年からアルプ株式会社に入社。社内唯一のQAエ ンジニアとしてできることは何かを日々模索する。
© Alp, Inc. BtoBサブスクリプションビジネスのための 販売管理システム 売上回収まで実現する法人向け 請求・決済システム 提供する2つのプロダクト 販売管理システム 請求‧決済システム
© Alp, Inc. 多くのビジネスがサービス化(XaaS)している • 顧客起点での継続的な関係が重要視され、またIoTやAIのようなデジタル技術の普及により、サービス型のビジネスモデルへのシフトが一層 進んでいる。 • SaaSを始めとして市場規模も右肩上がりで伸びており、今後もさらなる成長が見込まれる。 SaaS
PaaS IaaS MaaS DaaS BPaaS ・ ・ ・ SaaS 1兆2,284億円 (2022年度) 1兆8,330億円 (2026年度予測) PaaS 4,221億円 (2022年度) 7,166億円 (2026年度予測) IaaS 6,272億円 (2022年度) 8763億円 (2026年度予測) 参照:株式会社富士通キメラ総研『2023 クラウドコンピューティングの現状と将来展望 市場編/ベンダー戦略編』
© Alp, Inc. サービス化に伴う変化と課題 • 従来のモノ売りからサービス化へのシフト伴い、プライシングや販売オペレーションに大きな変化が発生します。 • それらの変化に対しては、従来の仕組みでは対応できないことが多く、新たな販売管理の仕組みを整えることが必要です。 モノ 単一価格
一括売り サービス 月額課金 年額課金 毎月請求 一括前払い 日割り など 定額課金 従量課金 アカウント課金 利用実績に応じた課金 成果報酬に応じた課金 など 継続的なプライシング 戦略や顧客ニーズ、市場トレンドに合わせて流動的にプライシングも変化 プライシングの変化 オペレーションの変化 モノ 期間の概念なし サービス 契約管理 請求管理 請求/決済 入金管理・督促 事業分析 基本的に単価×数量の 1回課金 販売時に1回 請求書払いがメイン 1回課金の為頻度は少ない 新規販売の分析がメイン 期間の概念あり 時系列での管理が必要 継続的な課金が発生 従量課金の計算も必要 継続的な業務が発生 決済手段も多様化 継続的な課金の為高頻度 MRR/チャーンレート等 特有のKPI分析が必要 継続的な契約が前提となる為、販売オペレーションは複雑化する一方、正確性の担保は必要 新たに考慮が必要な要素が増加
© Alp, Inc. © Alp, Inc. 前提
© Alp, Inc. 手動テスト ローコードテスト 手動テスト・ローコードテスト・コードベーステストを場面に応じて使い分け アルプのテストの構成 コードベーステスト • 他社サービスとの連携が必要なテス
トが主戦場 • コードベースで実装すると大変なも の(メール受信など)でも活用 • 新規開発で作ったものに対して実施 • 自社内で完結できるテストはこちら を優先的に検討 • ハッピーパスを中心に、マイナーな 操作でテストを忘れがちなシナリオ までをカバー
© Alp, Inc. • シナリオが成功したか失敗したかをまとめて見られる形で表示 ◦ 普段はテストプランをテーマごとに分割しているので、まとめて俯瞰したかった • 月あたりの各シナリオの成功率、シナリオ x
失敗原因のヒートマップ、一日のシナリオ失敗数をトラッキング ◦ 週次で集計して推移を見ている 社内向けにはLooker StudioやGoogle Spreadsheetで集計したものを共有している データ集計フロー
© Alp, Inc. 参考:ダッシュボード(Google Spreadsheet)
© Alp, Inc. 参考:ダッシュボード(一部抜粋:Looker Studio)
© Alp, Inc. © Alp, Inc. 1回目のチーム移譲
© Alp, Inc. • 先代QAエンジニアの卒業に伴い、QAエンジニア としては一人に • この時点ですでに、ローコードの自動テストと コードベースの自動テストは存在していた •
しばらく自分が中心になって見てきたが、テスト が失敗しても一部の人だけが見ている状態が続く 入社3ヶ月目 〜 の状況
© Alp, Inc. もっとテストに関心を持ってほしい・・・ 募るもやもや 重要な失敗かもしれないのに・・・ みんなで面倒見る体制にしたい・・・ とはいえ、毎回メンションするのも・・・
© Alp, Inc. シナリオごとに担当チームを決めて 失敗したときに自動で通知すれば 自然と見てもらえるようになるのでは
© Alp, Inc.
© Alp, Inc. テストが失敗したら関係チームに メンションできるようになりました めでたしめでたし
© Alp, Inc. と思ったのもつかの間・・・
© Alp, Inc.
© Alp, Inc. • 問い合わせなどと混ざってしまい、テスト以上に反応しなければいけないメンションを見逃す事態が起きてし まった • チーム内で担当を決めたとて、そのスレッドで議論を始めてしまうと、それはそれで通知が飛んで、結局アテ ンションが奪われてしまった •
良かれと思ってやったことがチームの活動の足かせになってしまっていた ☠ 開発チームからのギブアップ宣言 ↓ • チームへのメンションはやめて、自分とそのチームのマネージャーだけのメンションに切り替え • 状況は巻き戻り、それどころかテストはむしろ信頼されなくなってしまった 🥺
© Alp, Inc. © Alp, Inc. 信頼を取り戻すために
© Alp, Inc. とはいえ、たしかに • 個人としても、あんまりうまくいってないかも、という体感は実はあった • が、数値的根拠がなかった ということで •
まずはファクトを集めることから始めた • スプレッドシートに失敗のログを全部手動で転記 • 毎週集計して分析結果をつぶやくという活動を草の根的に開始 まずはファクト
© Alp, Inc.
© Alp, Inc.
© Alp, Inc. • 失敗している中で80%近くはflakyなテストで、再実行すれば大体通るが、たまに連続で失敗する • 多い日は10件近くの失敗の通知が来る • 引き継いだテストの中にはほとんど中身を見たことのないものもある 改めて状況を言語化してみると
これではいけませんね?
© Alp, Inc. flaky testの撲滅を目指す ◦ Jenkins経由で行うバッチ実行に時間がかかることがある ◦ ステータス反映に時間がかかることがある ◦
月をまたぐと、請求書の明細内容が変化して、月初になるたびに必ずテストが失敗する ◦ テストのタイミングによって外部サービスの認証トークンが切れていて、連携処理が継続できない など 信頼を取り戻す・1
© Alp, Inc.
© Alp, Inc. とにかく経過観察と発信を続ける ◦ 定点観測を続けて、変化を伝え続ける ◦ 続けていれば、気にしている人は案外見てくれている ◦ 何も失敗がない日はお祝いする
🎉🎉🎉 信頼を取り戻す・2
© Alp, Inc. 肥大化しすぎたテストの実行をやめる ◦ 改めて、開発チームを巻き込んで本当に必要なテストだけを精査する ◦ テストの意図を読み解き、自身でも説明できるテストだけが残るようにする ◦ Developer環境、Staging環境、それぞれに散っていたものをなるべくDeveloper環境に集約する
◦ 一部はコードベースのテストに移行する 信頼を取り戻す・3
© Alp, Inc. • ときには自己解決、ときには開発チームの改善に助けられながら、テストの失敗を大幅に低減 • 毎日数件の失敗したテストを確認する日々から、毎月数件の失敗したテストを確認する日々へ 結果
© Alp, Inc. © Alp, Inc. その後
© Alp, Inc. 自分が別のチームに軸足を移すことになり、改めてテストを開発チームに引き継ぐことになった 今度はメトリクスも見ているので、自信をもって引き渡しができた 基本的なメンテナンスは開発チームに移譲 アドバイスはさせてもらっているが、苦戦しながらも開発チーム中心に対応してくれている 後日談
© Alp, Inc.
© Alp, Inc. 信頼されるテストとは • 基本落ちない • 落ちるときは何かを検知したとき • あってよかった、見落としていた、という気付きを与えるもの
信頼を得るためには • 何度も繰り返し起きる失敗はちゃんと撲滅する ◦ 解決策を開発チームが知っていることも多いので、困ったときは相談する • 計測し、改善し、それを伝える • ときには、開発チームも巻き込みつつ既存のテストを見直すことも必要 まとめ
© Alp, Inc. © Alp, Inc. Thank you 🙇