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
克服人心的障礙,跨越自動化測試的門檻
Search
Ming Shien Tzang
June 02, 2017
Programming
7
2.4k
克服人心的障礙,跨越自動化測試的門檻
Ming Shien Tzang
June 02, 2017
Tweet
Share
More Decks by Ming Shien Tzang
See All by Ming Shien Tzang
英文有聲書這樣聽就對了
tzangms
0
480
從工程師到總經理
tzangms
19
9.9k
StreetVoice 自動化部署演進
tzangms
0
510
小海之路
tzangms
2
380
The workflow of the New StreetVoice
tzangms
20
2.1k
小海嚴選
tzangms
6
1.4k
StreetVoice: From Windows/ASP to Linux/Python
tzangms
12
1.6k
Deploy Django on Windows Azure web sites in 5 minutes
tzangms
1
1.2k
Other Decks in Programming
See All in Programming
Android 15 でアクションバー表示時にステータスバーが白くなってしまう問題
tonionagauzzi
0
140
Kaigi on Rails 2024 - Rails APIモードのためのシンプルで効果的なCSRF対策 / kaigionrails-2024-csrf
corocn
5
3.4k
Content Security Policy入門 セキュリティ設定と 違反レポートのはじめ方 / Introduction to Content Security Policy Getting Started with Security Configuration and Violation Reporting
uskey512
1
430
ECSのサービス間通信 4つの方法を比較する 〜Canary,Blue/Greenも添えて〜
tkikuc
11
2.3k
Streams APIとTCPフロー制御 / Web Streams API and TCP flow control
tasshi
1
290
Generative AI Use Cases JP (略称:GenU)奮闘記
hideg
0
160
現場で役立つモデリング 超入門
masuda220
PRO
13
2.9k
RailsのPull requestsのレビューの時に私が考えていること
yahonda
5
1.7k
約9000個の自動テストの 時間を50分->10分に短縮 Flakyテストを1%以下に抑えた話
hatsu38
23
11k
ピラミッド、アイスクリームコーン、SMURF: 自動テストの最適バランスを求めて / Pyramid Ice-Cream-Cone and SMURF
twada
PRO
9
1k
OpenTelemetryでRailsのパフォーマンス分析を始めてみよう(KoR2024)
ymtdzzz
4
1.6k
AWS IaCの注目アップデート 2024年10月版
konokenj
3
3.1k
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
31
6.3k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
RailsConf 2023
tenderlove
29
880
Fontdeck: Realign not Redesign
paulrobertlloyd
81
5.2k
What's new in Ruby 2.0
geeforr
342
31k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
664
120k
Building an army of robots
kneath
302
42k
Faster Mobile Websites
deanohume
304
30k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Why Our Code Smells
bkeepers
PRO
334
57k
A designer walks into a library…
pauljervisheath
202
24k
Designing on Purpose - Digital PM Summit 2013
jponch
115
6.9k
Transcript
克服⼈人⼼心的障礙 跨越⾃自動化測試的⾨門檻 IThome #Testing Day @tzangms
@tzangms StreetVoice 網路路技術部副總經理理
先講⼀一下我們⽬目前的狀狀態 在開始講之前呢
None
None
為何開始⾃自動化測試
潮! 「可以跟⼈人家說我們有在做⾃自動化測試啊」
⼿手動測試太浪費時間 想像⼀一下會員註冊,要填資料還要收信啟⽤用帳號
改了了 A 功能,B 功能爆炸
每次升級都覺得怕怕的
⼈人⼼心的⾨門檻
「沒有時間」 「這時間不如拿去寫新功能」 「好⿇麻煩啊」 「不知道怎麼開始」
其實⼤大家都不知道⾃自⼰己 浪費了了多少時間
你可以⽤用⼀一分半的時間執⾏行行 569 個測試嗎? 不⾏行行嘛!是不是!?
有開發過會員系統嗎? 想像⼀一下⼿手動測試的痛苦
基本註冊功能 • 填寫帳號資料送出 • 等認證信 • 點認證連結
填寫資料送出
填⼀一堆資料後 發現程式有問題
「咦,真的是程式有問題嗎?」 第⼀一個念念頭是什什麼?
⼀一邊開發⼀一邊測試 填⼀一堆資料後發現程式還是有問題 再測⼀一遍
然後會發⽣生什什麽事 以下是最常發⽣生的狀狀況
帳號名稱⽤用過了了 「可惡惡! ⼜又得想新的帳號名稱」
啊 密碼檢查過不了了 當初為何要限制八個字元,⽽而且還要中英⽂文混⽤用啊,混帳 123 不⾏行行嗎?
Captcha 「啊,⼜又輸入錯了了」
驗證信怎麼還沒收到 ⼼心裡想說「該不會寄到垃圾信件夾了了吧?」 過了了 5 分鐘後 …「啊,終於收到了了!」
驗證連結怎麼是錯的 「嘖,好像程式真的沒寫好」
終於開發完成 驗證信已經收了了 50 封不⽌止
昨天升級了了某個套件 今天同事說:「是不是註冊功能有問題呀?」 你說: 應該不會吧,沒有改註冊功能啊 … (但是⼼心裡冒冷汗) 接著
None
如果你決定開始嘗試了了 你可能會碰到什什麽問題
卡關 決定嘗試⾃自動化測試後,可能卡關的⾨門檻
搞 CI Jenkins or CI Services
光是 Jenkins 不難,但是對於剛入⾨門的⼈人來來說,⼀一 堆設定加起來來就會覺得悲傷了了。
⽤用 Travis CI 只要這樣 Circle CI 也可以試試,其實看狀狀況會比 Travis CI 更更簡單
產⽣生 Coverage 也很簡單 ⽤用 codecov 的話,在 .travis.yml 補上這幾⾏行行就可以了了
Coverage report
None
⽣生測試資料 ⼀一開始最⼤大的⾨門檻,你要找到對的⼯工具
Before After ⼀一開始的做法真的會令⼈人⾺馬上放棄 例例如要測試的⾸首⾴頁有 10 區塊分別顯⽰示不同類型的資料
遠端 API 當你碰到外部 API 的時候怎麼測試?
你⼀一樣可以 mock
如何開始導入測試 同事最難搞了了對不對 (誤)
⾃自⼰己先寫測試 然後漸進式地開始慢慢宣導
例例如在聊天時不經意說出: 「啊,我現在都不⽤用⼿手動測試了了,好爽啊!」
看到覆蓋率的數字 讓⼤大家有感
「喔喔喔! Coverage 提升了了百分之⼀一!!」
再加上⾃自動部署 ⼤大家就可以感受到好處了了
None
從哪邊開始著⼿手 從最重要的地⽅方開始補測試
最不希望出錯的地⽅方 例例如: 購買、付款、⾸首⾴頁
⼿手動測試最累⼈人的地⽅方 例例如剛才提到的註冊流程
⼀一邊開發⼀一邊補測試 image credit from: http://ronjeffries.com/xprog/articles/refactoring-not-on-the-backlog/
Refactor 之前 ⾄至少你可以確定不會 Refactor 後爆炸
閒閒沒事的時候 Come on, 總是有這種時候吧!?
⾃自動化測試的優點
安⼼心 再也不⽤用擔⼼心部署上去後爆炸了了
升級 framework 也不⽤用怕 最近⼀一⼝口氣升級三個版號,測試都幫我們預先抓出來來了了
可以開始做⾃自動化部署 ⾃自動化部署真的很爽
None
None
還沒說服你嗎? 來來找我聊聊