Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
克服⼈人⼼心的障礙 跨越⾃自動化測試的⾨門檻 IThome #Testing Day @tzangms
Slide 2
Slide 2 text
@tzangms StreetVoice 網路路技術部副總經理理
Slide 3
Slide 3 text
先講⼀一下我們⽬目前的狀狀態 在開始講之前呢
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
No content
Slide 6
Slide 6 text
為何開始⾃自動化測試
Slide 7
Slide 7 text
潮! 「可以跟⼈人家說我們有在做⾃自動化測試啊」
Slide 8
Slide 8 text
⼿手動測試太浪費時間 想像⼀一下會員註冊,要填資料還要收信啟⽤用帳號
Slide 9
Slide 9 text
改了了 A 功能,B 功能爆炸
Slide 10
Slide 10 text
每次升級都覺得怕怕的
Slide 11
Slide 11 text
⼈人⼼心的⾨門檻
Slide 12
Slide 12 text
「沒有時間」 「這時間不如拿去寫新功能」 「好⿇麻煩啊」 「不知道怎麼開始」
Slide 13
Slide 13 text
其實⼤大家都不知道⾃自⼰己 浪費了了多少時間
Slide 14
Slide 14 text
你可以⽤用⼀一分半的時間執⾏行行 569 個測試嗎? 不⾏行行嘛!是不是!?
Slide 15
Slide 15 text
有開發過會員系統嗎? 想像⼀一下⼿手動測試的痛苦
Slide 16
Slide 16 text
基本註冊功能 • 填寫帳號資料送出 • 等認證信 • 點認證連結
Slide 17
Slide 17 text
填寫資料送出
Slide 18
Slide 18 text
填⼀一堆資料後 發現程式有問題
Slide 19
Slide 19 text
「咦,真的是程式有問題嗎?」 第⼀一個念念頭是什什麼?
Slide 20
Slide 20 text
⼀一邊開發⼀一邊測試 填⼀一堆資料後發現程式還是有問題 再測⼀一遍
Slide 21
Slide 21 text
然後會發⽣生什什麽事 以下是最常發⽣生的狀狀況
Slide 22
Slide 22 text
帳號名稱⽤用過了了 「可惡惡! ⼜又得想新的帳號名稱」
Slide 23
Slide 23 text
啊 密碼檢查過不了了 當初為何要限制八個字元,⽽而且還要中英⽂文混⽤用啊,混帳 123 不⾏行行嗎?
Slide 24
Slide 24 text
Captcha 「啊,⼜又輸入錯了了」
Slide 25
Slide 25 text
驗證信怎麼還沒收到 ⼼心裡想說「該不會寄到垃圾信件夾了了吧?」 過了了 5 分鐘後 …「啊,終於收到了了!」
Slide 26
Slide 26 text
驗證連結怎麼是錯的 「嘖,好像程式真的沒寫好」
Slide 27
Slide 27 text
終於開發完成 驗證信已經收了了 50 封不⽌止
Slide 28
Slide 28 text
昨天升級了了某個套件 今天同事說:「是不是註冊功能有問題呀?」 你說: 應該不會吧,沒有改註冊功能啊 … (但是⼼心裡冒冷汗) 接著
Slide 29
Slide 29 text
No content
Slide 30
Slide 30 text
如果你決定開始嘗試了了 你可能會碰到什什麽問題
Slide 31
Slide 31 text
卡關 決定嘗試⾃自動化測試後,可能卡關的⾨門檻
Slide 32
Slide 32 text
搞 CI Jenkins or CI Services
Slide 33
Slide 33 text
光是 Jenkins 不難,但是對於剛入⾨門的⼈人來來說,⼀一 堆設定加起來來就會覺得悲傷了了。
Slide 34
Slide 34 text
⽤用 Travis CI 只要這樣 Circle CI 也可以試試,其實看狀狀況會比 Travis CI 更更簡單
Slide 35
Slide 35 text
產⽣生 Coverage 也很簡單 ⽤用 codecov 的話,在 .travis.yml 補上這幾⾏行行就可以了了
Slide 36
Slide 36 text
Coverage report
Slide 37
Slide 37 text
No content
Slide 38
Slide 38 text
⽣生測試資料 ⼀一開始最⼤大的⾨門檻,你要找到對的⼯工具
Slide 39
Slide 39 text
Before After ⼀一開始的做法真的會令⼈人⾺馬上放棄 例例如要測試的⾸首⾴頁有 10 區塊分別顯⽰示不同類型的資料
Slide 40
Slide 40 text
遠端 API 當你碰到外部 API 的時候怎麼測試?
Slide 41
Slide 41 text
你⼀一樣可以 mock
Slide 42
Slide 42 text
如何開始導入測試 同事最難搞了了對不對 (誤)
Slide 43
Slide 43 text
⾃自⼰己先寫測試 然後漸進式地開始慢慢宣導
Slide 44
Slide 44 text
例例如在聊天時不經意說出: 「啊,我現在都不⽤用⼿手動測試了了,好爽啊!」
Slide 45
Slide 45 text
看到覆蓋率的數字 讓⼤大家有感
Slide 46
Slide 46 text
「喔喔喔! Coverage 提升了了百分之⼀一!!」
Slide 47
Slide 47 text
再加上⾃自動部署 ⼤大家就可以感受到好處了了
Slide 48
Slide 48 text
No content
Slide 49
Slide 49 text
從哪邊開始著⼿手 從最重要的地⽅方開始補測試
Slide 50
Slide 50 text
最不希望出錯的地⽅方 例例如: 購買、付款、⾸首⾴頁
Slide 51
Slide 51 text
⼿手動測試最累⼈人的地⽅方 例例如剛才提到的註冊流程
Slide 52
Slide 52 text
⼀一邊開發⼀一邊補測試 image credit from: http://ronjeffries.com/xprog/articles/refactoring-not-on-the-backlog/
Slide 53
Slide 53 text
Refactor 之前 ⾄至少你可以確定不會 Refactor 後爆炸
Slide 54
Slide 54 text
閒閒沒事的時候 Come on, 總是有這種時候吧!?
Slide 55
Slide 55 text
⾃自動化測試的優點
Slide 56
Slide 56 text
安⼼心 再也不⽤用擔⼼心部署上去後爆炸了了
Slide 57
Slide 57 text
升級 framework 也不⽤用怕 最近⼀一⼝口氣升級三個版號,測試都幫我們預先抓出來來了了
Slide 58
Slide 58 text
可以開始做⾃自動化部署 ⾃自動化部署真的很爽
Slide 59
Slide 59 text
No content
Slide 60
Slide 60 text
No content
Slide 61
Slide 61 text
還沒說服你嗎? 來來找我聊聊