計(jì)算機(jī)軟件已經(jīng)應(yīng)用到人們生活的各個(gè)領(lǐng)域。一方面,隨著軟件的普及,人們對(duì)軟件質(zhì)量的要求越來(lái)越高; 另一方面,由于軟件系統(tǒng)變得越來(lái)越龐大而復(fù)雜,如何提高軟件質(zhì)量是廣大技術(shù)人員所關(guān)注的,這使得軟件開發(fā)人員和軟件測(cè)試人員面臨著巨大挑戰(zhàn)。所以,保證軟件質(zhì)量是軟件工程領(lǐng)域一直在深入研究的課題之一。
軟件測(cè)試技術(shù)本身是不斷發(fā)展的。目前,提高軟件質(zhì)量的方法就是在提高軟件測(cè)試人員技術(shù)水平的同時(shí)規(guī)范并優(yōu)化軟件開發(fā)過程的管理。但軟件測(cè)試在國(guó)內(nèi)仍然處于發(fā)展的初期,在測(cè)試標(biāo)準(zhǔn)、測(cè)試計(jì)劃的制訂,測(cè)試方法的使用和推廣,測(cè)試的組織和管理等方面處于不斷發(fā)展完善階段,處在一個(gè)“百家爭(zhēng)鳴”的時(shí)期。在軟件測(cè)試行業(yè)表面“蒸蒸日上”的現(xiàn)象背后,同時(shí)也存在著軟件質(zhì)量危機(jī)。
基于這種情況,國(guó)內(nèi)許多高校的計(jì)算機(jī)、軟件工程及其相關(guān)專業(yè)紛紛開設(shè)“軟件測(cè)試”課程以培養(yǎng)更多的軟件測(cè)試人才。目前,市場(chǎng)上的軟件測(cè)試的精品教材少,尤其對(duì)軟件測(cè)試技術(shù)介紹全面、深入的教材更少。為了適應(yīng)當(dāng)前教學(xué)和軟件測(cè)試技術(shù)人員的需要,編者查閱了大量國(guó)內(nèi)外有關(guān)軟件測(cè)試方面的著作和文獻(xiàn),并結(jié)合自己多年的從業(yè)和教學(xué)經(jīng)驗(yàn)編寫了本書。
本書的特點(diǎn)是對(duì)測(cè)試技術(shù)介紹全面,不但闡述了所有基本的軟件測(cè)試技術(shù),而且介紹了許多高級(jí)主題和專門應(yīng)用系統(tǒng)的測(cè)試技術(shù),并附有許多測(cè)試案例。
本書共分14章,第1章從討論軟件測(cè)試的數(shù)學(xué)基礎(chǔ)入手,闡述了軟件測(cè)試的發(fā)展史、軟件測(cè)試的定義及基本原則等方面的基礎(chǔ)知識(shí),也分析了人工智能技術(shù)在測(cè)試領(lǐng)域的應(yīng)用和發(fā)展; 第2章介紹了靜態(tài)測(cè)試技術(shù); 第3章全面地分析了動(dòng)態(tài)測(cè)試技術(shù),包括黑盒測(cè)試技術(shù)和白盒測(cè)試技術(shù)等; 第4~7章分別介紹了單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試及驗(yàn)收測(cè)試技術(shù); 第8章介紹了負(fù)載壓力測(cè)試; 第9章詳細(xì)闡述了App移動(dòng)應(yīng)用測(cè)試; 第10章詳細(xì)分析了微服務(wù)架構(gòu)應(yīng)用測(cè)試; 第11章介紹了嵌入式系統(tǒng)測(cè)試; 第12章介紹了游戲測(cè)試; 第13章全面分析了軟件測(cè)試管理; 第14章介紹了軟件測(cè)試工具,分析了自動(dòng)化測(cè)試和手工測(cè)試的優(yōu)點(diǎn)與缺點(diǎn)等方面的內(nèi)容。
本書由杜慶峰編著,在編寫的過程中韓永琦、張雙俐、殷康麟、邱娟等為本書做了插圖繪制、案例程序的調(diào)試和相關(guān)校對(duì)工作,在此一并致謝。
本書在編寫過程中參閱了大量國(guó)內(nèi)外同行的著作及文獻(xiàn),汲取了軟件測(cè)試領(lǐng)域的最新知識(shí)。在此,對(duì)這些作者表示深深的感謝。
由于編者的水平有限、時(shí)間倉(cāng)促,書中難免存在疏漏之處,希望大家批評(píng)指正。
編者2020年6月
杜慶峰,教授,博導(dǎo),同濟(jì)大學(xué)軟件學(xué)院
研究領(lǐng)域
1.軟件工程(軟件過程控制及度量、軟件測(cè)試技術(shù)、軟件項(xiàng)目管理、軟件成本估算及分析與設(shè)計(jì)建摸)
2.非線性矢量海量數(shù)據(jù)解析與壓縮建摸及其算法
3.大規(guī)模時(shí)態(tài)地理信息系統(tǒng)(GIS)數(shù)據(jù)存取與管理
4.大規(guī)模海量數(shù)據(jù)分布式并行處理,云計(jì)算
工作經(jīng)驗(yàn)
1991年7月---2003年11月:
2003年至今,同濟(jì)大學(xué)軟件學(xué)院,中國(guó)軟件測(cè)試認(rèn)證委員會(huì)資深專家、專家組組長(zhǎng),中國(guó)軟件行業(yè)協(xié)會(huì)軟件過程改進(jìn)分會(huì)專家,同濟(jì)大學(xué)第二屆教學(xué)質(zhì)量督導(dǎo)專家,國(guó)家自然科學(xué)基金委員會(huì)評(píng)議專家,同濟(jì)大學(xué)教學(xué)名師.
1994年11月~2003年3月在上海華騰軟件公司工作.
1993年10~1994年11月在安徽大潮軟件技術(shù)公司從事軟件開發(fā)及管理.
1988年7月~1993年10月在安徽省測(cè)繪局工作.
2013年12~2014年7月在美國(guó)圣地亞哥州立大學(xué)高級(jí)研究訪問學(xué)者.
從事的主要項(xiàng)目有:
1)主持國(guó)家自然科學(xué)基金項(xiàng)目《SVG格式的時(shí)態(tài)GIS數(shù)據(jù)動(dòng)態(tài)解析模型及增量存取機(jī)制研究》.
2)參與國(guó)家自然科學(xué)基金青年科學(xué)基金項(xiàng)目《基于熵的成本估算關(guān)鍵數(shù)據(jù)集合的發(fā)現(xiàn)方法》(第二).
目錄
第1章軟件測(cè)試基礎(chǔ)知識(shí)
1.1軟件測(cè)試和軟件質(zhì)量
1.1.1什么是軟件測(cè)試
1.1.2軟件質(zhì)量的定義
1.1.3軟件測(cè)試和軟件質(zhì)量保證的區(qū)別
1.1.4進(jìn)行多少測(cè)試才終止
1.2為什么需要軟件測(cè)試
1.2.1導(dǎo)致軟件缺陷的原因
1.2.2軟件測(cè)試在軟件開發(fā)、維護(hù)和使用中的角色
1.2.3軟件測(cè)試心理學(xué)
1.3軟件測(cè)試的目的
1.4軟件測(cè)試的原則
1.4.1所有的軟件測(cè)試都應(yīng)追溯到用戶需求
1.4.2盡早地和不斷地進(jìn)行軟件測(cè)試
1.4.3不可能完全地測(cè)試
1.4.4增量測(cè)試,由小到大
1.4.5避免測(cè)試自己的程序
1.4.6設(shè)計(jì)完善的測(cè)試用例
1.4.7注意測(cè)試中的群集現(xiàn)象
1.4.8確認(rèn)缺陷的有效性
1.4.9合理安排測(cè)試計(jì)劃
1.4.10進(jìn)行回歸測(cè)試
1.4.11測(cè)試結(jié)果的統(tǒng)計(jì)、分析及可視化
1.4.12及時(shí)更新測(cè)試
1.5軟件測(cè)試級(jí)別和模型
1.5.1軟件測(cè)試級(jí)別
1.5.2軟件測(cè)試生命周期
1.5.3開發(fā)和測(cè)試模型
1.6軟件測(cè)試的類型
1.6.1功能性測(cè)試
1.6.2非功能性測(cè)試
1.6.3軟件結(jié)構(gòu)性測(cè)試
1.6.4變更相關(guān)的測(cè)試(再測(cè)試和回歸測(cè)試)
1.7軟件測(cè)試的基本過程
1.8人工智能與軟件測(cè)試
練習(xí)
第2章靜態(tài)測(cè)試技術(shù)
2.1靜態(tài)測(cè)試技術(shù)概要
2.2評(píng)審技術(shù)概述
2.2.1評(píng)審的定義和類型
2.2.2評(píng)審過程
2.2.3責(zé)任和角色
2.3代碼檢查
2.3.1代碼檢查類型
2.3.2代碼檢查內(nèi)容
2.3.3編碼規(guī)范
2.3.4代碼缺陷檢查表
2.4正規(guī)技術(shù)評(píng)審
2.4.1定義
2.4.2技術(shù)評(píng)審的目的
2.4.3評(píng)審小組成員
2.4.4技術(shù)評(píng)審活動(dòng)過程
2.4.5技術(shù)評(píng)審注意事項(xiàng)
2.5面向?qū)ο蠓治龊驮O(shè)計(jì)的靜態(tài)測(cè)試
2.5.1面向?qū)ο蟮男枨蠹胺治鲆?guī)約的靜態(tài)測(cè)試
2.5.2面向?qū)ο笤O(shè)計(jì)規(guī)約的靜態(tài)測(cè)試
練習(xí)
第3章動(dòng)態(tài)測(cè)試技術(shù)
3.1黑盒測(cè)試技術(shù)
3.1.1邊界值分析法
3.1.2等價(jià)類測(cè)試法
3.1.3錯(cuò)誤推測(cè)法
3.1.4因果圖法
3.1.5決策表測(cè)試法
3.1.6場(chǎng)景法
3.1.7正交實(shí)驗(yàn)法
3.1.8黑盒測(cè)試方法選擇的策略
3.2白盒測(cè)試技術(shù)
3.2.1白盒測(cè)試的概念
3.2.2程序結(jié)構(gòu)分析
3.2.3邏輯覆蓋測(cè)試法
3.2.4程序插裝
3.2.5其他白盒測(cè)試方法簡(jiǎn)介
3.2.6白盒測(cè)試方法選擇的策略
練習(xí)
第4章單元測(cè)試
4.1單元測(cè)試概述
4.2單元測(cè)試環(huán)境及過程
4.2.1單元測(cè)試環(huán)境
4.2.2單元測(cè)試過程
4.3單元測(cè)試策略
4.3.1傳統(tǒng)結(jié)構(gòu)化開發(fā)單元測(cè)試策略
4.3.2面向?qū)ο箝_發(fā)單元測(cè)試策略
4.4單元測(cè)試的分析和用例設(shè)計(jì)
4.4.1一般單元測(cè)試分析
4.4.2面向?qū)ο蟮膯卧獪y(cè)試分析
4.4.3單元測(cè)試用例設(shè)計(jì)
4.5單元測(cè)試實(shí)例
練習(xí)
第5章集成測(cè)試
5.1集成測(cè)試概述
5.2集成測(cè)試環(huán)境及過程
5.3集成測(cè)試方法
5.3.1一般的集成測(cè)試方法
5.3.2面向?qū)ο蟮募蓽y(cè)試方法
5.4集成測(cè)試的分析和用例設(shè)計(jì)
5.5集成測(cè)試實(shí)例
練習(xí)
第6章系統(tǒng)測(cè)試
6.1系統(tǒng)測(cè)試概述
6.2系統(tǒng)測(cè)試環(huán)境及過程
6.3系統(tǒng)測(cè)試類型
6.4系統(tǒng)測(cè)試的分析和用例設(shè)計(jì)
6.5系統(tǒng)測(cè)試實(shí)例
練習(xí)
第7章驗(yàn)收測(cè)試
7.1驗(yàn)收測(cè)試概述
7.2驗(yàn)收測(cè)試過程
7.3驗(yàn)收測(cè)試實(shí)例
練習(xí)
第8章負(fù)載壓力測(cè)試
8.1負(fù)載壓力測(cè)試基礎(chǔ)
8.2負(fù)載壓力測(cè)試的策略
8.3負(fù)載壓力測(cè)試的解決方案和實(shí)施
8.4負(fù)載壓力測(cè)試結(jié)果分析
8.5系統(tǒng)性能調(diào)優(yōu)
練習(xí)
第9章App移動(dòng)應(yīng)用測(cè)試
9.1移動(dòng)操作系統(tǒng)介紹
9.2App啟動(dòng)執(zhí)行過程
9.3App項(xiàng)目開發(fā)流程
9.4App測(cè)試自動(dòng)化及測(cè)試準(zhǔn)備
9.4.1App測(cè)試自動(dòng)化
9.4.2App測(cè)試準(zhǔn)備
9.5App功能測(cè)試
9.5.1UI測(cè)試
9.5.2業(yè)務(wù)功能測(cè)試
9.5.3其他功能測(cè)試
9.5.4用戶體驗(yàn)測(cè)試
9.6App非功能測(cè)試
9.6.1安裝、卸載測(cè)試
9.6.2安全測(cè)試
9.6.3性能測(cè)試
9.6.4兼容性測(cè)試
9.7App專項(xiàng)測(cè)試
9.7.1相關(guān)特定操作測(cè)試
9.7.2弱網(wǎng)測(cè)試
9.7.3網(wǎng)絡(luò)超時(shí)測(cè)試
9.7.4操作類型測(cè)試
9.7.5交叉事件測(cè)試
9.7.6第三方推送測(cè)試
9.7.7消息推送測(cè)試
練習(xí)
第10章微服務(wù)架構(gòu)應(yīng)用測(cè)試
10.1微服務(wù)與測(cè)試
10.1.1微服務(wù)的由來(lái)
10.1.2微服務(wù)與傳統(tǒng)開發(fā)方式
10.1.3微服務(wù)架構(gòu)對(duì)測(cè)試人員意味著什么
10.2微服務(wù)對(duì)軟件測(cè)試的挑戰(zhàn)
10.2.1總體的測(cè)試策略
10.2.2傳統(tǒng)測(cè)試方法面臨的挑戰(zhàn)
10.3微服務(wù)架構(gòu)的單元測(cè)試
10.3.1定義單元測(cè)試邊界
10.3.2單元測(cè)試的流程
10.3.3監(jiān)控單元測(cè)試覆蓋率
10.4微服務(wù)架構(gòu)的集成測(cè)試
10.5微服務(wù)架構(gòu)的組件測(cè)試
10.6微服務(wù)架構(gòu)的契約測(cè)試
10.6.1契約測(cè)試的由來(lái)
10.6.2契約測(cè)試的實(shí)施
10.7微服務(wù)架構(gòu)的端到端測(cè)試
10.7.1端到端測(cè)試的實(shí)施方法
10.7.2端到端測(cè)試的優(yōu)化
10.8微服務(wù)架構(gòu)的云端測(cè)試和性能測(cè)試
10.8.1微服務(wù)的云端測(cè)試
10.8.2微服務(wù)的性能測(cè)試
10.9微服務(wù)架構(gòu)的測(cè)試流水線
10.9.1什么是CI/CD
10.9.2自動(dòng)測(cè)試流水線
10.10DevOps與測(cè)試
10.10.1DevOps的出現(xiàn)
10.10.2DevOps在技術(shù)領(lǐng)域的實(shí)踐
10.10.3DevOps使用的主流工具
10.10.4從DevOps到TestOps
練習(xí)
第11章嵌入式系統(tǒng)測(cè)試
11.1嵌入式系統(tǒng)介紹及測(cè)試基礎(chǔ)
11.1.1嵌入式系統(tǒng)與嵌入式操作系統(tǒng)
11.1.2嵌入式測(cè)試方法概要
11.2嵌入式測(cè)試策略
11.3嵌入式測(cè)試環(huán)境的創(chuàng)建與實(shí)施
11.3.1模擬階段
11.3.2原型階段
11.3.3臨近生產(chǎn)階段
11.3.4開發(fā)后階段
11.4嵌入式測(cè)試的工具
練習(xí)
第12章游戲測(cè)試
12.1游戲測(cè)試基本概念
12.1.1游戲開發(fā)
12.1.2游戲測(cè)試與開發(fā)過程的關(guān)系
12.2游戲測(cè)試的主要內(nèi)容
12.3游戲測(cè)試的實(shí)施
12.3.1游戲策劃與測(cè)試計(jì)劃
12.3.2游戲測(cè)試用例設(shè)計(jì)
12.3.3游戲性能測(cè)試
12.3.4用例執(zhí)行和測(cè)試報(bào)告
練習(xí)
第13章軟件測(cè)試管理
13.1測(cè)試計(jì)劃的制訂與估算
13.2測(cè)試的組織
13.2.1組織結(jié)構(gòu)選擇因素
13.2.2結(jié)合實(shí)際選擇組織方案
13.2.3測(cè)試組織的獨(dú)立性
13.2.4測(cè)試人員
13.3測(cè)試過程監(jiān)控
13.3.1測(cè)試初始期
13.3.2測(cè)試實(shí)施期
13.3.3測(cè)試結(jié)束期
13.4測(cè)試文檔
13.5軟件配置管理
13.5.1配置管理簡(jiǎn)介
13.5.2測(cè)試配置管理
13.5.3軟件配置管理工具
13.6測(cè)試與風(fēng)險(xiǎn)
13.6.1項(xiàng)目風(fēng)險(xiǎn)
13.6.2軟件測(cè)試風(fēng)險(xiǎn)
13.7缺陷管理
13.7.1軟件缺陷的屬性描述
13.7.2軟件缺陷管理流程
13.7.3軟件缺陷度量
13.7.4缺陷跟蹤管理系統(tǒng)
練習(xí)
第14章軟件測(cè)試工具
14.1測(cè)試工具的類型
14.1.1測(cè)試管理工具
14.1.2靜態(tài)測(cè)試工具
14.1.3功能測(cè)試執(zhí)行工具
14.1.4覆蓋工具(結(jié)構(gòu)性測(cè)試工具)
14.1.5性能和壓力測(cè)試工具
14.1.6其他工具
14.1.7測(cè)試工具的選擇
14.2測(cè)試自動(dòng)化與手工測(cè)試
14.2.1手動(dòng)測(cè)試的不足
14.2.2自動(dòng)測(cè)試的優(yōu)點(diǎn)
14.2.3自動(dòng)測(cè)試的局限性
練習(xí)
附錄A軟件測(cè)試的數(shù)學(xué)理論
附錄B軟件測(cè)試中英文術(shù)語(yǔ)對(duì)照表
附錄C部分正交實(shí)驗(yàn)表
參考文獻(xiàn)