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
Асинхронность неизбежна: как мы проектировали сервис уведомлений
lamodatech
0
600
ブラウザ単体でmp4書き出すまで - muddy-web - 2024-12
yue4u
2
460
今からはじめるAndroidアプリ開発 2024 / DevFest 2024
star_zero
0
1k
The Efficiency Paradox and How to Save Yourself and the World
hollycummins
1
440
快速入門可觀測性
blueswen
0
310
複雑な仕様に立ち向かうアーキテクチャ
myohei
0
170
Scalaから始めるOpenFeature入門 / Scalaわいわい勉強会 #4
arthur1
1
300
The rollercoaster of releasing an Android, iOS, and macOS app with Kotlin Multiplatform | droidcon Italy
prof18
0
150
Fibonacci Function Gallery - Part 1
philipschwarz
PRO
0
200
テストケースの名前はどうつけるべきか?
orgachem
PRO
0
130
From Translations to Multi Dimension Entities
alexanderschranz
2
130
Webエンジニア主体のモバイルチームの 生産性を高く保つためにやったこと
igreenwood
0
330
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
32
2.7k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.9k
It's Worth the Effort
3n
183
28k
Docker and Python
trallard
41
3.1k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Producing Creativity
orderedlist
PRO
341
39k
How to train your dragon (web standard)
notwaldorf
88
5.7k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
65k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5k
Building Your Own Lightsaber
phodgson
103
6.1k
A Modern Web Designer's Workflow
chriscoyier
693
190k
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
還沒說服你嗎? 來來找我聊聊