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
いかにしてテスト文化を醸成させたか.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
3
1.5k
いかにしてテスト文化を醸成させたか.pdf
SPEEDA Testing Dayでの発表資料です。
takayuki-hayashi
November 11, 2019
Tweet
Share
More Decks by takayuki-hayashi
See All by takayuki-hayashi
E2Eの過去・現在・未来 そしてE2Eにおいて重要なこと
takayukihayashi
1
490
リーダー、マネージャーが存在しない開発組織のつくり方
takayukihayashi
1
29k
AngularDartでDart入門
takayukihayashi
1
960
E2Eテスト駆動開発実践記_-_Web用.pdf
takayukihayashi
2
3.5k
KubernetesとGaugeを活用したTDD開発事例
takayukihayashi
0
960
FlutterとAngularDartを DIとClean Architectureで いい感じにする
takayukihayashi
3
2.3k
Gaugeによるe2eテスト
takayukihayashi
5
28k
Dartエコシステムの紹介
takayukihayashi
2
660
Other Decks in Technology
See All in Technology
Exadata Fleet Update
oracle4engineer
PRO
0
1.3k
大規模サービスにおける レガシーコードからReactへの移行
magicpod
1
130
製造業ドメインにおける LLMプロダクト構築: 複雑な文脈へのアプローチ
caddi_eng
1
450
越境する組織づくり ─ 多様性を前提にしたチームビルディングとリードの実践知
kido_engineer
1
100
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
95k
Master Dataグループ紹介資料
sansan33
PRO
1
4.4k
マネージャー版 "提案のレベル" を上げる
konifar
17
12k
Security Diaries of an Open Source IAM
ahus1
0
200
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
6
72k
トップマネジメントとコンピテンシーから考えるエンジニアリングマネジメント
zigorou
3
530
型を書かないRuby開発への挑戦
riseshia
0
180
Secure Boot 2026 - Aggiornamento dei certificati UEFI e piano di adozione in azienda
memiug
0
140
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.8k
RailsConf 2023
tenderlove
30
1.4k
What's in a price? How to price your products and services
michaelherold
247
13k
Un-Boring Meetings
codingconduct
0
220
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
190
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
220
Code Reviewing Like a Champion
maltzj
528
40k
So, you think you're a good person
axbom
PRO
2
1.9k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.1k
Rails Girls Zürich Keynote
gr2m
96
14k
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維持すればいくらでもリファクタリング出来るね!」というのを実感してもらう
実践 • 何よりも自分自身が第一の実践者となる
まとめ
同じ志や課題感を持つ人を集め、少しずつ確実に成 果を出して実感、信頼を得られるように進める 「それができれば苦労はしないよ!」という声が聞こえてき そうです・・・・。でも、やっぱり「銀の弾丸」も無いのも事 実。。。
ご清聴ありがとうございました。