SlideShare a Scribd company logo
Chat. 8 驗收測試階段
20180927
驗收測試階段
● 驗收測試應該被放進部署流水線中(在較後面的階段),所以:
○ 驗收測試失敗的版本不能被部署
○ 保持驗收測試一直在通過的狀態
○ 測試失敗時應停下來並想辦法解決
● 問題:
○ 誰是驗收測試的負責人?
○ 如何在相對複雜的驗收測試中找到問題?
誰是驗收測試的負責人?
● 整個交付團隊(含開發團隊與測試團隊)都有維護驗收測試的責任
○ 讓開發團隊知道此次修改可能會產生的影響
○ 不讓測試團隊被修復測試及實作新的測試淹沒
● 縮短「某次修改造成問題」到
「發現需要修改驗收測試以因應修改」的時間
讓失敗可視化
○ 指定Build master (建置負責人)
○ 熔岩燈
○ 建置顯示器
○ ...
找到「罪魁禍首」
● 情境一:
○ 在兩次驗收測試之間可能有多次提交 ->
追蹤上次成功到此次失敗中的所有commit tags
● 情境二:
○ 自動化UI測試失敗 -> 把UI測試過程錄影下來,若失敗就把影片上傳
部署測試
● 測試環境與生產環境盡量一致(含作業系統及中間件) ->
驗證類生產環境自動化部署是否成功的最早機會(有時稱基礎設施測試)
○ 執行小部分的冒煙測試並確認各元件的通訊是正常的
○ 為更多功能性測試提供完好的初始狀態
○ 部署測試是一種特殊的測試,如果失敗就讓整個驗收測試失敗,因為基礎設施未準備好,其他
測試可能都要等到超時才結束
● 食蟻獸點名(Aardvarks):
○ 確保環境測試優先,以加速失敗
驗收測試的性能
● 因為目標是驗證程式是否符合使用者的期待,所以保持自動化驗收測試的結構
與連貫性比執行速度(10分鐘內完成)更重要,執行幾個小時仍可接受,但依舊
有技術可以提供效率:
○ 重構通用的任務
○ 共用昂貴資源
○ 並行測試
○ 使用computing grid
重構通用的任務
● 在測試準備期間提高相同步驟的效率:準備「種子資料」、使用公用API,讓
測試在執行通用任務時的程式碼是相同的
並行測試
● 當測試間是獨立時,可以利用不同的使用者帳號在同一個系統上並行測試
使用計算網格
VM
驗收測試套件
Selenium Grid
VM
受測系統
web server
Amazon EC2
Webbrowser
Selenium
Remoting
Amazon EC2
Webbrowser
Selenium
Remoting
Amazon EC2
Webbrowser
Selenium
Remoting
...
公司內的系統
小結
● 驗收測試的目的:
○ 讓所有成員關注軟體是否滿足業務需求
○ 在大規模修改時提供保護
○ 讓測試團隊專注在真正需要手動測試的測試(探索性測試、易用性測試、使
用者驗收測試、showcase)

More Related Content

Similar to Continuous Delivery Chat8

Foundation of software development 1
Foundation of software development 1Foundation of software development 1
Foundation of software development 1netdbncku
 
2014/02: 嵌入式測試驅動開發
2014/02: 嵌入式測試驅動開發2014/02: 嵌入式測試驅動開發
2014/02: 嵌入式測試驅動開發AgileCommunity
 
软件工程 第八章
软件工程 第八章软件工程 第八章
软件工程 第八章浒 刘
 
Se2009 ch8
Se2009 ch8 Se2009 ch8
Se2009 ch8 浒 刘
 
The way to continuous delivery
The way to continuous deliveryThe way to continuous delivery
The way to continuous delivery
Qiao Liang
 
[2019 DevOpsDays Taipei]Azure DevOps 建立 DevOps 團隊
[2019 DevOpsDays Taipei]Azure DevOps 建立 DevOps 團隊[2019 DevOpsDays Taipei]Azure DevOps 建立 DevOps 團隊
[2019 DevOpsDays Taipei]Azure DevOps 建立 DevOps 團隊
Edward Kuo
 
Project GATE 的敏捷實踐之路
Project GATE 的敏捷實踐之路Project GATE 的敏捷實踐之路
Project GATE 的敏捷實踐之路
AgileCommunity
 
單元測試
單元測試單元測試
單元測試
國昭 張
 
Junit使用指南及作业规范
Junit使用指南及作业规范Junit使用指南及作业规范
Junit使用指南及作业规范
dong jiang
 
利用免費服務建立R的持續整合環境
利用免費服務建立R的持續整合環境利用免費服務建立R的持續整合環境
利用免費服務建立R的持續整合環境
Wush Wu
 
軟體系統測試簡介
軟體系統測試簡介軟體系統測試簡介
軟體系統測試簡介
Wei-Tsung Su
 
SRE Study Notes - Opening, CH1
SRE Study Notes - Opening, CH1SRE Study Notes - Opening, CH1
SRE Study Notes - Opening, CH1
Rick Hwang
 
Foundation of software development 2
Foundation of software development 2Foundation of software development 2
Foundation of software development 2netdbncku
 
