關(guān)于我們
書(shū)單推薦
新書(shū)推薦
|
高質(zhì)效交付:軟件集成、測(cè)試與 發(fā)布精進(jìn)之道 讀者對(duì)象:適合所有開(kāi)發(fā)人員、測(cè)試人員、運(yùn)維人員和項(xiàng)目經(jīng)理學(xué)習(xí)參考
這是一本介紹軟件交付過(guò)程的“科普小冊(cè)子”。軟件交付過(guò)程是指修改了一行源代碼之后的一系列工作,直到包含這個(gè)改動(dòng)的軟件新版本發(fā)布上線。這需要多久?可能需要幾秒,也可能需要數(shù)個(gè)星期甚至更長(zhǎng)的時(shí)間。本書(shū)介紹在保證一定發(fā)布質(zhì)量的前提下,如何加速這個(gè)過(guò)程,讓它盡量快一點(diǎn)兒,同時(shí)讓我們投入的精力盡量少一點(diǎn)兒。也就是說(shuō),本書(shū)介紹如何讓軟件交付變得更高效。軟件工程、敏捷、精益、持續(xù)集成、持續(xù)交付、DevOps、云原生、研發(fā)效能、平臺(tái)工程等,都對(duì)這個(gè)話題有所貢獻(xiàn)。本書(shū)并不囿于上述某個(gè)特定的“門(mén)派”,而是介紹它們的關(guān)鍵要點(diǎn),介紹如何綜合運(yùn)用它們,并且根據(jù)實(shí)踐有所發(fā)展。
董越,獨(dú)立DevOps咨詢師、《軟件交付通識(shí)》等書(shū)作者、《DevOps實(shí)踐指南》(第2版)等書(shū)譯者。曾任阿里巴巴集團(tuán)研發(fā)效能事業(yè)部架構(gòu)師、高級(jí)產(chǎn)品專家等職,從事Aone/云效DevOps產(chǎn)品設(shè)計(jì)、阿里云專有云集成與發(fā)布解決方案設(shè)計(jì)等工作。在加入阿里巴巴之前,還曾就職于西門(mén)子、摩托羅拉、雅虎、索尼、去哪兒網(wǎng)等大型企業(yè),一直從事軟件配置管理、持續(xù)集成/持續(xù)交付、DevOps、軟件研發(fā)交付效能相關(guān)的工作。當(dāng)前主要從事企業(yè)級(jí)DevOps體系建設(shè)的咨詢和培訓(xùn)工作,幫助華為、中國(guó)工商銀行、交通銀行、招商銀行、中信銀行、中國(guó)移動(dòng)、中國(guó)聯(lián)通、中國(guó)電信、華泰證券、泰康人壽等眾多企業(yè)提升軟件研發(fā)交付效能。牛曉玲,中國(guó)信息通信研究院云計(jì)算與大數(shù)據(jù)研究所審計(jì)與治理部副主任,DevOps標(biāo)準(zhǔn)工作組組長(zhǎng),DevOps國(guó)際標(biāo)準(zhǔn)編輯人。長(zhǎng)期從事開(kāi)發(fā)運(yùn)維方面的研究工作,包括云服務(wù)的運(yùn)維管理系統(tǒng)審查等相關(guān)工作。參與編制《云計(jì)算服務(wù)協(xié)議參考框架》、《對(duì)象存儲(chǔ)》、《云數(shù)據(jù)庫(kù)》、《研發(fā)運(yùn)營(yíng)一體化(DevOps)能力成熟度模型》系列標(biāo)準(zhǔn)和《云計(jì)算運(yùn)維智能化通用評(píng)估方法》等標(biāo)準(zhǔn)20余項(xiàng)。參與多本白皮書(shū)、多份調(diào)查報(bào)告等的編寫(xiě)工作,包括《企業(yè)IT運(yùn)維發(fā)展白皮書(shū)》、《中國(guó)DevOps現(xiàn)狀調(diào)查報(bào)告(2019)》、《中國(guó)DevOps現(xiàn)狀調(diào)查報(bào)告(2020)》和《中國(guó)DevOps現(xiàn)狀調(diào)查報(bào)告(2021)》等。參與DevOps能力成熟度評(píng)估超過(guò)50個(gè)項(xiàng)目,具有豐富的標(biāo)準(zhǔn)編制及評(píng)估測(cè)試經(jīng)驗(yàn)。茹炳晟,騰訊Tech Lead,騰訊研究院特約研究員,中國(guó)計(jì)算機(jī)學(xué)會(huì)(CCF)TF研發(fā)效能SIG主席,《軟件研發(fā)效能度量規(guī)范》標(biāo)準(zhǔn)核心編寫(xiě)專家,中國(guó)商業(yè)聯(lián)合會(huì)互聯(lián)網(wǎng)應(yīng)用技術(shù)委員會(huì)智庫(kù)專家,中國(guó)通信標(biāo)準(zhǔn)化協(xié)會(huì)TC608云計(jì)算標(biāo)準(zhǔn)和開(kāi)源推進(jìn)委員會(huì)云上軟件工程工作組副組長(zhǎng),多本技術(shù)暢銷(xiāo)書(shū)作者。著作有《測(cè)試工程師全棧技術(shù)進(jìn)階與實(shí)踐》、《現(xiàn)代軟件測(cè)試技術(shù)之美》、《軟件研發(fā)效能提升之美》、《軟件研發(fā)效能提升實(shí)踐》、《軟件研發(fā)效能權(quán)威指南》和《多模態(tài)大模型:技術(shù)原理與實(shí)戰(zhàn)》等,譯作有《持續(xù)架構(gòu)實(shí)踐》、《DevOps實(shí)踐指南》(第2版)、《精益DevOps》、和《現(xiàn)代軟件工程》等。QCon、SECon、QECon、Archsummit等技術(shù)峰會(huì)的聯(lián)席主席、出品人和Keynote演講嘉賓。微信公眾號(hào)“茹炳晟聊軟件研發(fā)”主理人。施景豐,北京華佑科技有限公司技術(shù)合伙人,高效運(yùn)維社區(qū)首席咨詢師,復(fù)旦大學(xué)軟件學(xué)院本科生客座導(dǎo)師,2023服貿(mào)會(huì)“企業(yè)數(shù)字化轉(zhuǎn)型論壇”卓越專家,GOPS大會(huì)金牌講師,CI/CD Meetup Online 明星講師,Certified DevOps Enterprise Coach。曾先后就職于用友軟件、中體彩、魅族、美云智數(shù)等知名企業(yè)并擔(dān)任技術(shù)總監(jiān)、工程效率專家,主導(dǎo)工程效率體系與平臺(tái)建設(shè)。專注于數(shù)字化轉(zhuǎn)型/工程效率/DevOps領(lǐng)域,幫助企業(yè)全面提升軟件研發(fā)效能和數(shù)字化能力。石雪峰,京東零售研發(fā)效能專家,主導(dǎo)企業(yè)級(jí)研發(fā)效能體系和研發(fā)數(shù)字化體系建設(shè),開(kāi)放原子開(kāi)源基金會(huì)TOC成員,知識(shí)星球“研發(fā)效能”主理人,極客時(shí)間專欄《DevOps實(shí)戰(zhàn)筆記》主筆,《軟件研發(fā)效能權(quán)威指南》、《Jenkins 2權(quán)威指南》和《高效能團(tuán)隊(duì)模式》等書(shū)的譯著者。王曉翔,獨(dú)立DevOps咨詢師,《DevOps實(shí)踐指南》(第2版)譯者。去哪兒網(wǎng)工程效率部前高級(jí)總監(jiān),曾任奇安信內(nèi)聘顧問(wèn),GOPS深圳大會(huì)金牌講師,2019運(yùn)維行業(yè)年度優(yōu)秀技術(shù)專家,《研發(fā)運(yùn)營(yíng)一體化(DevOps)能力成熟度模型》系列標(biāo)準(zhǔn)咨詢師。在軟件配置管理、過(guò)程管理和工程效率方面有十幾年的工作經(jīng)驗(yàn)。曾在中國(guó)海關(guān)數(shù)據(jù)中心、索尼移動(dòng)通信產(chǎn)品(中國(guó))有限公司等多家公司工作。在去哪兒網(wǎng)任職期間,逐步構(gòu)建起持續(xù)集成、持續(xù)交付流水線,形成以應(yīng)用為中心的全生命周期管理體系,并且通過(guò)平臺(tái)化不斷為研發(fā)團(tuán)隊(duì)賦能,構(gòu)建去哪兒網(wǎng)企業(yè)內(nèi)部的DevOps生態(tài)圈,同時(shí)帶領(lǐng)團(tuán)隊(duì)完成了從傳統(tǒng)配置管理到工程效率團(tuán)隊(duì)的轉(zhuǎn)型。
第1部分 推開(kāi)軟件交付之門(mén)
第1章 軟件交付過(guò)程的范圍 2 1.1 修改了源代碼之后 2 1.2 直到改動(dòng)發(fā)布上線 3 1.3 在軟件開(kāi)發(fā)全過(guò)程中的位置 4 1.4 為什么要這么劃分軟件交付過(guò)程 5 第2章 軟件交付過(guò)程的內(nèi)容 6 2.1 程序改動(dòng)的累積和匯聚 6 2.2 程序形態(tài)的轉(zhuǎn)化 8 2.3 程序質(zhì)量的提升 10 第3章 軟件交付過(guò)程的追求目標(biāo) 13 3.1 整體目標(biāo):為了業(yè)務(wù)的成功 13 3.2 確定需求:有效率地找到有效需求 14 3.3 從確定需求到實(shí)現(xiàn)需求:小步快跑 15 3.4 實(shí)現(xiàn)需求:效率與質(zhì)量 16 3.4.1 體現(xiàn)效率:需求吞吐量 16 3.4.2 體現(xiàn)效率:需求響應(yīng)時(shí)長(zhǎng) 17 3.4.3 質(zhì)量不是越高越好 19 3.4.4 體現(xiàn)質(zhì)量:?jiǎn)栴}出現(xiàn)量 19 3.4.5 體現(xiàn)質(zhì)量:?jiǎn)栴}修復(fù)時(shí)長(zhǎng) 20 3.4.6 要兼顧短期和長(zhǎng)期 20 3.4.7 四個(gè)象限簡(jiǎn)介 21 3.5 軟件交付過(guò)程在四個(gè)象限的優(yōu)化 21 3.5.1 提高需求吞吐量 22 3.5.2 縮短需求響應(yīng)時(shí)長(zhǎng) 22 3.5.3 減少問(wèn)題出現(xiàn)量 23 3.5.4 縮短問(wèn)題修復(fù)時(shí)長(zhǎng) 24 3.6 DORA的DevOps核心指標(biāo) 25 第2部分 軟件交付總體過(guò)程 第4章 持續(xù)集成 28 4.1 什么是持續(xù)集成 28 4.1.1 什么是持續(xù) 28 4.1.2 什么是集成 29 4.2 為什么要持續(xù)集成 30 4.2.1 小批量,減少等待 30 4.2.2 問(wèn)題早發(fā)現(xiàn)、早修復(fù),代價(jià)小 31 4.2.3 頻繁同步以減少?zèng)_突 31 4.3 流水線 33 4.3.1 流水線的誕生 33 4.3.2 流水線包含哪些活動(dòng) 33 4.3.3 流水線的功能 35 第5章 逐特性集成 37 5.1 什么是特性 37 5.2 什么是逐特性集成 38 5.3 仍符合持續(xù)集成的理念 39 5.4 隔離未完成特性的其他方法 40 5.5 何時(shí)不必考慮隔離未完成的特性 41 5.6 當(dāng)特性做不到既小又獨(dú)立時(shí) 42 第6章 在集成之前 44 6.1 第四階段:特性改動(dòng)提交 44 6.1.1 合并請(qǐng)求基礎(chǔ)款:代碼評(píng)審 44 6.1.2 合并請(qǐng)求增強(qiáng)款:代碼評(píng)審+流水線 45 6.1.3 在創(chuàng)建合并請(qǐng)求之前 47 6.2 第三階段:特性改動(dòng)累積 48 6.3 第二階段:代碼改動(dòng)提交 49 6.3.1 代碼改動(dòng)通過(guò)關(guān)卡才出現(xiàn)在目標(biāo)分支 49 6.3.2 在提交時(shí)本地自動(dòng)進(jìn)行質(zhì)量把關(guān) 50 6.3.3 在提交代碼改動(dòng)之前 51 6.4 第一階段:代碼改動(dòng)累積 52 6.4.1 隨時(shí)進(jìn)行的質(zhì)量保證工作 52 6.4.2 實(shí)時(shí)進(jìn)行的質(zhì)量保證工作 53 6.4.3 IDE 54 第7章 持續(xù)交付 55 7.1 什么是持續(xù)交付 55 7.1.1 持續(xù)交付是持續(xù)集成的延伸 56 7.1.2 持續(xù)是適度頻繁 56 7.2 為什么要持續(xù)交付 58 7.3 版本晉級(jí)機(jī)制 59 7.4 部署流水線 61 7.5 邁向持續(xù)部署 63 7.5.1 適當(dāng)?shù)陌l(fā)布頻率 63 7.5.2 如何提高發(fā)布頻率 64 7.5.3 持續(xù)部署 65 第8章 特性間進(jìn)一步解耦 67 8.1 混合自測(cè) 67 8.2 特性摘除 68 8.3 混合測(cè)試 70 8.4 逐特性交付 73 8.5 特性間解耦方法小結(jié) 74 第9章 運(yùn)用精益思想 76 9.1 限制在制品的數(shù)量 76 9.2 優(yōu)化發(fā)布審批 78 9.2.1 什么是發(fā)布審批 78 9.2.2 精簡(jiǎn)發(fā)布審批流程 78 9.2.3 發(fā)布審批的工具支持 79 9.3 消除發(fā)布時(shí)間窗口限制 80 第10章 突破Scrum的若干約束 82 10.1 發(fā)布版本間的交疊 82 10.2 在一次迭代中多次發(fā)布 84 10.3 迭代規(guī)劃內(nèi)容不必都做完 85 10.4 特事特辦 86 第11章 多項(xiàng)內(nèi)容協(xié)同交付 87 11.1 本書(shū)中的微服務(wù)是代稱 87 11.2 提交完整的特性 88 11.3 采用相同的節(jié)奏 89 11.4 特性間完全解耦 90 11.5 按特定的順序發(fā)布 90 第12章 靜態(tài)庫(kù)的交付 92 12.1 什么是靜態(tài)庫(kù) 92 12.2 作為公共基礎(chǔ)庫(kù) 92 12.3 作為整體應(yīng)用的組成部分 93 12.4 作為服務(wù)接口定義 94 第13章 并行的多個(gè)版本序列 96 13.1 版本序列之間的交疊 96 13.2 變體 97 第14章 盡快修復(fù)問(wèn)題 99 14.1 盡快修復(fù)流水線的問(wèn)題 99 14.1.1 為什么要盡快修復(fù) 99 14.1.2 自動(dòng)通知合適的人 100 14.1.3 足夠高的優(yōu)先級(jí) 101 14.1.4 足夠多的相關(guān)信息 101 14.2 盡快修復(fù)測(cè)試發(fā)現(xiàn)的缺陷 102 14.3 盡快解決發(fā)布帶來(lái)的問(wèn)題 102 14.3.1 系統(tǒng)的可觀測(cè)性 103 14.3.2 發(fā)布回滾 103 14.3.3 緊急發(fā)布 104 14.3.4 當(dāng)緊急程度更低一些時(shí) 105 第3部分 程序改動(dòng)的累積和匯聚 第15章 版本控制 108 15.1 什么是版本控制 108 15.2 實(shí)現(xiàn)版本控制的方法和工具 108 15.3 版本命名 109 15.3.1 傳統(tǒng)的版本命名方式 110 15.3.2 SaaS軟件的版本命名 110 15.3.3 考慮版本控制工具的能力 111 15.3.4 考慮制品管理的方法 112 15.4 分支 112 15.4.1 “現(xiàn)代派”分支 113 15.4.2 制品的分支 113 第16章 使用版本控制工具 114 16.1 版本控制工具簡(jiǎn)介 114 16.2 代碼庫(kù)內(nèi)的層次結(jié)構(gòu) 115 16.3 代碼庫(kù)間的層次結(jié)構(gòu) 115 16.4 不應(yīng)放入代碼庫(kù)的內(nèi)容 116 16.4.1 小心二進(jìn)制文件 116 16.4.2 代碼庫(kù)二進(jìn)制文件存儲(chǔ)方案 117 16.4.3 不應(yīng)納入版本控制的內(nèi)容 117 16.5 代碼改動(dòng)與工作項(xiàng)間的關(guān)聯(lián) 118 16.5.1 將代碼改動(dòng)提交記錄關(guān)聯(lián)到工作項(xiàng) 118 16.5.2 將特性的代碼改動(dòng)提交記錄關(guān)聯(lián)到工作項(xiàng) 119 16.6 版本與工作項(xiàng)間的關(guān)聯(lián) 120 16.6.1 送測(cè)特性列表 120 16.6.2 發(fā)布特性列表與發(fā)布說(shuō)明 121 16.7 代碼庫(kù)的體積 121 第17章 分支策略 123 17.1 分支的四個(gè)層級(jí) 123 17.2 生產(chǎn)級(jí)分支 124 17.3 集成級(jí)分支 125 17.3.1 支持交疊:長(zhǎng)集成分支+短發(fā)布分支 126 17.3.2 支持交疊:長(zhǎng)集成分支+長(zhǎng)發(fā)布分支 127 17.3.3 支持交疊:短集成發(fā)布分支 127 17.3.4 支持混合自測(cè)與測(cè)試:長(zhǎng)環(huán)境分支 129 17.3.5 支持混合自測(cè)與測(cè)試:短環(huán)境分支 130 17.3.6 支持特性單獨(dú)測(cè)試和發(fā)布 131 17.4 特性級(jí)分支 132 17.4.1 特性分支從哪里創(chuàng)建、從哪里同步 132 17.4.2 合入集成級(jí)分支時(shí)處理沖突的方法 133 17.4.3 在已提交的特性上繼續(xù)改動(dòng) 134 17.4.4 如何摘除特性 135 17.4.5 何時(shí)刪除特性分支 136 17.5 版本序列級(jí)分支 136 17.5.1 支持多個(gè)版本序列間的交疊 137 17.5.2 支持多個(gè)變體 138 17.6 典型分支策略分析 139 17.6.1 Git Flow 140 17.6.2 GitHub Flow 141 17.6.3 GitLab Flow 141 17.6.4 Aone Flow 143 第18章 使用制品管理工具 144 18.1 制品、制品庫(kù)與制品管理工具 144 18.2 “正式”制品必須來(lái)自流水線上的構(gòu)建 145 18.3 制品庫(kù)間的層次結(jié)構(gòu) 145 18.4 制品庫(kù)內(nèi)的層次結(jié)構(gòu) 146 18.5 記錄制品的屬性信息 147 18.6 避免重復(fù)存儲(chǔ) 147 18.7 制品的尺寸 148 18.8 加速制品存取的方法 149 18.9 制品清理策略 149 第4部分 程序形態(tài)的轉(zhuǎn)化 第19章 構(gòu)建 152 19.1 什么是構(gòu)建 152 19.2 構(gòu)建的可重復(fù)性 153 19.2.1 構(gòu)建的原材料不變 153 19.2.2 構(gòu)建的工具和方法不變 154 19.3 加速構(gòu)建 154 19.3.1 基本方法 155 19.3.2 探索:從程序形態(tài)轉(zhuǎn)化全過(guò)程的視角優(yōu)化 156 19.3.3 探索:一些高端方法 157 19.4 源代碼、構(gòu)建、制品之間的關(guān)聯(lián)關(guān)系 158 第20章 構(gòu)建環(huán)境 160 20.1 什么是構(gòu)建環(huán)境 160 20.2 構(gòu)建環(huán)境標(biāo)準(zhǔn)化 160 20.3 構(gòu)建環(huán)境資源池化 161 20.3.1 構(gòu)建環(huán)境資源池化的價(jià)值 161 20.3.2 保障構(gòu)建所需緩存 162 第21章 部署 164 21.1 自動(dòng)化部署 164 21.2 部署策略 165 21.2.1 生產(chǎn)環(huán)境的部署策略 165 21.2.2 測(cè)試環(huán)境的部署策略 167 21.2.3 客戶端的部署策略 167 21.3 判斷部署成功完成的方法 168 21.4 發(fā)布與部署分離 168 21.5 快速回滾 169 21.6 制品、部署、環(huán)境之間的關(guān)聯(lián)關(guān)系 170 第22章 運(yùn)行環(huán)境 171 22.1 什么是運(yùn)行環(huán)境 171 22.2 運(yùn)行環(huán)境管理的內(nèi)容 172 22.3 管理本地運(yùn)行環(huán)境 172 22.3.1 聲明式 173 22.3.2 只換不修 173 22.4 讓微服務(wù)在整體運(yùn)行環(huán)境中運(yùn)行 174 22.4.1 資源的申請(qǐng)與實(shí)現(xiàn) 174 22.4.2 基礎(chǔ)設(shè)施即代碼與GitOps 174 22.4.3 封裝以降低認(rèn)知負(fù)荷 175 22.5 管理整套環(huán)境 175 22.5.1 何時(shí)需要再搭建一套環(huán)境 175 22.5.2 整套環(huán)境的自動(dòng)生成與分配 176 22.5.3 實(shí)現(xiàn)在整體系統(tǒng)中自測(cè) 177 22.5.4 探索:虛擬獨(dú)占方式 178 22.5.5 測(cè)試環(huán)境和生產(chǎn)環(huán)境的一致性 179 22.5.6 數(shù)據(jù)隔離 180 第23章 SQL變更 181 23.1 什么是SQL變更 181 23.2 自動(dòng)執(zhí)行SQL變更 182 23.3 確保SQL變更質(zhì)量 182 23.4 程序與數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的版本匹配 183 23.5 管理SQL變更的特別之處 183 23.5.1 管理SQL變更的挑戰(zhàn) 184 23.5.2 應(yīng)對(duì)挑戰(zhàn)的常見(jiàn)方法 184 23.5.3 探索:聲明式 185 第24章 應(yīng)用配置參數(shù) 187 24.1 什么是應(yīng)用配置參數(shù) 187 24.2 應(yīng)用配置參數(shù)的管理 188 24.3 如何設(shè)置應(yīng)用配置參數(shù) 188 24.3.1 設(shè)置應(yīng)用配置參數(shù)的方式 189 24.3.2 自動(dòng)執(zhí)行 189 24.3.3 設(shè)置方式的選擇 190 24.3.4 探索:鍵值分離 191 24.3.5 探索:減少人工設(shè)置內(nèi)容 193 24.4 質(zhì)量和安全 193 24.4.1 確保變更質(zhì)量 193 24.4.2 程序與應(yīng)用配置參數(shù)的版本匹配 194 24.4.3 敏感信息管理 195 第5部分 程序質(zhì)量的提升 第25章 靜態(tài)測(cè)試 198 25.1 代碼掃描 198 25.1.1 什么情況下要做代碼掃描 198 25.1.2 什么時(shí)候做代碼掃描 199 25.1.3 必要時(shí)定制規(guī)則 200 25.2 代碼評(píng)審 200 25.2.1 什么情況下要做代碼評(píng)審 200 25.2.2 代碼評(píng)審的顆粒度 201 25.2.3 事前評(píng)審和事后評(píng)審 202 25.2.4 代碼評(píng)審的形式 203 25.2.5 代碼評(píng)審的內(nèi)容 205 25.2.6 代碼評(píng)審的方法:檢查清單 206 25.2.7 探索:代碼評(píng)審時(shí)更方便地查看相關(guān)代碼 206 25.3 軟件成分分析 207 25.3.1 什么情況下要做軟件成分分析 207 25.3.2 什么時(shí)候做軟件成分分析 208 第26章 動(dòng)態(tài)測(cè)試 209 26.1 單元測(cè)試 209 26.1.1 什么情況下要做單元測(cè)試 210 26.1.2 什么時(shí)候做單元測(cè)試 210 26.2 接口自動(dòng)化測(cè)試 211 26.2.1 接口自動(dòng)化測(cè)試的內(nèi)容 211 26.2.2 什么情況下要做接口自動(dòng)化測(cè)試 211 26.2.3 什么時(shí)候做接口自動(dòng)化測(cè)試 212 26.2.4 探索:接口只在一處定義一次 213 26.2.5 流量回放 213 26.3 UI自動(dòng)化測(cè)試 214 26.3.1 什么情況下要做UI自動(dòng)化測(cè)試 214 26.3.2 什么時(shí)候做UI自動(dòng)化測(cè)試 215 26.3.3 錄制還是編寫(xiě) 215 26.4 人工功能測(cè)試 216 26.4.1 什么情況下要做人工功能測(cè)試 216 26.4.2 什么時(shí)候做人工功能測(cè)試 217 26.4.3 探索性測(cè)試 217 第27章 重要但容易被忽略的測(cè)試 218 27.1 非功能測(cè)試 218 27.1.1 測(cè)試內(nèi)容:性能和容量 218 27.1.2 測(cè)試內(nèi)容:安全性 219 27.1.3 測(cè)試內(nèi)容:兼容性 220 27.1.4 測(cè)試內(nèi)容:易用性 220 27.1.5 什么時(shí)候做非功能測(cè)試 220 27.1.6 盡可能自動(dòng)執(zhí)行 221 27.2 生產(chǎn)環(huán)境測(cè)試 221 27.2.1 先在小范圍試用 221 27.2.2 發(fā)布后的功能測(cè)試 223 27.2.3 生產(chǎn)環(huán)境中的非功能測(cè)試 223 第28章 測(cè)試通用要點(diǎn) 225 28.1 程序的輸入:應(yīng)對(duì)無(wú)盡的可能性 225 28.1.1 正常、異常和邊界情況 225 28.1.2 使用等價(jià)類來(lái)應(yīng)對(duì) 226 28.1.3 輸入數(shù)據(jù)不只是函數(shù)的輸入?yún)?shù) 226 28.1.4 組合爆炸 227 28.1.5 測(cè)試覆蓋率 227 28.1.6 用好測(cè)試覆蓋率 228 28.2 程序的輸出:怎樣寫(xiě)斷言 229 28.2.1 程序輸出的多種形式 229 28.2.2 對(duì)輸出進(jìn)行適當(dāng)?shù)男r?yàn) 229 28.3 測(cè)試數(shù)據(jù)準(zhǔn)備 230 28.4 測(cè)試用例間的隔離性 231 28.4.1 防止干擾 231 28.4.2 管理測(cè)試用例間依賴 232 28.5 如何更快地編寫(xiě)和維護(hù)測(cè)試腳本與數(shù)據(jù) 233 28.5.1 測(cè)試腳本的分層與復(fù)用 233 28.5.2 測(cè)試腳本與數(shù)據(jù)相分離 233 28.5.3 測(cè)試數(shù)據(jù)的分層與復(fù)用 234 28.5.4 探索:測(cè)試腳本的自動(dòng)化生成 234 28.6 快速執(zhí)行測(cè)試 235 28.7 探索:測(cè)試驅(qū)動(dòng)開(kāi)發(fā)及其變體 236 28.8 從人員和組織管理角度保障測(cè)試投入 237 28.9 提升人員的測(cè)試能力 237 第29章 測(cè)試通用策略 239 29.1 工作量在不同測(cè)試中的分配 239 29.2 根據(jù)場(chǎng)景選擇合適的測(cè)試力度 240 29.3 測(cè)試時(shí)機(jī)和頻率 242 29.4 增量?jī)?yōu)先 244 29.4.1 優(yōu)先為增量代碼改動(dòng)準(zhǔn)備測(cè)試腳本和用例 244 29.4.2 優(yōu)先執(zhí)行增量代碼改動(dòng)相關(guān)測(cè)試 244 29.4.3 優(yōu)先解決增量代碼改動(dòng)相關(guān)問(wèn)題 245 29.5 技術(shù)債:在必要時(shí)欠債 246 29.6 質(zhì)量門(mén)禁:有原則有靈活性 248 29.6.1 質(zhì)量門(mén)禁可以適當(dāng)通融 248 29.6.2 考慮定制質(zhì)量門(mén)禁規(guī)則 249 29.6.3 考慮忽略某些代碼 249 29.7 Mock還是不Mock,這是個(gè)問(wèn)題 250 29.7.1 單元測(cè)試盡可能使用Mock 250 29.7.2 盡量在完整系統(tǒng)中進(jìn)行其他測(cè)試 251 29.7.3 僅在必要時(shí)使用Mock 251 29.8 質(zhì)量反饋驅(qū)動(dòng)測(cè)試改進(jìn) 252 第30章 缺陷修復(fù) 255 30.1 管理缺陷 255 30.1.1 跟蹤缺陷的方法 255 30.1.2 記錄缺陷相關(guān)信息 256 30.2 需求、測(cè)試、缺陷之間的關(guān)聯(lián)關(guān)系 257 30.2.1 自動(dòng)化測(cè)試時(shí) 257 30.2.2 人工測(cè)試時(shí) 259 30.3 調(diào)試工具 259 30.3.1 調(diào)試器 260 30.3.2 接口調(diào)試工具 260 30.3.3 UI調(diào)試工具 260 30.3.4 探索:復(fù)現(xiàn)運(yùn)行上下文 260 30.4 測(cè)試環(huán)境的環(huán)境問(wèn)題 261 30.4.1 減少測(cè)試環(huán)境的環(huán)境問(wèn)題 261 30.4.2 探索:失敗原因自動(dòng)分類 262 第6部分 雜談 第31章 組織結(jié)構(gòu)與人員職責(zé) 264 31.1 項(xiàng)目制還是產(chǎn)品制 264 31.2 全功能團(tuán)隊(duì)還是職能團(tuán)隊(duì) 265 31.3 團(tuán)隊(duì)的規(guī)模 267 31.4 團(tuán)隊(duì)內(nèi)部分工:誰(shuí)做測(cè)試 267 31.5 團(tuán)隊(duì)間解耦 269 31.6 按業(yè)務(wù)功能劃分并考慮軟件復(fù)用 270 31.7 組織的層級(jí)結(jié)構(gòu) 270 31.8 組織級(jí)支持 271 第32章 平臺(tái)工程:工具平臺(tái)的建設(shè)和維護(hù) 273 32.1 什么是平臺(tái)工程 273 32.2 使用工具代替專職人員的重復(fù)操作 273 32.3 平臺(tái)工程的核心是便捷易用 275 32.4 一體化的工具平臺(tái) 275 32.5 拿來(lái)主義還是自主研制 276 32.6 方案收斂 277 32.7 適當(dāng)寬松的權(quán)限策略 278 32.8 工具可用性 279 第33章 終章:軟件交付10策略 281 33.1 小批量持續(xù)流動(dòng) 281 33.1.1 大批量帶來(lái)等待等問(wèn)題 281 33.1.2 短周期、小顆粒度、減少半成品 282 33.1.3 小批量持續(xù)流動(dòng)的交付過(guò)程 283 33.2 運(yùn)用綜合手段保證質(zhì)量和安全 283 33.2.1 各種各樣的測(cè)試 284 33.2.2 左移+右移 284 33.2.3 開(kāi)發(fā)人員+測(cè)試人員 285 33.2.4 自動(dòng)化測(cè)試+人工測(cè)試 285 33.2.5 綜合運(yùn)用 285 33.3 細(xì)粒度、低耦合、可復(fù)用的架構(gòu) 286 33.3.1 軟件架構(gòu) 286 33.3.2 測(cè)試腳本和測(cè)試數(shù)據(jù)的架構(gòu) 287 33.3.3 組織架構(gòu) 287 33.4 自動(dòng)化與自助化 289 33.4.1 單項(xiàng)活動(dòng)的自動(dòng)化 289 33.4.2 流程的自動(dòng)化 289 33.4.3 自助化 290 33.4.4 相關(guān)支持 290 33.5 加速各項(xiàng)活動(dòng) 290 33.6 及時(shí)修復(fù) 292 33.6.1 為什么要及時(shí)修復(fù) 292 33.6.2 如何做到及時(shí)修復(fù) 292 33.7 完備記錄,便捷查閱 293 33.7.1 跟蹤事項(xiàng),記錄執(zhí)行 294 33.7.2 版本控制 294 33.7.3 關(guān)聯(lián)關(guān)系 295 33.8 標(biāo)準(zhǔn)化和一致性 296 33.8.1 規(guī)范可重復(fù) 296 33.8.2 方案收斂 297 33.8.3 環(huán)境一致性 297 33.9 協(xié)調(diào)完成完整功能 298 33.9.1 背景 298 33.9.2 開(kāi)發(fā)全過(guò)程的協(xié)調(diào) 299 33.9.3 軟件交付過(guò)程的協(xié)調(diào) 299 33.10 基于事實(shí)和數(shù)據(jù)的持續(xù)改進(jìn) 300 33.11 總結(jié) 301 附錄A 數(shù)十年來(lái)的探索 302 附錄B 各類內(nèi)容的版本控制方式 314
你還可能感興趣
我要評(píng)論
|