本書系統(tǒng)地介紹了軟件測試的主要技術(shù)和方法,全書共分為8章。在討論黑盒測試時(shí)介紹了邊界值、等價(jià)類、決策表、因果圖等方法,而基于控制流的測試則介紹了語句覆蓋、判定、條件覆蓋、修正判定覆蓋和基本路徑覆蓋;在組合測試方面包括拉丁方陣、正交表等方法,重點(diǎn)討論了成對組合測試方法;基于有限自動(dòng)機(jī)的測試涵蓋了T方法、D方法、W方法、U方法;面向?qū)ο笳Z言測試方面包括類屬性、對象屬性測試,基于對象創(chuàng)建和銷毀、裝飾器、多態(tài)的軟件測試;基于UML的軟件測試介紹了基于用例圖、類圖、活動(dòng)圖、序列圖、狀態(tài)圖等的測試方法;最后,本書討論基于Petri網(wǎng)的軟件測試、蛻變測試、基于變異的軟件測試以及基于故障樹的軟件測試。
本書結(jié)合當(dāng)前技術(shù)發(fā)展的特點(diǎn)和工程實(shí)踐的需求而編寫,內(nèi)容新穎,實(shí)操性強(qiáng),既適合于軟件測試和軟件質(zhì)量保障相關(guān)的技術(shù)人員在從事軟件測試時(shí)參考,也適合作為軟件工程專業(yè)的本科生、研究生學(xué)習(xí)軟件測試課程的教科書。本書封面貼有清華大學(xué)出版社防偽標(biāo)簽,無標(biāo)簽者不得銷售。
覆蓋等價(jià)類、邊界值、決策表、因果圖以及各種基于控制流的覆蓋方法
涵蓋多重繼承、異常、多態(tài)、裝飾器等面向?qū)ο鬁y試的高級(jí)話題。
詳細(xì)闡述了當(dāng)前組合測試的各種技術(shù),介紹各種經(jīng)典的成對組合測試策略,如CATS、AETG、IPO、GA等。
全面涵蓋有限狀態(tài)機(jī)FSM的測試方法,如T方法、D方法、W方法、U方法等。
所有的源碼相關(guān)例子都給出完整的可運(yùn)行的Python代碼,方便讀者學(xué)習(xí)。
詳細(xì)介紹基于UML、CPN等模型的測試方法。
其他高級(jí)主題包括:蛻變測試、基于變異測試、故障樹測試。
第1章緒論/1
1.1 軟件測試的歷史和發(fā)展/1
1.1.1軟件測試的起源/1
1.1.2軟件質(zhì)量問題/2
1.1.3軟件測試的發(fā)展/3
1.2軟件測試術(shù)語/5
1.3軟件缺陷管理/9
1.3.1缺陷生存周期/9
1.3.2缺陷的描述及屬性/10
1.4軟件質(zhì)量模型的發(fā)展/12
1.4.1GB/T 16260—1996軟件質(zhì)量模型/12
1.4.2GB/T 16260—2006軟件質(zhì)量模型/12
1.4.3ISO/IEC 25010—2014軟件質(zhì)量
模型/14
1.4.4基于質(zhì)量模型的軟件測試標(biāo)準(zhǔn)/16
1.5軟件測試模型/17
1.5.1V模型/17
1.5.2W模型/18
1.5.3X模型/19
1.5.4H模型/19
1.6軟件測試的局限性/20
1.6.1軟件測試的覆蓋問題/20
1.6.2窮舉測試的局限性/22
1.6.3缺陷的隱蔽性/23
1.6.4軟件測試的殺蟲劑效應(yīng)/25
1.7軟件測試的分類/27
1.7.1軟件功能測試分類/27
1.7.2根據(jù)測試階段分類/28第2章傳統(tǒng)的黑盒測試/33
2.1邊界值分析/33
2.1.1邊界值分析概念/33
2.1.2邊界值分析原則/34
2.1.3邊界值確定和分析法/35
2.1.4邊界值測試舉例/44
2.2等價(jià)類/47
2.2.1等價(jià)類的概念/48
2.2.2等價(jià)類的劃分及依據(jù)/49
2.2.3等價(jià)類測試舉例/51
2.3決策表/54
2.3.1決策表的概念/54
2.3.2決策表的建立/54
2.3.3決策表的簡化/55
2.3.4決策表規(guī)則數(shù)統(tǒng)計(jì)/57
2.3.5決策表特性/59
2.3.6決策表測試用例設(shè)計(jì)/60
2.4因果圖/62
2.4.1因果圖的概念/62
2.4.2因果圖設(shè)計(jì)/63
2.4.3利用因果圖設(shè)計(jì)測試用例/63第3章基于控制流的測試/67
3.1概述/67
3.2圖論基礎(chǔ)/72
3.3流程圖結(jié)構(gòu)以及表示/74
3.4Python中的條件和判定/76
3.4.1條件與布爾值認(rèn)定/76
3.4.2判定與短路計(jì)算/79
3.5語句覆蓋/80
3.5.1語句覆蓋定義及其測試/81
3.5.2語句覆蓋的優(yōu)缺點(diǎn)/84
3.5.3語句覆蓋與死代碼/86
3.6判定覆蓋/88
3.6.1判定覆蓋簡介/88
3.6.2兩路分支覆蓋/89
3.6.3多路分支覆蓋/89
3.6.4不可達(dá)分支/91
3.6.5異常處理多分支覆蓋/92
3.6.6復(fù)合判定覆蓋/96
3.7條件覆蓋/99
3.7.1簡單條件覆蓋/99
3.7.2條件判定覆蓋/102
3.7.3條件組合覆蓋/106
3.8修正條件判定覆蓋/107
3.8.1修正條件判定覆蓋的定義/107
3.8.2唯一原因法生成MC/DC測試
用例/109
3.8.3屏蔽法生成MC/DC測試用例/111
3.8.4二叉樹法生成MC/DC測試用例/112
3.8.5MC/DC的進(jìn)一步討論/115
3.9路徑覆蓋/117
3.9.1程序和控制流圖表示/117
3.9.2獨(dú)立路徑和圈復(fù)雜度/121
3.9.3基本路徑覆蓋/126第4章組合測試/130
4.1多參數(shù)的故障模型/130
4.2利用正交表實(shí)現(xiàn)測試/132
4.2.1拉丁方陣/132
4.2.2正交表/135
4.2.3正交表的性質(zhì)/138
4.2.4正交表測試/139
4.3組合測試的數(shù)學(xué)基礎(chǔ)和定義/143
4.4成對組合測試用例的生成策略/146
4.4.1CATS算法/147
4.4.2AETG法/150
4.4.3IPO法/151
4.4.4GA法/155
4.5可變強(qiáng)度和具有約束的組合測試/157
4.5.1混合強(qiáng)度的組合測試/158
4.5.2參數(shù)值之間的約束/160
4.5.3種子組合和負(fù)面測試/162第5章基于有限狀態(tài)機(jī)的測試/167
5.1有限狀態(tài)機(jī)的定義/167
5.1.1有限狀態(tài)機(jī)/167
5.1.2確定有限狀態(tài)機(jī)和非確定有限
狀態(tài)機(jī)/170
5.1.3確定有限狀態(tài)機(jī)和非確定有限
狀態(tài)機(jī)的轉(zhuǎn)換/172
5.1.4帶狀態(tài)輸出的有限自動(dòng)機(jī)/175
5.2基于有限狀態(tài)機(jī)測試的假設(shè)和特性/180
5.3有限狀態(tài)機(jī)的故障模型/181
5.4基于有限狀態(tài)機(jī)的測試/183
5.4.1概述/183
5.4.2狀態(tài)覆蓋測試/184
5.4.3遷移覆蓋測試/186
5.4.4周游法(T方法)/187
5.4.5區(qū)分序列法(D方法)/189
5.4.6特征序列法(W方法)/193
5.4.7唯一輸入/輸出序列(U方法)/202第6章面向?qū)ο蠼Y(jié)構(gòu)的軟件測試/209
6.1Python面向?qū)ο?209
6.2Python面向?qū)ο缶幊袒A(chǔ)/210
6.3基于類屬性和對象屬性的測試/213
6.4基于對象創(chuàng)建和銷毀的測試/220
6.4.1基于類創(chuàng)建和繼承測試/220
6.4.2基于多重繼承初始化方法的測試/223
6.4.3多重繼承方法解釋順序的測試/228
6.4.4基于對象銷毀的測試/229
6.5基于裝飾器的測試/233
6.6基于多態(tài)的測試/240第7章基于UML的軟件測試/246
7.1UML概念和建模/246
7.2基于用例的軟件測試/248
7.2.1用例圖的概念/248
7.2.2用例圖的覆蓋準(zhǔn)則/250
7.2.3用例圖的測試用例設(shè)計(jì)/255
7.3基于類圖的軟件測試/260
7.3.1類圖的概念/260
7.3.2類圖的覆蓋準(zhǔn)則/264
7.3.3類圖的測試用例設(shè)計(jì)/265
7.4基于活動(dòng)圖的軟件測試/268
7.4.1活動(dòng)圖的概念/268
7.4.2活動(dòng)圖的覆蓋準(zhǔn)則/270
7.4.3活動(dòng)圖的測試用例設(shè)計(jì)/274
7.5基于序列圖的軟件測試/282
7.5.1序列圖的概念/282
7.5.2序列圖的覆蓋準(zhǔn)則/285
7.5.3序列圖的測試用例設(shè)計(jì)/290
7.6基于狀態(tài)圖的軟件測試方法/296
7.6.1狀態(tài)圖的概念/296
7.6.2狀態(tài)圖的覆蓋準(zhǔn)則/299
7.6.3狀態(tài)圖的測試用例設(shè)計(jì)/301第8章其他測試技術(shù)/309
8.1基于Petri網(wǎng)的測試用例生成/309
8.1.1Petri網(wǎng)的定義/309
8.1.2著色Petri網(wǎng)/311
8.1.3幾種常見的系統(tǒng)結(jié)構(gòu)模型/314
8.1.4Petri網(wǎng)的行為性質(zhì)/316
8.1.5基于Petri網(wǎng)的測試/318
8.2蛻變測試/327
8.2.1蛻變測試的出發(fā)點(diǎn)/327
8.2.2蛻變測試的基本理論/328
8.2.3蛻變測試的過程/329
8.2.4蛻變測試的例子/330
8.3基于變異的軟件測試方法/337
8.3.1變異測試的概念/337
8.3.2變異算子/338
8.3.3變異測試的過程/345
8.4基于故障樹的軟件測試方法/350
8.4.1故障樹的概念/351
8.4.2故障樹的建立和分析/351
8.4.3基于故障樹的測試用例設(shè)計(jì)/354附錄/358
附錄A軟件測試大事記/358
附錄B常見正交測試表/360
附錄CPICT工具指南/363
附錄Dpytest測試簡介/364
附錄E最長公共子序列示例/371
參考文獻(xiàn)/373