SlideShare a Scribd company logo
1 of 45
Download to read offline
App 階段性發布
App Canary Release
presented by
Chloe Chen (陳芝媛)
2020/01/09
This presentation is provided on a strictly private and confidential basis for information purposes only.
現任 KKBOX 軟體測試工程師,
對怪怪的事情特別好奇,喜歡追溯原因、改善流程。
工作內容從軟體測試二轉成 Release Manager。
致力於改變開發文化,透過工具、指標、科學方法,
使軟體版本從開發到發布的過程變得更快速穩定!
也是個在家中愛講幹話、
跟快速發展的半獸人鬥智的平凡媽媽~ xD
About Me
This presentation is provided on a strictly private and confidential basis for information purposes only.
目錄
● 煤礦坑裡的金絲雀 (Canary Test)
● 為什麼 KKBOX 需要 階段性發布(Canary Release)?
2017~2019 的血淚分享
● 搭配 Canary Release 的流程、工具、觀測機制
● 心得
● 結論
This presentation is provided on a strictly private and confidential basis for information purposes only.
煤礦坑裡的金絲雀
images
This presentation is provided on a strictly private and confidential basis for information purposes only.
階段性發布 for Android, iOS
平台
Android
Play Store
iOS
App Connect Store
開放比率
手動
(3~4 天)
自動
(7 天)
實務
5%, 20%,
50%, 100%
如右圖
用戶可以
手動更新?
NO YES
● 適用於 Regular Release
● 可透過實際用戶的使用來偵測異常
● 可快速發布版本到市場上,
取得用戶回饋
This presentation is provided on a strictly private and confidential basis for information purposes only.
為什麼 KKBOX 需要
階段性發布?
This presentation is provided on a strictly private and confidential basis for information purposes only.
2017 KKBOX App 版本開發進度會議...
請問 Andoid 目前進度?😶
已經給版了,在等 QA 測試...
QA 還在測的樣子..
👷
為什麼又是 QA? QA 不能再快一點嗎?
這樣新功能無法儘速進入市場。👤
我也不想成為 bottleneck 啊! 💂
測試成為版本發布的瓶頸
必須解決! 😑
This presentation is provided on a strictly private and confidential basis for information purposes only.
2017 KKBOX App 測試與發布流程
42 天
This presentation is provided on a strictly private and confidential basis for information purposes only.
2017 KKBOX App 測試與發布流程
5 man-day
This presentation is provided on a strictly private and confidential basis for information purposes only.
2017 KKBOX Android App 回歸測試
This presentation is provided on a strictly private and confidential basis for information purposes only.
2017 KKBOX Android App 回歸測試找出的缺陷
花時間找了一堆 Minor
Issue可是最後都不修,
這些問題幾乎沒客訴 😑
兵貴神速,唯快不破。
This presentation is provided on a strictly private and confidential basis for information purposes only.
2018 KKBOX App 測試與發布流程
5 man-day
This presentation is provided on a strictly private and confidential basis for information purposes only.
2018 H2 KKBOX App 測試與發布流程
但直接向 100% 使用者發布
若有重大問題,
會造成大量客訴 😑
拿掉大型 Regression的風險,改由 Acceptance 分擔
採取小規模發布來降低風險
階段性發布!
Canary Release!
This presentation is provided on a strictly private and confidential basis for information purposes only.
只有階段性發布
但未搭配一些流程跟
工具,是不行的。
This presentation is provided on a strictly private and confidential basis for information purposes only.
一年後...
This presentation is provided on a strictly private and confidential basis for information purposes only.
2019 KKBOX App 測試與發布流程
拿掉大型 Regression的風險,在內部軟體測試期間,
改由更精確的新功能測試、自動化集成驗收測試分擔
減少
人工回歸測試
的成本 👍
This presentation is provided on a strictly private and confidential basis for information purposes only.
2019 KKBOX App 測試與發布流程
搭配內部審核流程,掌握已知風險
Regular Release 採用階段性發布,
由小規模的發布,當作軟體測試的最後延伸的環節,增加多樣性,
觀測外部用戶滿意指標,儘早偵測異常。
加速得到使用者回饋
調整方向 👍
This presentation is provided on a strictly private and confidential basis for information purposes only.
2019 KKBOX App 測試與發布流程
22 天
This presentation is provided on a strictly private and confidential basis for information purposes only.
搭配階段性發布的一些工具跟指標
This presentation is provided on a strictly private and confidential basis for information purposes only.
2019 KKBOX App 內部發布審核(Sign-Off)流程
搭配內部發布審核流程,掌握已知風險
內部發布審核
(Sign-Off)
This presentation is provided on a strictly private and confidential basis for information purposes only.
KKBOX App 內部發布審核(Sign-Off)流程
Regular Release 採用階段性發布,
由小規模的發布,當作軟體測試的最後延伸的環節,增加多樣性
階段性發布
(Canary Release)
This presentation is provided on a strictly private and confidential basis for information purposes only.
階段性發布 for Android, iOS
平台
Android
Play Store
iOS
App Connect Store
開放比率
手動
(3~4 天)
自動
(7 天)
實務
5%, 20%,
50%, 100%
如右圖
用戶可以
手動更新?
NO YES
● 適用於 Regular Release
● 可透過實際用戶的使用來偵測異常
● 可快速發布版本到市場上,
取得用戶回饋
This presentation is provided on a strictly private and confidential basis for information purposes only.
KKBOX App 內部發布審核(Sign-Off)流程
觀測外部用戶滿意指標,儘早偵測異常。
● Crash
● App Rating
● 客訴量
監控指標
(App 滿意指標)
This presentation is provided on a strictly private and confidential basis for information purposes only.
觀測 Crash 指標 - Crash Detection
This presentation is provided on a strictly private and confidential basis for information purposes only.
觀測 Crash 指標 - Daily Crash User Ratio
Daily Crash User Ration 越低越好,
代表 Crash Free 越高
This presentation is provided on a strictly private and confidential basis for information purposes only.
觀測 Crash 指標 - 最新 3 個版本的 Daily Crash 河道圖
根據向使用者開放的 % 數,
確認單一版本的 Crash Ratio 是否過高。 來源:App Center
This presentation is provided on a strictly private and confidential basis for information purposes only.
觀測 Crash 指標 - 最新 3 個版本的 Daily Crash 河道圖
搭配可不可以開 100% 的計算器
This presentation is provided on a strictly private and confidential basis for information purposes only.
觀測 Crash 指標 - 單一版本的 Crash Ratio
Android Play Console 有此功能 👍
iOS App Connect Center 無此功能... 只能自己算。😐
This presentation is provided on a strictly private and confidential basis for information purposes only.
觀測指標 - 總體、單一版本 App Rating
Android Play Console 都有此功能 👍
iOS App Connect Center 無此功能... 只能打 API 回來自己算。😐
This presentation is provided on a strictly private and confidential basis for information purposes only.
觀測 Crash 指標 - 總體、單一版本 App Rating
來源:Android Play Console
This presentation is provided on a strictly private and confidential basis for information purposes only.
觀測 Crash 指標 - 總體、單一版本 App Rating
iOS App Connect Center 無此功能... 只能打 API 回來自己算。😐
This presentation is provided on a strictly private and confidential basis for information purposes only.
觀測 Crash 指標 - 總體、單一版本 App Rating
iOS App Connect Center 無此功能... 只能打 API 回來自己算。😐
方法:透過打 API 把每一頁內的評論搜集進我們的 DB 建檔
https://itunes.apple.com/tw/rss/customerreviews/page=1/id=<ap
p-store-id>/sortby=mostrecent/xml
This presentation is provided on a strictly private and confidential basis for information purposes only.
觀測 Crash 指標 - 總體、單一版本 App Rating
iOS App Connect Center 無此功能... 只能打 API 回來自己算。😐
This presentation is provided on a strictly private and confidential basis for information purposes only.
觀測指標 - App 滿意指標
This presentation is provided on a strictly private and confidential basis for information purposes only.
2019 H2 KKBOX Android 出版狀況
This presentation is provided on a strictly private and confidential basis for information purposes only.
不是每個情況都適合採用階段性發布。
若 App 穩定度較高,採用後一直發 Hotfix 的風險會較小。
(KKBOX App 平均 Crash Free 98~99.6 %)
採用階段性發布,需搭配一些流程、跟工具,配合觀測短期、長期
的指標,才能觀測整體 App Release 是否是健康的?
可以決策是否該停損(Stop Rolling-out),發行 Hotfix。
心得 (1/3)
This presentation is provided on a strictly private and confidential basis for information purposes only.
商業利益:
● 適用於 Regular Release 慢慢發布
○ Hotfix 通常會直接開到 100%
● 有助於快速小規模將新功能發布到市場上並取得回饋
● 甚至可以搭配 A/B Test 來觀察(Android)
App 穩定性維護:
● 有助於小規模觀測版本的穩定性,
及早發現複雜使用環境的相容性問題。
心得 (2/3)
This presentation is provided on a strictly private and confidential basis for information purposes only.
心得 (3/3)
Store Console 其他輔助工具比較:
平台
Android
Play Store
iOS
App Connect Store
開放比率
手動
(3~4 天)
自動
(7 天)
實務
5%, 20%, 50%,
100%
如右圖
用戶可以手動更新? NO
YES
(可彌補
無法手動決定開放%的缺點)
可以觀測
單個版本的生命徵象
Rating, Crash...
YES NO
可以輕易匯出評論追蹤 YES NO
有其他的測試工具 YES NO
Store 審查時間 0.5 ~ 3 HR 5~7 Day
This presentation is provided on a strictly private and confidential basis for information purposes only.
總結 - 階段性發布(Canary Release)
● 適用於 Regular Release.
● 階段性發布前,團隊對已知的風險要有掌握度,才能立即反應
● 可以減少內部的測試時程,加速發布版本到市場上
(42 day → 22 day)
● 需要搭配相關的工具跟指標來衡量版本發布的健康程度,
以決策是否要 100% 發布或是停損
● 可善用各平台發布工具的特性,來微調內部的流程
This presentation is provided on a strictly private and confidential basis for information purposes only.
參考資料
技術文件:
● Google Play Staged Rollout
● iTunes Connects Phased Release
● Microsoft Store Gradual Package Rollout
● iOS 開發筆記 - 透過 iTunesConnect RSS 處理 App
Customer Reviews 資料
This presentation is provided on a strictly private and confidential basis for information purposes only.
Q & A
This presentation is provided on a strictly private and confidential basis for information purposes only.
THANK YOU