2012 China 软件测试大会
2012 China 软件测试大会2012 China 软件测试大会
2012 China 软件测试大会mayun1688
 
LABVIEW的自动化测试之路
LABVIEW的自动化测试之路LABVIEW的自动化测试之路
LABVIEW的自动化测试之路Dean Lee
 
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
Rick Hwang
 
twMVC#24 | 開發團隊的敏捷之路(未完成)
twMVC#24 | 開發團隊的敏捷之路(未完成)twMVC#24 | 開發團隊的敏捷之路(未完成)
twMVC#24 | 開發團隊的敏捷之路(未完成)
twMVC
 
SRE CH27 - Reliable Product Launches at Scale
SRE CH27 - Reliable Product Launches at Scale SRE CH27 - Reliable Product Launches at Scale
SRE CH27 - Reliable Product Launches at Scale
Rick Hwang
 
Duannian agile
Duannian agileDuannian agile
Duannian agiled0nn9n
 
Legacy code 讀書會 1st (Ch1 - Ch5)
Legacy code 讀書會 1st (Ch1 - Ch5)Legacy code 讀書會 1st (Ch1 - Ch5)
Legacy code 讀書會 1st (Ch1 - Ch5)
Fong Liou
 

Similar to Continuous Delivery Chat8 (20)

Foundation of software development 1
Foundation of software development 1Foundation of software development 1
Foundation of software development 1
 
2014/02: 嵌入式測試驅動開發
2014/02: 嵌入式測試驅動開發2014/02: 嵌入式測試驅動開發
2014/02: 嵌入式測試驅動開發
 
软件工程 第八章
软件工程 第八章软件工程 第八章
软件工程 第八章
 
Se2009 ch8
Se2009 ch8 Se2009 ch8
Se2009 ch8
 
The way to continuous delivery
The way to continuous deliveryThe way to continuous delivery
The way to continuous delivery
 
[2019 DevOpsDays Taipei]Azure DevOps 建立 DevOps 團隊
[2019 DevOpsDays Taipei]Azure DevOps 建立 DevOps 團隊[2019 DevOpsDays Taipei]Azure DevOps 建立 DevOps 團隊
[2019 DevOpsDays Taipei]Azure DevOps 建立 DevOps 團隊
 
Project GATE 的敏捷實踐之路
Project GATE 的敏捷實踐之路Project GATE 的敏捷實踐之路
Project GATE 的敏捷實踐之路
 
單元測試
單元測試單元測試
單元測試
 
Junit使用指南及作业规范
Junit使用指南及作业规范Junit使用指南及作业规范
Junit使用指南及作业规范
 
利用免費服務建立R的持續整合環境
利用免費服務建立R的持續整合環境利用免費服務建立R的持續整合環境
利用免費服務建立R的持續整合環境
 
軟體系統測試簡介
軟體系統測試簡介軟體系統測試簡介
軟體系統測試簡介
 
SRE Study Notes - Opening, CH1
SRE Study Notes - Opening, CH1SRE Study Notes - Opening, CH1
SRE Study Notes - Opening, CH1
 
Foundation of software development 2
Foundation of software development 2Foundation of software development 2
Foundation of software development 2
 
2012 China 软件测试大会
2012 China 软件测试大会2012 China 软件测试大会
2012 China 软件测试大会
 
LABVIEW的自动化测试之路
LABVIEW的自动化测试之路LABVIEW的自动化测试之路
LABVIEW的自动化测试之路
 
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
 
twMVC#24 | 開發團隊的敏捷之路(未完成)
twMVC#24 | 開發團隊的敏捷之路(未完成)twMVC#24 | 開發團隊的敏捷之路(未完成)
twMVC#24 | 開發團隊的敏捷之路(未完成)
 
SRE CH27 - Reliable Product Launches at Scale
SRE CH27 - Reliable Product Launches at Scale SRE CH27 - Reliable Product Launches at Scale
SRE CH27 - Reliable Product Launches at Scale
 
Duannian agile
Duannian agileDuannian agile
Duannian agile
 
Legacy code 讀書會 1st (Ch1 - Ch5)
Legacy code 讀書會 1st (Ch1 - Ch5)Legacy code 讀書會 1st (Ch1 - Ch5)
Legacy code 讀書會 1st (Ch1 - Ch5)
 

Continuous Delivery Chat8

Editor's Notes

  1. 驗收測試屬於部署流水線的一部分 所以也需要符合前幾章提到的原則 像是驗收測試失敗的建置版本不能被部署保持驗收測試一直在通過的狀態、當測試失敗時要立即停下來評估問題並想辦法解決他 如果開發人員沒有等測試執行通過
  2. 好處是開發人員才能知道做了此修改可能會產生的影響(e.g.破壞驗收測試) 第三張提過的鈴聲和口哨
  3. 驗收測試不像單元測試那麼單純 單元測試可能在commit之後就壞了 很容易辨識 如何找到問題呢?書裡有一些案例,比如說案例一,在兩次驗收測試之間可能會有多次的commit 失敗的機率變大了 需要設計流水線追蹤跟每次驗收測試有關的commit
  4. 若成本較高可以使用虛擬技術來模擬生產環境 作者用junit測試 因為是按照字母順序 所以用aardvarks做環境測試 90分鐘->30小時