軟件測試 (Software Testing, 2/e)
內容描述
“本書為初出茅廬的測試新手提供了便利。檢查單的應用以及每章末尾配備的測驗, 會讓讀者加深對所學知識的理解和掌握,其價值是無法衡量的。Patton侃侃而談的寫作風格、自我發展的組織方式,也會使有經驗的專業測試人員獲益匪淺。”
——Suan Archer,軟件測試學院主任,具有豐富的專業軟件測試經驗
“Patton的軟件測試是進入軟件測試專業領域的理想入門指導。測試新手可以從中學到重要的基礎知識,以及進一步提高所需要的一些高級提示。該書編排清晰合理,內容淺顯易讀。”
——Danny R. Faught,Cigital公司軟件分析員,comp.software.testing FAQ網站的創建者以及軟件測試討論(swtest-discuss)郵件組的共同創辦者
本書全面系統地介紹了軟件測試理論及應用技術,不僅講述基本的測試技能,也講述成為一個成功的軟件測試員所必須掌握的高級技能。其目的在於引導讀者通過基礎知識和必要技能的學習而成為一個優秀的軟件測試員,讓讀者知道如何迅速地在任一電腦程序中發現問題,如何計劃一個有效的測試步驟,如何清楚地報告發現的問題,以及如何告知軟件在何時發布。
本書是一本軟件測試的入門書,內容全面實用,講述淺顯易懂,既可作為高等院校軟件測試課程的教材,也可作為軟件測試愛好者的自學用書。 對於那些希望增強軟件測試方面知識的程序員、軟件項目經理和軟件開發團隊的其他人員,本書也具有很好的參考價值。
目錄大綱
出版者的話
譯者序
前言
部分軟件測試綜述
第1章軟件測試的背景┊2
1.1臭名昭著的軟件用例研究┊2
1.1.1迪士尼的獅子王(1994~1995年) ┊2
1.1.2英特爾奔騰浮點除法缺陷(1994年) ┊3
1.1.3美國航天局火星極地登陸者號探測器(1999年) ┊4
1.1.4愛國者導彈防禦(1991年) ┊4
1.1.5千年蟲問題(大約1974年) ┊4
1.1.6危險的預見(2004年) ┊5
1.2軟件缺陷是什麼┊5
1.2.1軟件失敗的術語┊5
1.2.2軟件缺陷的官方定義┊6
1.3為什麼會出現軟件缺陷┊8
1.4軟件缺陷的修復費用┊8
1.5軟件測試員究竟做些什麼┊9
1.6的軟件測試員應具備的素質┊10
第2章軟件開發的過程┊12
2.1產品的組成部分┊12
2.1.1軟件產品需要多少投入┊12
2.1.2軟件產品由哪些部分組成┊15
2.2軟件項目成員┊16
2.3軟件開發生命週期模式┊17
2.3.1大爆炸模式┊17
2.3.2邊寫邊改模式┊18
2.3.3瀑布模式┊19
2.3.4螺旋模式┊20
第3章軟件測試的實質┊23
3.1測試的原則┊23
3.1.1完全測試程序是不可能的┊23
3.1.2軟件測試是有的行為┊24
3.1.3測試無法顯示潛伏的軟件缺陷┊25
3.1.4找到的軟件缺陷越多,就說明軟件缺陷越多┊25
3.1.5殺蟲劑怪事┊26
3.1.6並非所有軟件缺陷都要修復┊26
3.1.7什麼時候才叫缺陷難以說清┊27
3.1.8產品說明書從沒有終版本┊28
3.1.9軟件測試員在產品小組中不受歡迎┊28
3.1.10軟件測試是一個講究條理的技術職業┊29
3.2軟件測試的術語和定義┊29
3.2.1和準確┊29
3.2.2確認和驗證┊30
3.2.3質量和可靠性┊31
3.2.4測試和質量保證┊31
第二部分測試基礎
第4章檢查產品說明書┊34
4.1開始測試┊34
4.1.1黑盒測試和白盒測試┊35
4.1.2靜態測試和動態測試┊36
4.1.3靜態黑盒測試—測試產品說明書┊ 36
4.2對產品說明書進行審查┊37
4.2.1假設自己是客戶┊37
4.2.2研究現有的標準和規範┊37
4.2.3審查和測試類似軟件┊38
4.3產品說明書的低層次測試技術┊39
4.3.1產品說明書屬性檢查清單┊ 39
4.3.2產品說明書用語檢查清單┊39
第5章帶上眼罩測試軟件┊41
5.1動態黑盒測試:帶上眼罩測試軟件┊42
5.2通過性測試和失效性測試┊43
5.3等價類劃分┊ 44
5.4數據測試┊45
5.4.1邊界條件┊46
5.4.2次邊界條件┊49
5.4.3默認、空白、空值、零值和無┊51
5.4.4非法、、不正確和垃圾數據┊52
5.5狀態測試┊52
5.5.1測試軟件的邏輯流程┊53
5.5.2失敗狀態測試┊56
5.6其他黑盒測試技術┊58
5.6.1像笨拙的用戶那樣做┊58
5.6.2在已經找到軟件缺陷的地方再找找┊58
5.6.3像黑客一樣考慮問題┊59
5.6.4憑藉經驗、直覺和預感┊59
第6章檢查代碼┊61
6.1靜態白盒測試:檢查設計和代碼┊61
6.2正式審查┊62
6.2.1同事審 ┊63
6.2.2走查┊63
6.2.3檢驗┊64
6.3編碼標準和規範┊64
6.3.1編程標準和規範示例┊65
6.3.2獲取標準┊66
6.4通用代碼審查清單┊67
6.4.1數據引用┊ 67
6.4.2數據聲明┊67
6.4.3計算┊68
6.4.4比較┊68
6.4.5控制流程┊68
6.4.6子程序參數┊69
6.4.7輸入/輸出┊69
6.4.8其他檢查┊69
第7章帶上X光眼鏡測試軟件┊71
7.1動態白盒測試┊71
7.2動態白盒測試和調試┊72
7.3分段測試┊73
7.3.1單元測試和集成測試┊74
7.3.2單元測試示例┊75
7.4數據覆蓋┊77
7.4.1數據流┊77
7.4.2次邊界┊78
7.4.3公式和等式┊78
7.4.4強制┊78
7.5代碼覆蓋┊79
7.5.1程序語句和代碼行覆蓋┊80
7.5.2分支覆蓋┊81
7.5.3條件覆蓋┊81
第三部分運用測試技術
第8章配置測試┊86
8.1配置測試綜述┊86
8.1.1分離配置缺陷┊89
8.1.2計算工作量┊90
8.2執行任務┊91
8.2.1確定所需的硬件類型┊91
8.2.2確定有哪些廠商的硬件、型號和驅動程序可用┊92
8.2.3確定可能的硬件特性、模式和選項┊92
8.2.4將確定後的硬件配置縮減為可控制的範圍┊92
8.2.5明確與硬件配置有關的軟件特性┊93
8.2.6設計在每種配置中執行的測試用例┊94
8.2.7在每種配置中執行測試┊94
8.2.8反複測試直到小組對結果滿意為止┊94
8.3獲得硬件┊ 94
8.4明確硬件標準┊96
8.5對其他硬件進行配置測試┊96
第9章兼容性測試┊98
9.1兼容性測試綜述┊98
9.2平台和應用程序版本┊99
9.2.1向後和向前兼容┊100
9.2.2測試多個版本的影響┊100
9.3標準和規範┊102
9.3.1標準和規範┊102
9.3.2低級標準和規範┊102
9.4數據共享兼容性┊103
第10章外國語言測試┊106
10.1使文字和圖片有意義┊106
10.2翻譯問題┊107
10.2.1文本擴展┊107
10.2.2 ASCII、DBCS和Unicode ┊108
10.2.3熱鍵和快捷鍵┊109
10.2.4擴展字符┊109
10.2. 5字符計算┊110
10.2.6從左向右和從右向左讀┊110
10.2.7圖形中的文字┊110
10.2.8讓文本與代碼脫離┊111
10.3本地化問題┊111
10.3.1內容┊ 112
10.3.2數據格式┊113
10.4配置和兼容性問題┊114
10.4.1國外平台配置┊114
10.4.2數據兼容性┊115
10.5測試量有多大┊116
第11章易用性測試┊118
11.1用戶界面測試┊118
11.2UI由什麼構成┊119
11.2.1符合標準和規範┊120
11.2.2直觀┊120
11.2.3一致┊121
11.2.4靈活┊122
11.2.5舒適┊123
11.2.6正確┊123
11.2.7實用┊124
11.3為殘障人士測試:輔助選項測試┊124
11.3.1法律要求┊125
11.3.2軟件中的輔助特性┊125
第12章文檔測試┊128
12.1軟件文檔的類型┊128
12.2文檔測試的重要性┊130
12.3審查文檔時要找什麼┊131
12.4文檔測試的實質┊132
第13章軟件安全性測試┊134
13.1戰爭遊戲—電影┊134
13.2了解動機┊135
13.3威脅模式分析┊137
13.4軟件安全是一項功能嗎?軟件漏洞是一個缺陷嗎┊139
13.5了解緩衝區溢出┊140
13.6使用安全的字符串函數┊141
13.7計算機取證┊143
第14章網站測試┊147
14.1網頁基礎┊147
14.2黑盒測試┊149
14.2.1文本┊150
14.2.2鏈接┊151
14.2.3圖片┊151
14.2.4表單┊151
14.2.5對象和其他各種簡單的功能┊152
14.3灰盒測試┊152
14.4白盒測試┊154
14.5配置和兼容性測試┊155
14.6易用性測試┊156
14.7自動化測試簡介┊158
第四部分測試的補充
第15章自動測試和測試工具┊160
15.1工具和自動化的好處┊160
15.2測試工具┊161
15.2.1查看器和監視器┊162
15.2.2驅動程序┊162
15.2.3樁┊163
15.2.4壓力和負載工具┊164
15.2.5干擾注入器和噪聲發生器┊165
15.2.6分析工具┊165
15.3軟件測試自動化┊166
15.3 .1宏錄製和回放┊166
15.3.2可編程的宏┊167
15.3.3完全可編程的自動測試工具┊168
15.4隨機測試:猴子和大猩猩┊170
15.4.1笨拙的猴子┊170
15.4.2半聰明的猴子┊171
15.4.3聰明的猴子┊172
15.5使用測試工具和自動化的實質┊173
第16章缺陷轟炸和beta測試┊175
16.1讓別人測試你的軟件┊175
16.2測試共享┊176
16.3 beta測試┊177
16.4外包測試┊178
第五部分使用測試文檔
第17章計劃測試工作┊182
17.1測試計劃的目標┊182
17.2測試計劃主題┊183
17.2.1期望┊184
17.2.2人、地點和事┊184
17.2.3定義┊185
17.2.4團隊之間的責任┊186
17.2.5哪些要測試,哪些不要測試┊187
17.2.6測試的階段┊187
17.2.7測試策略┊187
17.2.8資源需求┊188
17.2.9測試員的任務分配┊188
17.2.10測試進度┊188
17.2.11測試用例┊190
17.2.12軟件缺陷報告┊190
17.2.13度量和統計┊190
17.2.14和問題┊190
第18章編寫和跟踪測試用例┊192
18.1測試用例計劃的目標┊192
18.2測試用例計劃綜述┊193
18.2.1測試設計┊195
18.2.2測試用例┊196
18.2.3測試程序┊197
18.3測試用例組織和跟踪┊199
第19章報告發現的問題┊202
19.1設法修復軟件缺陷┊203
19.2分離和再現軟件缺陷┊206
19.3並非所有軟件缺陷生來就是平等的┊207
19.4軟件缺陷的生命週期┊208
19.5軟件缺陷跟踪┊210
19.5.1標準:測試事件報告┊211
19.5.2手工軟件缺陷報告和跟踪┊211
19.5.3自動化軟件缺陷報告和跟踪┊213
第20章成效評價┊217
20.1使用軟件缺陷跟踪數據庫中的信息┊217
20.2在日常測試中使用的度量┊218
20.3常用項目級度量┊222
第六部分軟件測試的未來
第21章軟件質量保證┊228
21.1質量是的┊228
21.2工作現場的測試和質量保證┊229
21.2.1軟件測試┊230
21.2.2質量保證┊231
21.2.3軟件測試團隊的其他名稱┊231
21.3測試的管理和組織結構┊232
21.4能力成熟度模型┊234
21.5 ISO 9000 ┊235
第22章軟件測試員的職業┊238
22.1軟件測試員的工作┊238
22.2尋求軟件測試職位┊239
22.3獲得親身體驗┊240
22.4正規培訓機會┊241
22.5網站┊242
22.6專注於軟件和軟件質量的組織┊243
22.7進一步閱讀┊243
附錄A小測驗問題解答┊246
作者介紹
[美]羅恩·佩騰(Ron Patton) 著:羅恩·佩騰(Ron Patton)具有約30年軟件測試和軟件質量保證的工作經驗,從事過各種產品的軟件測試,從關鍵任務到兒童繪圖程序。曾先後就職於德州儀器公司、西門子公司和微軟公司,擔任過質量保證工程師、軟件測試經理等職務。他現在是一個獨立的軟件項目管理和軟件質量保證諮詢師。