More Related Content

Similar to KKBOX App Canary Release (階段性發布)

果合_您的移动应用广告管理专家
果合_您的移动应用广告管理专家果合_您的移动应用广告管理专家
果合_您的移动应用广告管理专家
milido
 
王坚
王坚王坚
王坚
Tao Yu
 
王坚
王坚王坚
王坚
Tao Yu
 
行動商務 - PhoneGapBuild and Upto Market
行動商務 - PhoneGapBuild and Upto Market行動商務 - PhoneGapBuild and Upto Market
行動商務 - PhoneGapBuild and Upto Market
My own sweet home!
 
Our experience to start a startup
Our experience to start a startupOur experience to start a startup
Our experience to start a startup
Yenwen Feng
 

Similar to KKBOX App Canary Release (階段性發布) (20)

Green IT solution--softxpand desktop virtualization solutions
Green IT solution--softxpand desktop virtualization solutionsGreen IT solution--softxpand desktop virtualization solutions
Green IT solution--softxpand desktop virtualization solutions
 
毅佳電腦科技獨家代理:虛擬化軟體softxpand
毅佳電腦科技獨家代理:虛擬化軟體softxpand 毅佳電腦科技獨家代理:虛擬化軟體softxpand
毅佳電腦科技獨家代理:虛擬化軟體softxpand
 
