注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)其他編程語(yǔ)言/工具Effective軟件測(cè)試

Effective軟件測(cè)試

Effective軟件測(cè)試

定 價(jià):¥98.00

作 者: [荷]毛里西奧·阿尼什(Maurício Aniche)著,朱少民 李潔 張?jiān)?譯
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買這本書可以去


ISBN: 9787302629375 出版時(shí)間: 2023-06-01 包裝: 平裝-鎖線膠訂
開本: 128開 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  《Effective軟件測(cè)試》將幫助你交付優(yōu)質(zhì)軟件。在軟件開發(fā)過(guò)程中,測(cè)試是最關(guān)鍵的部分。為編寫良好測(cè)試以及防止bug進(jìn)入生產(chǎn)環(huán)節(jié),你必須精通掌握基于需求規(guī)格的測(cè)試、邊界測(cè)試、結(jié)構(gòu)化測(cè)試以及其他核心策略。 這本實(shí)用指南將引導(dǎo)開發(fā)者了解不同類型的單元測(cè)試和集成測(cè)試。開發(fā)者將學(xué)會(huì)如何使代碼便于測(cè)試,以及如何編寫易于維護(hù)的測(cè)試代碼,從而創(chuàng)建無(wú)缺陷的軟件。本書的講解全面、系統(tǒng)且透徹,富有清晰注釋的示例代碼,呈現(xiàn)緊貼現(xiàn)實(shí)的場(chǎng)景,并對(duì)此做了深刻的闡述。 主要內(nèi)容 ?設(shè)計(jì)嚴(yán)格的測(cè)試套件來(lái)查找bug。 ?適時(shí)地使用單元測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試 ?前置條件、后置條件、不變式、契約測(cè)試和基于屬性的測(cè)試 ?設(shè)計(jì)測(cè)試友好的系統(tǒng) ?測(cè)試**實(shí)踐和測(cè)試壞味道 ?利用基于Java的示例來(lái)闡釋概念,這些概念也適用于其他面向?qū)ο蟮恼Z(yǔ)言

作者簡(jiǎn)介

  Maurício Aniche博士是荷蘭代爾夫特理工大學(xué)軟件工程系的助教,并兼任Adyen公司技術(shù)部總監(jiān)。

圖書目錄

