《持續(xù)交付發(fā)布可靠軟件的系統(tǒng)方法》讀書筆記
軟件構(gòu)成部分:可執(zhí)行的代碼遮晚、配置信息、運行環(huán)境窍箍、數(shù)據(jù)
- 不同環(huán)境下只進(jìn)行一次編譯
- 對環(huán)境的任何修改都應(yīng)該作為配置信息管理值桩,配置信息的更改都需要經(jīng)過測試
- 如果運行環(huán)境需要修改,則修改后的環(huán)境也需要進(jìn)行測試染服。環(huán)境包括:操作系統(tǒng)配置裂垦、應(yīng)用程序依賴的軟件集、網(wǎng)絡(luò)配置及任何基礎(chǔ)設(shè)置肌索、外部系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)發(fā)生變化,同樣需要經(jīng)過測試
反饋流程:指完全以自動化的方式盡可能地測試每一次變更
- 創(chuàng)建可執(zhí)行代碼的流程
- 單元測試
- 質(zhì)量檢測:測試覆蓋率以及其他與技術(shù)相關(guān)的度量項
- 功能測試驗收
- 性能、有效性诚亚、安全性等非功能測試
- 探索性測試晕换,給客戶/最終應(yīng)用演示
自動化測試反饋
【commit階段】
- 運行速度快
- 盡可能全面,75%代碼庫覆蓋率
- 環(huán)境中立站宗,相對生產(chǎn)環(huán)境簡單廉價
- 如果出現(xiàn)問題闸准,絕不發(fā)布
【commit之后測試】 - 運行速度慢一些,適合并行執(zhí)行
- 即使有些測試問題梢灭,也可以發(fā)布應(yīng)用程序
- 運行環(huán)境盡可能與生產(chǎn)相同
不同版本夷家、不同環(huán)境的配置放在版本控制中
- 開發(fā)人員都擁有自己的專屬開發(fā)環(huán)境
- 無論部署在什么目標(biāo)環(huán)境都應(yīng)采用同一種部署方法
- 開發(fā)環(huán)境是特例,可以有多變性部署方法
軟件的交付原則
- 為軟件的發(fā)布創(chuàng)建一個可重復(fù)且可靠的過程
- 將幾乎所有的事情自動化(構(gòu)建敏释、部署库快、測試、發(fā)布)
- 把所有的東西都納入版本控制(需求文檔钥顽、測試腳本义屏、自動化測試用例、網(wǎng)絡(luò)配置腳本蜂大、部署腳本闽铐、數(shù)據(jù)庫創(chuàng)建、升級奶浦、回滾和初始化腳本兄墅、庫文件、應(yīng)用程序依賴的軟件集澳叉、工具鏈及技術(shù)文檔等)
- 找到流程中最痛苦的事情隙咸,并提交頻繁地進(jìn)行:如果集成最痛苦,那應(yīng)在開始階段就不斷進(jìn)行集成耳高、測試扎瓶;如果發(fā)布痛苦,每次提交并通過自動化測試后就進(jìn)行發(fā)布
- 用戶故事只有到了已發(fā)布才算完成泌枪,交付成果屬于每個成員概荷,交付前每個成員都為其負(fù)責(zé)
- 持續(xù)改進(jìn),交付過程中碌燕,整個團(tuán)隊召開回顧會議误证,提出改進(jìn)方向及方法,每個改進(jìn)點應(yīng)該同一個人負(fù)責(zé)跟蹤修壕,確保改進(jìn)被執(zhí)行愈捅,下一次回顧會議,匯報結(jié)果慈鸠。