intelligent access control system - 20180628
intelligent access control system - 20180628intelligent access control system - 20180628
intelligent access control system - 20180628
 
Spirent_securityLab-服務介紹_2022.pdf
Spirent_securityLab-服務介紹_2022.pdfSpirent_securityLab-服務介紹_2022.pdf
Spirent_securityLab-服務介紹_2022.pdf
 
果合_您的移动应用广告管理专家
果合_您的移动应用广告管理专家果合_您的移动应用广告管理专家
果合_您的移动应用广告管理专家
 
王坚
王坚王坚
王坚
 
拉动
拉动拉动
拉动
 
王坚
王坚王坚
王坚
 
Developer Series 6x6 Tour: The power of interactive ads
Developer Series 6x6 Tour: The power of interactive adsDeveloper Series 6x6 Tour: The power of interactive ads
Developer Series 6x6 Tour: The power of interactive ads
 
#3月瘋行動 打造行動網站,掌上流量一網打盡
#3月瘋行動 打造行動網站,掌上流量一網打盡#3月瘋行動 打造行動網站,掌上流量一網打盡
#3月瘋行動 打造行動網站,掌上流量一網打盡
 
淺談Android app之攻防思維
淺談Android app之攻防思維淺談Android app之攻防思維
淺談Android app之攻防思維
 
