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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Akihiro Yokota
June 04, 2025
Technology
0
210
不安定だったテストが信頼を取り戻すまで / 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
AIを使っていい感じにE2Eテストを書けるようになるまで / Trying to Write Good E2E Tests with AI
katawara
4
2.5k
ユーザーストーリーマッピングから始めるアジャイルチームと並走するQA / Starting QA with User Story Mapping
katawara
0
700
Other Decks in Technology
See All in Technology
歴史に敬意を! パラシュートVPoEが組織と共同で立ち上がる信頼醸成オンボーディング
go0517go
PRO
0
220
20260222ねこIoTLT ねこIoTLTをふりかえる
poropinai1966
0
210
Databricks (と気合い)で頑張るAI Agent 運用
kameitomohiro
0
260
ソフトウェアアーキテクトのための意思決定術: Create Decision Readiness—The Real Skill Behind Architectural Decision
snoozer05
PRO
8
2.3k
LINEヤフーにおけるAI駆動開発組織のプロデュース施策
lycorptech_jp
PRO
0
150
2026-02-25 Tokyo dbt meetup プロダクトと融合したCI/CD で実現する、堅牢なデータパイプラインの作り方
y_ken
0
120
生成AI素人でも玄人でもない私がセイセイAIチョットワカルために勉強したこと
wkm2
2
320
使って学ぼう MCP (と GitHub Codespaces)
tsubakimoto_s
1
220
Goで実現する堅牢なアーキテクチャ:DDD、gRPC-connect、そしてAI協調開発の実践
fujidomoe
3
750
Interop Tokyo 2025 ShowNet Team Memberで学んだSRv6を基礎から丁寧に
miyukichi_ospf
0
190
あすけん_Developers_Summit_2026_-_Vibe_Coding起点での新機能開発で__あすけん_が乗り越えた壁.pdf
iwahiro
0
810
Claude Codeはレガシー移行でどこまで使えるのか?
ak2ie
0
910
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Evolving SEO for Evolving Search Engines
ryanjones
0
140
Site-Speed That Sticks
csswizardry
13
1.1k
Chasing Engaging Ingredients in Design
codingconduct
0
120
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
160
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.1k
Paper Plane
katiecoart
PRO
0
47k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.9k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.2k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
290
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 🙇