本書詳細地介紹了軟件測試的各個方面,從測試概念、測試模型、測試過程、測試階段等各個不同的視角來探討軟件測試的重要性,重點講解了軟件測試的各種方法和技術,并將它們應用在軟件測試框架的不同階段,以滿足不同的應用系統測試的需求。本書盡量使軟件測試的理論知識點具有良好的銜接性和系統性,使需求和驗收測試評審、測試設計、執行測試與各個階段的實際測試活動有機地結合起來,使讀者更容易領會如何將測試的方法和技術應用到各個測試階段和本地化測試中去。本書還講解了豐富的實例和實踐要點,更好地體現了軟件測試學科的特點,幫助讀者快速地將理論知識與實踐結合起來。
本書用了較大篇幅詳細介紹了自動化測試的原理、方法和工具,通過一些典型的測試工具展示了自動化測試的過程,使讀者能夠更直觀地理解自動化測試的技術和具體的實踐方法。
本書適合作為應用型本科和高職高專計算機專業的教材,也可以作為計算機從業人員的學習用書。
近年來,計算機技術突飛猛進,軟件的開發與使用越來越普遍、越來越高端,從早期的數值計算,到現在云計算、互聯網+、電子商務、大數據等,涉及各個領域。軟件中存在的問題或安全漏洞也頻繁出現,顯然,軟件的質量保證越來越受到重視。而目前我國軟件測試行業的從業人員相當缺乏,并且在IT行業中重視程度不夠。
本書從軟件測試的基礎開始,將軟件測試的測試流程與軟件開發的流程聯系起來作為主線,介紹軟件測試的過程、測試計劃、測試用例設計與實施、測試缺陷跟蹤以及測試分析等。在測試的不同階段開始單元測試、集成測試、系統測試、驗收測試等;在不同階段選擇不同的測試方法和技術,如靜態測試、白盒測試、黑盒測試等,并分別介紹怎樣使用自動化工具對相關軟件進行測試,主要介紹了功能自動化工具QPT以及性能測試工具LoadRunner的基本使用方法,還以案例穿插介紹了缺陷管理工具JIRA。
本書的特點如下。
(1)軟件測試知識點全面。本書包括基本的軟件測試理論知識,也包括當今業界常用的測試方法。
(2)具有科學、系統的工程觀點和方法。全書以軟件工程開發系統的科學思想,將軟件測試貫穿于整個軟件生命周期,介紹了軟件測試在軟件生命周期中各個階段采用的方法和應用。
(3)理論聯系實際。本書各個章節都提供了大量的應用實例以說明各個測試知識點的運用,并且每章后附有習題和練習。
本書由何春梅、唐滔任主編,茍英、陳怡然、譚鳳任副主編。何春梅主持了全書的編寫以及審稿工作,茍英負責全書的總體框架設計和統稿工作。第1~4章由茍英編寫,第5和6章由何春梅編寫,第7章由譚鳳編寫,第8~11章由唐滔編寫,第12~14章由陳怡然編寫。本書在編寫過程中得到了重慶工程學院軟件學院師生的大力支持,在此表示感謝!
由于作者水平有限,書中疏漏之處在所難免,歡迎廣大讀者提出寶貴意見。
編者
2017年5月軟件測試技術
第1章軟件測試概述1
1.1軟件測試產生的背景2
1.2軟件測試的定義3
1.3軟件測試的復雜性與經濟性分析4
1.4軟件缺陷6
1.5軟件測試人員應具備的素質8
本章小結9
練習題10
第2章軟件測試基礎11
2.1軟件測試的目的12
2.2軟件測試的原則13
2.3軟件測試的分類14
2.4常見的一些軟件測試16
2.5軟件測試過程模型17
本章小結20
練習題20
第3章軟件測試過程與方法22
3.1單元測試23
3.2集成測試25
3.3確認測試30
3.4系統測試31
3.5驗收測試32
本章小結34
練習題34
第4章軟件測試策略36
4.1軟件測試策略的定義37
4.2軟件測試策略的重要性37
4.3軟件測試策略的主要目的37
4.4軟件測試策略的主要內容38
4.5軟件測試策略的影響因素41
4.6軟件測試策略的制定過程41
本章小結42
練習題43
第5章白盒測試44
5.1邏輯覆蓋法45
5.2路徑覆蓋法48
本章小結52
練習題52
第6章黑盒測試54
6.1等價類劃分法55
6.2邊界值法57
6.3決策表法58
6.4因果圖法61
6.5場景法65
本章小結69
練習題70
第7章面向對象的軟件測試72
7.1面向對象的特點73
7.2面向對象的開發對軟件測試的影響74
7.3面向對象的軟件測試的基本概念75
7.4面向對象的軟件測試的內容76
7.5面向對象的測試模型及方法78
7.6面向對象測試工具JUnit87
本章小結88
練習題89
第8章缺陷跟蹤管理90
8.1Bug的影響91
8.1.1精神的摧殘91
8.1.2形象的損失91
8.1.3財富的流失91
8.2Bug的產生92
8.2.1交流的誤解92
8.2.2軟件的復雜性、程序員的錯誤92
8.2.3需求變化92
8.2.4時間壓力92
8.2.5文檔貧乏93
8.2.6軟件開發工具93
8.3Bug如何穿透測試93
8.3.1代價太大93
8.3.2市場決策93
8.3.3時間緊迫93
8.3.4現場證據94
8.3.5過于自信94
8.3.6模糊提交和測試環境94
8.4Bug的種類94
8.4.1需求階段的Bug——三種需求94
8.4.2分析、設計階段的Bug——忽略設計94
8.4.3實現階段的Bug——遺漏的功能95
8.4.4配置階段的Bug95
8.4.5短視將來的Bug95
8.4.6靜態文檔的Bug95
8.5Bug的生命周期96
8.6Bug的關鍵字96
8.6.1Bug的流轉狀態關鍵字96
8.6.2Bug的解決關鍵字97
8.6.3Bug的嚴重等級關鍵字97
8.6.4Bug處理的優先等級關鍵字97
8.7Bug的管理98
8.8缺陷管理工具JIRA99
8.8.1JIRA介紹99
8.8.2JIRA安裝100
8.8.3JIRA用戶使用101
8.8.4JIRA后臺使用102
本章小結105
練習題105
第9章項目質量保證107
9.1軟件質量保證的理論探索108
9.1.1軟件質量保證過程的認識108
9.1.2生產線的隱喻109
9.1.3SQA和其他工作的組合109
9.1.4QA和QC109
9.1.5QA和SEPG110
9.1.6QA和組織級的監督管理110
9.2軟件質量保證的工作內容和工作方法111
9.2.1計劃111
9.2.2審計/證實111
9.2.3問題跟蹤111
9.3軟件質量保證的素質112
9.4軟件質量保證的活動內容112
9.5軟件質量保證正式的技術評審113
9.6軟件質量保證統計114
9.7質量保證與檢驗114
9.8軟件質量保證檢驗項目的內容115
9.9ISO 9000軟件質量標準的了解116
本章小結116
練習題117
第10章項目質量控制118
10.1項目質量控制的定義、目的和必要性119
10.2質量控制的內容及過程120
10.3質量控制的方法、技術和工具122
10.4質量控制的依據及成果123
本章小結131
練習題131
第11章Web網站測試133
11.1Web網站功能測試134
11.2性能測試的種類136
11.3安全性測試136
11.4可用性/可靠性測試137
11.5配置和兼容性測試138
11.6數據庫測試139
11.7Web測試用例考慮的因素139
本章小結142
練習題143
第12章自動化測試144
12.1什么是軟件自動化測試145
12.2軟件自動化的使用范圍146
12.3軟件自動化工具分類146
12.3.1白盒測試工具146
12.3.2黑盒測試工具147
12.3.3測試設計與開發工具147
12.3.4測試執行和評估工具148
12.3.5測試管理工具148
12.3.6常用測試工具148
12.3.7其他公司測試工具150
12.3.8一些開源測試工具150
12.4Quality Center的基本介紹152
12.5QTP的基本介紹153
12.5.1啟動QTP153
12.5.2插件加載設置與管理153
12.5.3創建一個空的測試項目153
12.5.4錄制和測試運行設置154
12.5.5指定需要錄制的應用程序155
12.5.6使用QTP編寫第一個自動化測試腳本156
12.6LoadRunner的基本介紹158
12.6.1LoadRunner 常用術語158
12.6.2LoadRunner工作流程159
12.6.3Virtual User Generator(VuGen)簡介160
12.6.4設置運行時行為161
12.6.5查看腳本的運行情況164
12.6.6查看測試結果165
本章小結166
練習題166
第13章軟件測試文檔168
13.1測試文檔169
13.1.1測試文檔的定義169
13.1.2測試文檔的內容169
13.1.3軟件生命周期各階段的測試任務與可交付的文檔170
13.2測試計劃172
13.2.1測試計劃的定義172
13.2.2測試計劃的目的和作用173
13.2.3測試計劃書173
13.2.4測試計劃的內容173
13.2.5軟件測試計劃的制訂174
13.3測試用例設計176
13.3.1測試用例176
13.3.2測試用例文檔應包含以下內容176
13.4測試總結報告177
13.4.1測試結果統計表177
13.4.2測試問題表和問題統計表178
13.4.3測試進度表178
13.4.4測試總結表178
本章小結179
練習題179
第14章軟件質量保障與軟件測試181
14.1軟件質量的定義182
14.2軟件質量的模型182
14.2.1McCall 質量模型182
14.2.2Bohm 質量模型182
14.2.3ISO的軟件質量模型182
14.3軟件質量要素184
14.4軟件質量保證(SQA)185
14.4.1基本目標185
14.4.2品質保證人員(QA)186
14.4.3QA與QC的區別186
14.4.4SQA活動187
14.5軟件質量保證與軟件測試187
本章小結188
練習題188
參考文獻190軟件測試技術目錄
第3章軟件測試過程與方法
本章目標
掌握軟件測試的過程
掌握軟件測試與開發的關系
熟悉單元測試
熟悉集成測試
熟悉確認測試
熟悉系統測試
熟悉驗收測試
本章單詞
unittest:integrationtest:
systemtest:acceptancetest:軟件測試過程按各測試階段的先后順序可分為單元測試、集成測試、確認(有效性)測試、系統測試和驗收(用戶)測試5個階段。