Voice Assistant Use Cases Analysis
Voice Assistant Use Cases AnalysisVoice Assistant Use Cases Analysis
Voice Assistant Use Cases Analysis
 
行動商務 - PhoneGapBuild and Upto Market
行動商務 - PhoneGapBuild and Upto Market行動商務 - PhoneGapBuild and Upto Market
行動商務 - PhoneGapBuild and Upto Market
 
【MMdc 分享】2012年可以為客戶帶來較多營收的兩個行動主題-Mobile page & app marketing
【MMdc 分享】2012年可以為客戶帶來較多營收的兩個行動主題-Mobile page & app marketing【MMdc 分享】2012年可以為客戶帶來較多營收的兩個行動主題-Mobile page & app marketing
【MMdc 分享】2012年可以為客戶帶來較多營收的兩個行動主題-Mobile page & app marketing
 
製作Google analytics流量分析計畫&後續維護
製作Google analytics流量分析計畫&後續維護製作Google analytics流量分析計畫&後續維護
製作Google analytics流量分析計畫&後續維護
 
Our experience to start a startup
Our experience to start a startupOur experience to start a startup
Our experience to start a startup
 
标准版手机兼容性设计指引
标准版手机兼容性设计指引标准版手机兼容性设计指引
标准版手机兼容性设计指引
 
行動網路與傳統通訊的交匯:WhosCall 的產品設計與巨量資料價值-郭建甫 (Gogolook共同創辦人與執行長)
行動網路與傳統通訊的交匯:WhosCall 的產品設計與巨量資料價值-郭建甫 (Gogolook共同創辦人與執行長)行動網路與傳統通訊的交匯:WhosCall 的產品設計與巨量資料價值-郭建甫 (Gogolook共同創辦人與執行長)
行動網路與傳統通訊的交匯:WhosCall 的產品設計與巨量資料價值-郭建甫 (Gogolook共同創辦人與執行長)
 
Appium手机自动化测试 testerhome_bqcon版本
Appium手机自动化测试 testerhome_bqcon版本Appium手机自动化测试 testerhome_bqcon版本
Appium手机自动化测试 testerhome_bqcon版本
 
數位大革命來襲 掌握您的決勝關鍵
數位大革命來襲 掌握您的決勝關鍵數位大革命來襲 掌握您的決勝關鍵
數位大革命來襲 掌握您的決勝關鍵
 

Recently uploaded

黄色网站引流渠道【推广网址☆seotg8.com】黄色网站广告投放
黄色网站引流渠道【推广网址☆seotg8.com】黄色网站广告投放黄色网站引流渠道【推广网址☆seotg8.com】黄色网站广告投放
黄色网站引流渠道【推广网址☆seotg8.com】黄色网站广告投放
jianjuei
 

Recently uploaded (20)

上海长宁区外围预约【选妞网址☆qmm123.com】上海长宁区嫩模
上海长宁区外围预约【选妞网址☆qmm123.com】上海长宁区嫩模上海长宁区外围预约【选妞网址☆qmm123.com】上海长宁区嫩模
上海长宁区外围预约【选妞网址☆qmm123.com】上海长宁区嫩模
 
真的有迷药嗎【网址☆THC88.com】真迷药哪里有卖
真的有迷药嗎【网址☆THC88.com】真迷药哪里有卖真的有迷药嗎【网址☆THC88.com】真迷药哪里有卖
真的有迷药嗎【网址☆THC88.com】真迷药哪里有卖
 
发春药在哪卖【网址☆THC88.com】发春药怎么购买
发春药在哪卖【网址☆THC88.com】发春药怎么购买发春药在哪卖【网址☆THC88.com】发春药怎么购买
发春药在哪卖【网址☆THC88.com】发春药怎么购买
 
直播盒子【破解版下载:K782.com】☆☆☆官网下载☆☆☆爱微奶破解版app最新下载地址
直播盒子【破解版下载:K782.com】☆☆☆官网下载☆☆☆爱微奶破解版app最新下载地址直播盒子【破解版下载:K782.com】☆☆☆官网下载☆☆☆爱微奶破解版app最新下载地址
直播盒子【破解版下载:K782.com】☆☆☆官网下载☆☆☆爱微奶破解版app最新下载地址
 
怎么用手机号码查机主姓名【下单查询网站:KF367.com】专业查询服务,查询个人信息通过手机号码查询身份证信息
怎么用手机号码查机主姓名【下单查询网站:KF367.com】专业查询服务,查询个人信息通过手机号码查询身份证信息怎么用手机号码查机主姓名【下单查询网站:KF367.com】专业查询服务,查询个人信息通过手机号码查询身份证信息
怎么用手机号码查机主姓名【下单查询网站:KF367.com】专业查询服务,查询个人信息通过手机号码查询身份证信息
 