第1章 有效和系統(tǒng)的軟件測(cè)試 1
1.1  測(cè)試的開發(fā)者與不測(cè)試的開發(fā)者的對(duì)比 2
1.2  開發(fā)者的有效軟件測(cè)試 14
1.2.1  開發(fā)過(guò)程中有效的測(cè)試 14
1.2.2  有效測(cè)試是一個(gè)迭代過(guò)程 16
1.2.3  專注于開發(fā),然后專注于測(cè)試 16
1.2.4  “設(shè)計(jì)正確性”的神話 17
1.2.5  測(cè)試的成本 17
1.2.6  有效和系統(tǒng)的含義 17
1.2.7  測(cè)試自動(dòng)化的作用 18
1.3  軟件測(cè)試的原則(或者,為什么測(cè)試如此困難) 19
1.3.1  詳盡的測(cè)試是不可能的 19
1.3.2  知道何時(shí)停止測(cè)試 19
1.3.3  可變性很重要(殺蟲劑悖論) 20
1.3.4  缺陷在某些地方更容易發(fā)生 20
1.3.5  測(cè)試永遠(yuǎn)不可能完美或充分 20
1.3.6  上下文信息特別重要 21
1.3.7  驗(yàn)證不同于確認(rèn) 21
1.4  測(cè)試金字塔,以及我們應(yīng)該關(guān)注的地方 22
1.4.1  單元測(cè)試 22
1.4.2  集成測(cè)試 24
1.4.3  系統(tǒng)測(cè)試 25
1.4.4  何時(shí)使用每個(gè)測(cè)試層次 27
1.4.5  偏愛單元測(cè)試的原因 28
1.4.6  在不同層次上測(cè)試什么 28
1.4.7  如果你不同意測(cè)試金字塔,該怎么辦 29
1.4.8  本書能幫助大家找到所有bug嗎 31
1.5  練習(xí)題 32
1.6  本章小結(jié) 34
第2章 基于需求規(guī)格的測(cè)試 35
2.1  需求告訴我們一切 36
2.1.1  步驟1:理解需求、輸入和輸出 39
2.1.2  步驟2:探索程序在各種輸入情況下的行為 39
2.1.3  步驟3:探索可能的輸入和輸出,并確定分區(qū) 41
2.1.4  步驟4:分析邊界 43
2.1.5  步驟5:設(shè)計(jì)測(cè)試用例 46
2.1.6  步驟6:測(cè)試用例的自動(dòng)化 48
2.1.7  步驟7:用創(chuàng)造力和經(jīng)驗(yàn)增補(bǔ)測(cè)試集 51
2.2  基于需求規(guī)格的測(cè)試簡(jiǎn)述 52
2.3  通過(guò)SBT發(fā)現(xiàn)缺陷 54
2.4  實(shí)際工作中的SBT 64
2.4.1  測(cè)試過(guò)程是迭代的,而不是順序的 64
2.4.2  SBT的測(cè)試深度 64
2.4.3  分區(qū)還是邊界?這并不重要 65
2.4.4  上點(diǎn)和離點(diǎn)就足夠了,但可以加入一些內(nèi)點(diǎn)和外點(diǎn) 65
2.4.5  通過(guò)相同輸入的變化來(lái)促進(jìn)理解 65
2.4.6  當(dāng)組合數(shù)量激增時(shí),務(wù)實(shí)一點(diǎn) 66
2.4.7  有疑問時(shí),選擇最簡(jiǎn)單的輸入值 66
2.4.8  為無(wú)關(guān)緊要的輸入選取合理的值 66
2.4.9  測(cè)試null值和異常情況,但只在有意義的時(shí)候 67
2.4.10  當(dāng)測(cè)試用例的骨架相同時(shí),采用參數(shù)化測(cè)試方法 67
2.4.11  適用于任何層次的需求或單元測(cè)試以外的測(cè)試 67
2.4.12  如何測(cè)試有狀態(tài)的類 68
2.4.13  經(jīng)驗(yàn)和創(chuàng)造力的影響 70
2.5  練習(xí)題 70
2.6  本章小結(jié) 73
第3章 結(jié)構(gòu)化測(cè)試與代碼覆蓋 75
3.1  代碼覆蓋的正確使用方式 76
3.2  結(jié)構(gòu)化測(cè)試概述 79
3.3  代碼覆蓋標(biāo)準(zhǔn) 81
3.3.1  行覆蓋 81
3.3.2  分支覆蓋 82
3.3.3  條件 分支覆蓋 82
3.3.4  路徑覆蓋 84
3.4  復(fù)雜條件語(yǔ)句和MC/DC覆蓋標(biāo)準(zhǔn) 84
3.4.1  一個(gè)抽象的例子 84
3.4.2  創(chuàng)建一個(gè)實(shí)現(xiàn)MC/DC的測(cè)試集 85
3.5  處理循環(huán)語(yǔ)句及類似結(jié)構(gòu) 88
3.6  標(biāo)準(zhǔn)之間的包含關(guān)系及標(biāo)準(zhǔn)的選擇 89
3.7  基于需求規(guī)格的測(cè)試結(jié)合結(jié)構(gòu)化測(cè)試:一個(gè)實(shí)例 90
3.8  邊界測(cè)試和結(jié)構(gòu)化測(cè)試 96
3.9  單靠結(jié)構(gòu)化測(cè)試往往不夠 97
3.10  實(shí)際工作中的結(jié)構(gòu)化測(cè)試 99
3.10.1  為什么有些人痛恨代碼覆蓋率 99
3.10.2  100%的覆蓋率意味著什么 101
3.10.3  應(yīng)該選擇哪種覆蓋率標(biāo)準(zhǔn) 103
3.10.4  MD/DC:非常復(fù)雜且不能簡(jiǎn)化的表達(dá)式 103
3.10.5  其他覆蓋標(biāo)準(zhǔn) 105
3.10.6  哪些代碼不應(yīng)被覆蓋 105
3.11  變異測(cè)試 106
3.12 練習(xí)題 109
3.13 本章小結(jié) 113
第4章 契約式設(shè)計(jì) 115
4.1  前置條件和后置條件 116
4.1.1  斷言關(guān)鍵字 118
4.1.2  前置條件和后置條件的強(qiáng)弱 119
4.2  不變式 121
4.3  契約變更與里氏替換原則 125
4.4 契約式設(shè)計(jì)和測(cè)試的關(guān)系 130
4.5 實(shí)際工作中的契約式設(shè)計(jì) 131
4.5.1 弱契約還是強(qiáng)契約 131
4.5.2  輸入確認(rèn)與契約必須2選1嗎 131
4.5.3  斷言語(yǔ)句還是異常處理 134
4.5.4  拋出異常還是軟返回值 135
4.5.5  契約式設(shè)計(jì)有不適用的情況嗎 136
4.5.6  前置條件、后置條件和不變式的代碼需要測(cè)試嗎 136
4.5.7  工具支持 137
4.6  練習(xí)題 137
4.7  本章小結(jié) 139
第5章 基于屬性的測(cè)試 141
5.1  示例1:PassingGrade程序 141
5.2  示例2:測(cè)試unique方法 146
5.3  示例3:測(cè)試indexOf方法 148
5.4  示例4:測(cè)試Basket類 155
5.5  示例5:創(chuàng)建復(fù)雜的領(lǐng)域?qū)ο?163
5.6  實(shí)際工作中的基于屬性的測(cè)試 165
5.6.1  基于實(shí)例的測(cè)試與基于屬性的測(cè)試 165
5.6.2  基于屬性測(cè)試中的常見問題 165
5.6.3  創(chuàng)造性是關(guān)鍵 167
5.7  練習(xí)題 167
5.8  本章小結(jié) 168
第6章 測(cè)試替身和模擬對(duì)象 169
6.1  啞對(duì)象、偽對(duì)象、樁對(duì)象和模擬對(duì)象 172
6.1.1  啞對(duì)象 172
6.1.2  偽對(duì)象 172
6.1.3  樁對(duì)象 172
6.1.4  模擬對(duì)象 173
6.1.5  間諜對(duì)象 173
6.2  模擬框架的介紹 174
6.2.1  依賴項(xiàng)插樁 174
6.2.2  模擬對(duì)象及預(yù)期 180
6.2.3  捕獲參數(shù) 184
6.2.4  模擬異常 188
6.3  實(shí)際工作中的模擬 190
6.3.1  模擬的局限性 191
6.3.2  適合使用模擬的場(chǎng)景 193
6.3.3  日期和時(shí)間包裝器 197
6.3.4  模擬第三方類庫(kù) 200
6.3.5  其他人對(duì)模擬的看法 202
6.4  練習(xí)題 204
6.5 本章小結(jié) 205
第7章 可測(cè)試性設(shè)計(jì) 207
7.1  基礎(chǔ)設(shè)施代碼和領(lǐng)域代碼分離 208
7.2  依賴注入和可控制性 217
7.3  讓類和方法具有可觀察性 221
7.3.1  示例1:引入有助于斷言的方法 221
7.3.2  示例2:觀察void方法的行為 223
7.4  構(gòu)造函數(shù)的依賴項(xiàng),還是使用方法的參數(shù) 227
7.5  實(shí)際工作中的可測(cè)試性設(shè)計(jì) 230
7.5.1  被測(cè)試類的內(nèi)聚性 231
7.5.2  被測(cè)試類的耦合 232
7.5.3  復(fù)雜條件與可測(cè)試性 233
7.5.4  私有方法的可測(cè)試性 233
7.5.5  靜態(tài)方法、單例模式與可測(cè)試性 233
7.5.6  六邊形架構(gòu)與設(shè)計(jì)技術(shù)中的模擬 234
7.5.7  延伸閱讀 234
7.6  練習(xí)題 235
7.7 本章小結(jié) 237
第8章 測(cè)試驅(qū)動(dòng)的開發(fā) 239
8.1  第一個(gè)TDD練習(xí) 239
8.2  針對(duì)TDD練習(xí)的思考 249
8.3  實(shí)際工作中的TDD 251
8.3.1  采用TDD還是不采用TDD 251
8.3.2  需要100%的TDD嗎 252
8.3.3  TDD適用于所有應(yīng)用程序和領(lǐng)域嗎 252
8.3.4  學(xué)術(shù)研究對(duì)TDD的觀點(diǎn) 253
8.3.5  TDD的其他學(xué)派 254
8.3.6  TDD和徹底的測(cè)試 256
8.4  練習(xí)題 256
8.5  本章小結(jié) 258
第9章 編寫大型測(cè)試 259
9.1  什么時(shí)候使用大型測(cè)試 259
9.1.1  測(cè)試大型組件 260
9.1.2  測(cè)試超出代碼庫(kù)的大型組件 269
9.2  數(shù)據(jù)庫(kù)與SQL測(cè)試 275
9.2.1  SQL查詢中測(cè)試的內(nèi)容 275
9.2.2  為SQL查詢寫自動(dòng)化測(cè)試 277
9.2.3  為SQL測(cè)試設(shè)置基礎(chǔ)設(shè)施 284
9.2.4  最佳實(shí)踐 286
9.3  系統(tǒng)測(cè)試 287
9.3.1  Selenium簡(jiǎn)介 288
9.3.2  設(shè)計(jì)頁(yè)面對(duì)象 291
9.3.3  模式與最佳實(shí)踐 301
9.4  關(guān)于大型測(cè)試的最后說(shuō)明 305
9.4.1  如何讓所有的測(cè)試技術(shù)匹配 305
9.4.2  執(zhí)行成本效益分析 306
9.4.3  當(dāng)心那些已覆蓋但未測(cè)試的方法 306
9.4.4  適當(dāng)?shù)木幋a基礎(chǔ)設(shè)施是關(guān)鍵 307
9.4.5  干系人編寫測(cè)試的DSL和工具 307
9.4.6  測(cè)試其他類型的Web系統(tǒng) 307
9.5  練習(xí)題 308
9.6  本章小結(jié) 309
第10章  測(cè)試代碼的質(zhì)量 311
10.1  可維護(hù)的測(cè)試代碼的原則 312
10.1.1  測(cè)試要快 312
10.1.2  測(cè)試應(yīng)該是內(nèi)聚的、獨(dú)立的和隔離的 312
10.1.3  測(cè)試要有存在的理由 313
10.1.4  測(cè)試應(yīng)該是可復(fù)用且穩(wěn)定的 313
10.1.5  測(cè)試應(yīng)該有強(qiáng)斷言 314
10.1.6  行為改變時(shí)測(cè)試要中斷 315
10.1.7  測(cè)試失敗應(yīng)該有單一且明確的原因 315
10.1.8  測(cè)試應(yīng)該易于編寫 316
10.1.9  測(cè)試應(yīng)該易于閱讀 316
10.1.10  測(cè)試應(yīng)該易于修改和演化 321
10.2  測(cè)試壞味道 321
10.2.1  過(guò)度重復(fù) 322
10.2.2  不明確的斷言 322
10.2.3  對(duì)復(fù)雜或外部資源的處理不當(dāng) 323
10.2.4  過(guò)于通用的測(cè)試夾具 324
10.2.5  敏感斷言 325
10.3 練習(xí)題 327
10.4  本章小結(jié) 330
第11章  全書總結(jié) 333
11.1  盡管模型看起來(lái)是線性的,但迭代是基礎(chǔ) 333
11.2  沒有缺陷的軟件開發(fā):現(xiàn)實(shí)還是神話 334
11.3  讓最終用戶參與進(jìn)來(lái) 335
11.4  盡量多使用單元測(cè)試 335
11.5  在監(jiān)控上投入精力 336
11.6  未來(lái)的方向 337
附錄  習(xí)題答案 339
 

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.afriseller.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)