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
takayuki-hayashi
November 11, 2019
Technology
3
1.4k
いかにしてテスト文化を醸成させたか.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
440
リーダー、マネージャーが存在しない開発組織のつくり方
takayukihayashi
0
28k
AngularDartでDart入門
takayukihayashi
1
810
E2Eテスト駆動開発実践記_-_Web用.pdf
takayukihayashi
2
3.3k
KubernetesとGaugeを活用したTDD開発事例
takayukihayashi
0
840
FlutterとAngularDartを DIとClean Architectureで いい感じにする
takayukihayashi
3
2.1k
Gaugeによるe2eテスト
takayukihayashi
5
28k
Dartエコシステムの紹介
takayukihayashi
2
560
Other Decks in Technology
See All in Technology
CysharpのOSS群から見るModern C#の現在地
neuecc
2
3.2k
スクラムチームを立ち上げる〜チーム開発で得られたもの・得られなかったもの〜
ohnoeight
2
350
20241120_JAWS_東京_ランチタイムLT#17_AWS認定全冠の先へ
tsumita
2
250
Engineer Career Talk
lycorp_recruit_jp
0
150
ハイパーパラメータチューニングって何をしているの
toridori_dev
0
140
【令和最新版】AWS Direct Connectと愉快なGWたちのおさらい
minorun365
PRO
5
750
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
3.8k
マルチプロダクトな開発組織で 「開発生産性」に向き合うために試みたこと / Improving Multi-Product Dev Productivity
sugamasao
1
300
dev 補講: プロダクトセキュリティ / Product security overview
wa6sn
1
2.3k
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
3.2k
Amazon CloudWatch Network Monitor のススメ
yuki_ink
1
200
【若手エンジニア応援LT会】ソフトウェアを学んできた私がインフラエンジニアを目指した理由
kazushi_ohata
0
150
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
222
8.9k
Designing for Performance
lara
604
68k
Music & Morning Musume
bryan
46
6.2k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
A Tale of Four Properties
chriscoyier
156
23k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
24k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
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維持すればいくらでもリファクタリング出来るね!」というのを実感してもらう
実践 • 何よりも自分自身が第一の実践者となる
まとめ
同じ志や課題感を持つ人を集め、少しずつ確実に成 果を出して実感、信頼を得られるように進める 「それができれば苦労はしないよ!」という声が聞こえてき そうです・・・・。でも、やっぱり「銀の弾丸」も無いのも事 実。。。
ご清聴ありがとうございました。