黄色网站引流渠道【推广网址☆seotg8.com】黄色网站广告投放
黄色网站引流渠道【推广网址☆seotg8.com】黄色网站广告投放黄色网站引流渠道【推广网址☆seotg8.com】黄色网站广告投放
黄色网站引流渠道【推广网址☆seotg8.com】黄色网站广告投放
 
三唑仑购买方式【网址☆THC88.com】三唑仑购买渠道
三唑仑购买方式【网址☆THC88.com】三唑仑购买渠道三唑仑购买方式【网址☆THC88.com】三唑仑购买渠道
三唑仑购买方式【网址☆THC88.com】三唑仑购买渠道
 
黑桃A资源【破解版下载:K782.com】☆☆☆官网下载☆☆☆韩漫破解版app最新下载地址
黑桃A资源【破解版下载:K782.com】☆☆☆官网下载☆☆☆韩漫破解版app最新下载地址黑桃A资源【破解版下载:K782.com】☆☆☆官网下载☆☆☆韩漫破解版app最新下载地址
黑桃A资源【破解版下载:K782.com】☆☆☆官网下载☆☆☆韩漫破解版app最新下载地址
 
迷药是怎么迷倒人的【网址☆THC88.com】迷药是真的嗎
迷药是怎么迷倒人的【网址☆THC88.com】迷药是真的嗎迷药是怎么迷倒人的【网址☆THC88.com】迷药是真的嗎
迷药是怎么迷倒人的【网址☆THC88.com】迷药是真的嗎
 
撸撸社【破解版下载:K782.com】☆☆☆官网下载☆☆☆醉花视频破解版app最新下载地址
撸撸社【破解版下载:K782.com】☆☆☆官网下载☆☆☆醉花视频破解版app最新下载地址撸撸社【破解版下载:K782.com】☆☆☆官网下载☆☆☆醉花视频破解版app最新下载地址
撸撸社【破解版下载:K782.com】☆☆☆官网下载☆☆☆醉花视频破解版app最新下载地址
 
Graylog Open 打造資安戰情中心經驗分享 [2024/05/16] @台灣資安大會 @台北南港展覽二館
Graylog Open 打造資安戰情中心經驗分享 [2024/05/16] @台灣資安大會 @台北南港展覽二館Graylog Open 打造資安戰情中心經驗分享 [2024/05/16] @台灣資安大會 @台北南港展覽二館
Graylog Open 打造資安戰情中心經驗分享 [2024/05/16] @台灣資安大會 @台北南港展覽二館
 
国产真实幼女迷奸视频【破解版下载:K782.com】☆☆☆官网下载☆☆☆小马视频破解版app最新下载地址
国产真实幼女迷奸视频【破解版下载:K782.com】☆☆☆官网下载☆☆☆小马视频破解版app最新下载地址国产真实幼女迷奸视频【破解版下载:K782.com】☆☆☆官网下载☆☆☆小马视频破解版app最新下载地址
国产真实幼女迷奸视频【破解版下载:K782.com】☆☆☆官网下载☆☆☆小马视频破解版app最新下载地址
 
上海高端外围包夜【选妞网址☆qmm123.com】上海外围网红模特
上海高端外围包夜【选妞网址☆qmm123.com】上海外围网红模特上海高端外围包夜【选妞网址☆qmm123.com】上海外围网红模特
上海高端外围包夜【选妞网址☆qmm123.com】上海外围网红模特
 
虾漫抖阴【破解版下载:K782.com】☆☆☆官网下载☆☆☆人妖视频破解版app最新下载地址
虾漫抖阴【破解版下载:K782.com】☆☆☆官网下载☆☆☆人妖视频破解版app最新下载地址虾漫抖阴【破解版下载:K782.com】☆☆☆官网下载☆☆☆人妖视频破解版app最新下载地址
虾漫抖阴【破解版下载:K782.com】☆☆☆官网下载☆☆☆人妖视频破解版app最新下载地址
 
广州外围小姐【选妞网址☆qmm123.com】广州约炮交友
广州外围小姐【选妞网址☆qmm123.com】广州约炮交友广州外围小姐【选妞网址☆qmm123.com】广州约炮交友
广州外围小姐【选妞网址☆qmm123.com】广州约炮交友
 
