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
いかにしてテスト文化を醸成させたか.pdf
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
takayuki-hayashi
November 11, 2019
Technology
1.6k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
いかにしてテスト文化を醸成させたか.pdf
SPEEDA Testing Dayでの発表資料です。
takayuki-hayashi
November 11, 2019
More Decks by takayuki-hayashi
See All by takayuki-hayashi
E2Eの過去・現在・未来 そしてE2Eにおいて重要なこと
takayukihayashi
1
520
リーダー、マネージャーが存在しない開発組織のつくり方
takayukihayashi
1
29k
AngularDartでDart入門
takayukihayashi
1
1k
E2Eテスト駆動開発実践記_-_Web用.pdf
takayukihayashi
2
3.5k
KubernetesとGaugeを活用したTDD開発事例
takayukihayashi
0
1k
FlutterとAngularDartを DIとClean Architectureで いい感じにする
takayukihayashi
3
2.3k
Gaugeによるe2eテスト
takayukihayashi
5
29k
Dartエコシステムの紹介
takayukihayashi
2
700
Other Decks in Technology
See All in Technology
AI秘書と毎日働くのはもう当たり前。開発以外の業務に足りない機能をどう埋める?
minorun365
PRO
4
2.2k
Don't write the architecture only in the prompt.
neohsu
0
290
Agent 活用環境の構築・運用のための AWS サービスのご紹介/agentcore-for-building-and-operating-agents
ren8k
1
310
渡米前の準備を制す!re:Invent 2026徹底準備術 / The Ultimate Preparation Guide for re:Invent 2026
yuj1osm
1
490
Content Mapper APIの応用例~CSS Modules、言語ファイル~
uhyo
2
490
あなたのDartコードは丸見えかもしれない ~reFlutterで暴くFlutterアプリの中身と多層防御~
zozotech
PRO
0
740
Adversary Infrastructure Hunting101
disconinja
0
190
仕様駆動開発の、その先へ。決める力と確かめる仕組み
inariku
1
160
AI時代のエンジニアの情報発信〜個人の発信を組織の力に変える〜
ryo_kawamata
0
6.6k
Patterns in AI Driven Software Development
akosma
PRO
0
430
Flutter Widget Previewerで始めるUIプレビューとVRTの自動化
sakusaku3939
0
190
[re:Invent2026事前勉強会(有志開催)]続きは、ラスベガスの廊下で / continue-in-the-vegas-hallway
sh_fk2
0
480
Featured
See All Featured
30 Presentation Tips
portentint
PRO
1
450
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
Bash Introduction
62gerente
615
220k
4 Signs Your Business is Dying
shpigford
187
23k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
320
Site-Speed That Sticks
csswizardry
13
1.6k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
77k
Designing for Performance
lara
612
70k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
310
Transcript
いかにしてテスト文化を醸成させたか 〜SPEEDA事業におけるテストの話〜
自己紹介 • 林 尚之(はやし たかゆき) @t_hyssh • 株式会社ユーザベース ◦ SPEEDA事業
CTO • Agile(XP)、ペアプロ、TDD、DDD • 最近使ってる言語はDart、Kotlin、OCaml等
現在に至るまでの流れ
黎明期 2013年〜
黎明期 〜当時の状況〜 ビジネスをより加速させる上で開発生産 性を上げたいと思っている開発責任者 手動テストに疲弊して現状をなんとかしたいと 思っているQAメンバー 出典:いらすとや
黎明期 〜当時の状況〜 林さん、なにか 案ありません か? アジャイルやりましょ う!(ニヤリ) 出典:いらすとや 注)一応この時点でアジャイル開発 の経験は5年ほどありました。
黎明期 〜結果〜 • E2Eはアジャイル(XP)という文脈で始めた • 意欲のあるメンバーを集めて小さなチームで実施 ◦ 新機能の部分のみE2Eを書き始める • 結果は好評
◦ ただし、好評だったがゆえに次の停滞期を迎えることに・・・・
停滞期 2015年〜
停滞期 〜当時の状況〜 そうだ!E2Eとして自動化さ れてない部分(過去に作った 機能)は全部オフショアに出し ましょう! う〜ん、大丈夫だろうか・・・・ 出典:いらすとや
停滞期 〜結果〜 • 納品されたのはまともに動かないテストコード ◦ 動かすためにかなりのコストを掛ける事に・・・ ◦ この時の不安定なテストには今でも悩まされる事に • そもそもオフショアで正しく成果を出すための準備がこちら側に出来ていなかった
◦ 単に単価が低いからという理由で出してしまったオフショアのアンチパターン
成長期 2017年〜現在
成長期 Gaugeと出会う(ドキュメントとしての表現力がとても良い)
成長期 〜現在〜 • マイクロフロントエンドで新規開発する部分は全てGaugeでE2Eを記述 ◦ ドキュメントとしての表現能力の大幅向上 ◦ モノリシックの部分(オフショアに出した部分も含め)は最低限の保守のみ • Docker、k8sを活用し、再現性を高める
• デプロイメントパイプラインの整備 • 並列実行によるテスト時間の短縮 • コンシューマー駆動契約テストの取り組み(やりたい)
重視している事(3つ)
1. 成果(信頼)
2. 実感
3. 実践
成果(信頼) • 必ず成果を出す ◦ 成果とは「ある事をして得られた良い結果」 ◦ 特にビジネスサイドの人からもわかりやすい成果を出す ▪ 例:バグが少ない、手動テスト時間やリリースサイクルの短縮等 ◦
成果を出すためにも 小さく、細かく始める ▪ 可能であればスパイクを打つ • 成果を出すことによって信頼を得る ◦ 信頼を得られればより広い範囲で E2Eを適用出来るはず ◦ SeleniumとかGaugeがどうこうとかより重要な事 ▪ 自分(達)が今持っているスキルを最大限活かす ▪ 最初のタイミングでチャレンジしすぎると失敗する可能性が高まる
実感 • E2Eに直接関わる人に良さを実感してもらう ◦ ソフトウェアエンジニア、テストエンジニア等 ◦ E2Eを書く人自身が「書いた方が良い」と思える状態にしなければ上手く行かない • Greenを保つ ◦
難易度は高いがこれが実現出来なければ E2Eが形骸化してしまう • 頻繁に実行する ◦ デグレの早期発見 • リファクタリングをする ◦ ここでのリファクタリングはテストのソースコードではなく、テスト対象のソースコード ▪ 「Green維持すればいくらでもリファクタリング出来るね!」というのを実感してもらう
実践 • 何よりも自分自身が第一の実践者となる
まとめ
同じ志や課題感を持つ人を集め、少しずつ確実に成 果を出して実感、信頼を得られるように進める 「それができれば苦労はしないよ!」という声が聞こえてき そうです・・・・。でも、やっぱり「銀の弾丸」も無いのも事 実。。。
ご清聴ありがとうございました。