迷奸药制作方法【网址☆THC88.com】迷奸药制作方法是什么
迷奸药制作方法【网址☆THC88.com】迷奸药制作方法是什么迷奸药制作方法【网址☆THC88.com】迷奸药制作方法是什么
迷奸药制作方法【网址☆THC88.com】迷奸药制作方法是什么
 
楼凤宫【破解版下载:K782.com】☆☆☆官网下载☆☆☆性爱视频破解版app最新下载地址
楼凤宫【破解版下载:K782.com】☆☆☆官网下载☆☆☆性爱视频破解版app最新下载地址楼凤宫【破解版下载:K782.com】☆☆☆官网下载☆☆☆性爱视频破解版app最新下载地址
楼凤宫【破解版下载:K782.com】☆☆☆官网下载☆☆☆性爱视频破解版app最新下载地址
 
三唑仑淘宝购买【网址☆THC88.com】三唑仑网购
三唑仑淘宝购买【网址☆THC88.com】三唑仑网购三唑仑淘宝购买【网址☆THC88.com】三唑仑网购
三唑仑淘宝购买【网址☆THC88.com】三唑仑网购
 
查询开房同住人信息【下单查询网站:KF367.com】酒店同住人信息在线查询,查开房记录,开房信息查询,查询酒店入住记录信息
查询开房同住人信息【下单查询网站:KF367.com】酒店同住人信息在线查询,查开房记录,开房信息查询,查询酒店入住记录信息查询开房同住人信息【下单查询网站:KF367.com】酒店同住人信息在线查询,查开房记录,开房信息查询,查询酒店入住记录信息
查询开房同住人信息【下单查询网站:KF367.com】酒店同住人信息在线查询,查开房记录,开房信息查询,查询酒店入住记录信息
 
开房信息查询网站【下单查询网站:KF367.com】手机号查询开房记录,查开房记录,开房信息查询,查询酒店入住记录信息
开房信息查询网站【下单查询网站:KF367.com】手机号查询开房记录,查开房记录,开房信息查询,查询酒店入住记录信息开房信息查询网站【下单查询网站:KF367.com】手机号查询开房记录,查开房记录,开房信息查询,查询酒店入住记录信息
开房信息查询网站【下单查询网站:KF367.com】手机号查询开房记录,查开房记录,开房信息查询,查询酒店入住记录信息
 

KKBOX App Canary Release (階段性發布)

  • 1. App 階段性發布 App Canary Release presented by Chloe Chen (陳芝媛) 2020/01/09
  • 2. This presentation is provided on a strictly private and confidential basis for information purposes only. 現任 KKBOX 軟體測試工程師, 對怪怪的事情特別好奇,喜歡追溯原因、改善流程。 工作內容從軟體測試二轉成 Release Manager。 致力於改變開發文化,透過工具、指標、科學方法, 使軟體版本從開發到發布的過程變得更快速穩定! 也是個在家中愛講幹話、 跟快速發展的半獸人鬥智的平凡媽媽~ xD About Me
  • 3. This presentation is provided on a strictly private and confidential basis for information purposes only. 目錄 ● 煤礦坑裡的金絲雀 (Canary Test) ● 為什麼 KKBOX 需要 階段性發布(Canary Release)? 2017~2019 的血淚分享 ● 搭配 Canary Release 的流程、工具、觀測機制 ● 心得 ● 結論
  • 4. This presentation is provided on a strictly private and confidential basis for information purposes only. 煤礦坑裡的金絲雀 images
  • 5. This presentation is provided on a strictly private and confidential basis for information purposes only. 階段性發布 for Android, iOS 平台 Android Play Store iOS App Connect Store 開放比率 手動 (3~4 天) 自動 (7 天) 實務 5%, 20%, 50%, 100% 如右圖 用戶可以 手動更新? NO YES ● 適用於 Regular Release ● 可透過實際用戶的使用來偵測異常 ● 可快速發布版本到市場上, 取得用戶回饋
  • 6. This presentation is provided on a strictly private and confidential basis for information purposes only. 為什麼 KKBOX 需要 階段性發布?
  • 7. This presentation is provided on a strictly private and confidential basis for information purposes only. 2017 KKBOX App 版本開發進度會議... 請問 Andoid 目前進度?😶 已經給版了,在等 QA 測試... QA 還在測的樣子.. 👷 為什麼又是 QA? QA 不能再快一點嗎? 這樣新功能無法儘速進入市場。👤 我也不想成為 bottleneck 啊! 💂 測試成為版本發布的瓶頸 必須解決! 😑
  • 8. This presentation is provided on a strictly private and confidential basis for information purposes only. 2017 KKBOX App 測試與發布流程 42 天
  • 9. This presentation is provided on a strictly private and confidential basis for information purposes only. 2017 KKBOX App 測試與發布流程 5 man-day
  • 10. This presentation is provided on a strictly private and confidential basis for information purposes only. 2017 KKBOX Android App 回歸測試
  • 11. This presentation is provided on a strictly private and confidential basis for information purposes only. 2017 KKBOX Android App 回歸測試找出的缺陷 花時間找了一堆 Minor Issue可是最後都不修, 這些問題幾乎沒客訴 😑
  • 13. This presentation is provided on a strictly private and confidential basis for information purposes only. 2018 KKBOX App 測試與發布流程 5 man-day
  • 14. This presentation is provided on a strictly private and confidential basis for information purposes only. 2018 H2 KKBOX App 測試與發布流程 但直接向 100% 使用者發布 若有重大問題, 會造成大量客訴 😑 拿掉大型 Regression的風險,改由 Acceptance 分擔
  • 17. This presentation is provided on a strictly private and confidential basis for information purposes only. 只有階段性發布 但未搭配一些流程跟 工具,是不行的。
  • 18. This presentation is provided on a strictly private and confidential basis for information purposes only. 一年後...
  • 19. This presentation is provided on a strictly private and confidential basis for information purposes only. 2019 KKBOX App 測試與發布流程 拿掉大型 Regression的風險,在內部軟體測試期間, 改由更精確的新功能測試、自動化集成驗收測試分擔 減少 人工回歸測試 的成本 👍
  • 20. This presentation is provided on a strictly private and confidential basis for information purposes only. 2019 KKBOX App 測試與發布流程 搭配內部審核流程,掌握已知風險 Regular Release 採用階段性發布, 由小規模的發布,當作軟體測試的最後延伸的環節,增加多樣性, 觀測外部用戶滿意指標,儘早偵測異常。 加速得到使用者回饋 調整方向 👍
  • 21. This presentation is provided on a strictly private and confidential basis for information purposes only. 2019 KKBOX App 測試與發布流程 22 天
  • 22. This presentation is provided on a strictly private and confidential basis for information purposes only. 搭配階段性發布的一些工具跟指標
  • 23. This presentation is provided on a strictly private and confidential basis for information purposes only. 2019 KKBOX App 內部發布審核(Sign-Off)流程 搭配內部發布審核流程,掌握已知風險 內部發布審核 (Sign-Off)
  • 24. This presentation is provided on a strictly private and confidential basis for information purposes only. KKBOX App 內部發布審核(Sign-Off)流程 Regular Release 採用階段性發布, 由小規模的發布,當作軟體測試的最後延伸的環節,增加多樣性 階段性發布 (Canary Release)
  • 25. This presentation is provided on a strictly private and confidential basis for information purposes only. 階段性發布 for Android, iOS 平台 Android Play Store iOS App Connect Store 開放比率 手動 (3~4 天) 自動 (7 天) 實務 5%, 20%, 50%, 100% 如右圖 用戶可以 手動更新? NO YES ● 適用於 Regular Release ● 可透過實際用戶的使用來偵測異常 ● 可快速發布版本到市場上, 取得用戶回饋
  • 26. This presentation is provided on a strictly private and confidential basis for information purposes only. KKBOX App 內部發布審核(Sign-Off)流程 觀測外部用戶滿意指標,儘早偵測異常。 ● Crash ● App Rating ● 客訴量 監控指標 (App 滿意指標)
  • 27. This presentation is provided on a strictly private and confidential basis for information purposes only. 觀測 Crash 指標 - Crash Detection
  • 28. This presentation is provided on a strictly private and confidential basis for information purposes only. 觀測 Crash 指標 - Daily Crash User Ratio Daily Crash User Ration 越低越好, 代表 Crash Free 越高
  • 29. This presentation is provided on a strictly private and confidential basis for information purposes only. 觀測 Crash 指標 - 最新 3 個版本的 Daily Crash 河道圖 根據向使用者開放的 % 數, 確認單一版本的 Crash Ratio 是否過高。 來源:App Center
  • 30. This presentation is provided on a strictly private and confidential basis for information purposes only. 觀測 Crash 指標 - 最新 3 個版本的 Daily Crash 河道圖 搭配可不可以開 100% 的計算器
  • 31. This presentation is provided on a strictly private and confidential basis for information purposes only. 觀測 Crash 指標 - 單一版本的 Crash Ratio Android Play Console 有此功能 👍 iOS App Connect Center 無此功能... 只能自己算。😐
  • 32. This presentation is provided on a strictly private and confidential basis for information purposes only. 觀測指標 - 總體、單一版本 App Rating Android Play Console 都有此功能 👍 iOS App Connect Center 無此功能... 只能打 API 回來自己算。😐
  • 33. This presentation is provided on a strictly private and confidential basis for information purposes only. 觀測 Crash 指標 - 總體、單一版本 App Rating 來源:Android Play Console
  • 34. This presentation is provided on a strictly private and confidential basis for information purposes only. 觀測 Crash 指標 - 總體、單一版本 App Rating iOS App Connect Center 無此功能... 只能打 API 回來自己算。😐
  • 35. This presentation is provided on a strictly private and confidential basis for information purposes only. 觀測 Crash 指標 - 總體、單一版本 App Rating iOS App Connect Center 無此功能... 只能打 API 回來自己算。😐 方法:透過打 API 把每一頁內的評論搜集進我們的 DB 建檔 https://itunes.apple.com/tw/rss/customerreviews/page=1/id=<ap p-store-id>/sortby=mostrecent/xml
  • 36. This presentation is provided on a strictly private and confidential basis for information purposes only. 觀測 Crash 指標 - 總體、單一版本 App Rating iOS App Connect Center 無此功能... 只能打 API 回來自己算。😐
  • 37. This presentation is provided on a strictly private and confidential basis for information purposes only. 觀測指標 - App 滿意指標
  • 38. This presentation is provided on a strictly private and confidential basis for information purposes only. 2019 H2 KKBOX Android 出版狀況
  • 39. This presentation is provided on a strictly private and confidential basis for information purposes only. 不是每個情況都適合採用階段性發布。 若 App 穩定度較高,採用後一直發 Hotfix 的風險會較小。 (KKBOX App 平均 Crash Free 98~99.6 %) 採用階段性發布,需搭配一些流程、跟工具,配合觀測短期、長期 的指標,才能觀測整體 App Release 是否是健康的? 可以決策是否該停損(Stop Rolling-out),發行 Hotfix。 心得 (1/3)
  • 40. This presentation is provided on a strictly private and confidential basis for information purposes only. 商業利益: ● 適用於 Regular Release 慢慢發布 ○ Hotfix 通常會直接開到 100% ● 有助於快速小規模將新功能發布到市場上並取得回饋 ● 甚至可以搭配 A/B Test 來觀察(Android) App 穩定性維護: ● 有助於小規模觀測版本的穩定性, 及早發現複雜使用環境的相容性問題。 心得 (2/3)
  • 41. This presentation is provided on a strictly private and confidential basis for information purposes only. 心得 (3/3) Store Console 其他輔助工具比較: 平台 Android Play Store iOS App Connect Store 開放比率 手動 (3~4 天) 自動 (7 天) 實務 5%, 20%, 50%, 100% 如右圖 用戶可以手動更新? NO YES (可彌補 無法手動決定開放%的缺點) 可以觀測 單個版本的生命徵象 Rating, Crash... YES NO 可以輕易匯出評論追蹤 YES NO 有其他的測試工具 YES NO Store 審查時間 0.5 ~ 3 HR 5~7 Day
  • 42. This presentation is provided on a strictly private and confidential basis for information purposes only. 總結 - 階段性發布(Canary Release) ● 適用於 Regular Release. ● 階段性發布前,團隊對已知的風險要有掌握度,才能立即反應 ● 可以減少內部的測試時程,加速發布版本到市場上 (42 day → 22 day) ● 需要搭配相關的工具跟指標來衡量版本發布的健康程度, 以決策是否要 100% 發布或是停損 ● 可善用各平台發布工具的特性,來微調內部的流程
  • 43. This presentation is provided on a strictly private and confidential basis for information purposes only. 參考資料 技術文件: ● Google Play Staged Rollout ● iTunes Connects Phased Release ● Microsoft Store Gradual Package Rollout ● iOS 開發筆記 - 透過 iTunesConnect RSS 處理 App Customer Reviews 資料
  • 44. This presentation is provided on a strictly private and confidential basis for information purposes only. Q & A
  • 45. This presentation is provided on a strictly private and confidential basis for information purposes only. THANK YOU