本書介紹了軟件測試領(lǐng)域的新知識(shí)、新技術(shù)和關(guān)鍵技能,并介紹了軟件測試領(lǐng)域常用的工具。全書共7章,分別是:軟件測試基礎(chǔ)、測試用例設(shè)計(jì)、軟件缺陷管理、軟件測試管理、軟件功能測試、軟件性能測試和測試實(shí)踐,內(nèi)容涉及軟件測試的基礎(chǔ)知識(shí)、基本技能和通用軟件測試工具的使用。針對(duì)每個(gè)測試環(huán)節(jié),書中都介紹了相關(guān)測試工具的使用并提供了實(shí)驗(yàn)指導(dǎo)。在測試實(shí)踐一章,通過一個(gè)軟件項(xiàng)目測試案例展示了整個(gè)軟件測試的具體過程,意在提高讀者軟件測試技術(shù)的實(shí)際應(yīng)用能力,增強(qiáng)理論與實(shí)踐的結(jié)合。
本書適合作為軟件工程、計(jì)算機(jī)科學(xué)與技術(shù)等本科專業(yè)軟件測試課程的教材。
隨著軟件產(chǎn)業(yè)的蓬勃發(fā)展,軟件產(chǎn)品的質(zhì)量控制與質(zhì)量管理正逐漸成為軟件企業(yè)生存與發(fā)展的核心。幾乎每個(gè)大中型IT企業(yè)的軟件產(chǎn)品在發(fā)布前都需要進(jìn)行大量的質(zhì)量控制、測試和文檔處理工作,而且這些工作必須依靠擁有嫻熟技術(shù)的專業(yè)軟件人才才能完成,因此軟件測試工程師是一個(gè)企業(yè)的重要角色。高等學(xué)校的軟件測試專業(yè)是培養(yǎng)軟件測試工程師的一個(gè)重要途徑,為了更好地實(shí)現(xiàn)培養(yǎng)目標(biāo),作者結(jié)合自身的教學(xué)經(jīng)驗(yàn)和實(shí)際工作經(jīng)驗(yàn)編寫了本書。
本書教學(xué)目標(biāo)明確,注重理論與實(shí)踐的結(jié)合,在書中既有軟件測試的相關(guān)理論知識(shí)的闡述,也有實(shí)踐過程的詳細(xì)介紹。本書主要內(nèi)容如下:
第1章是軟件測試基礎(chǔ),首先介紹了軟件的概念及特性、軟件危機(jī)的產(chǎn)生原因和消除軟件危機(jī)的方法,然后介紹了軟件測試的發(fā)展歷史、意義、目的、原則、質(zhì)量度量和分類,最后介紹了軟件測試的流程。
第2章是測試用例設(shè)計(jì),首先介紹了測試用例設(shè)計(jì)的原則,然后詳細(xì)介紹了測試用例設(shè)計(jì)方法,接著介紹了測試用例設(shè)計(jì)步驟、測試用例分級(jí)、測試用例編寫要素與模板和測試用例設(shè)計(jì)誤區(qū),最后介紹了單元測試以及單元測試案例分析與實(shí)踐。
第3章是軟件缺陷管理,首先介紹了軟件缺陷的基本概念,然后介紹了軟件缺陷管理的流程和軟件缺陷的度量、分析與統(tǒng)計(jì),重點(diǎn)介紹了軟件缺陷報(bào)告的內(nèi)容和撰寫標(biāo)準(zhǔn),最后簡要介紹了幾種常用的軟件缺陷管理工具。
第4章是軟件測試管理,首先介紹了軟件測試管理的意義、內(nèi)涵、規(guī)范和要素,然后具體介紹了軟件測試管理的內(nèi)容,最后介紹了幾種常用的軟件測試管理工具。
第5章是軟件功能測試,首先介紹了軟件功能測試的相關(guān)基本概念,包括軟件功能測試需求、軟件功能測試過程、手工測試和自動(dòng)化測試等,然后介紹了比較流行的軟件功能測試自動(dòng)化工具UFT的具體使用,最后以UFT自帶的樣例程序FlightReservations的登錄功能為例介紹了自動(dòng)化測試的具體實(shí)現(xiàn)流程。
第6章是軟件性能測試,首先介紹了軟件性能測試的概念、目標(biāo)和方法,然后通過組建性能測試團(tuán)隊(duì)、制定性能測試計(jì)劃、設(shè)計(jì)性能測試方案、搭建性能測試環(huán)境、執(zhí)行性能測試、分析性能測試結(jié)果等內(nèi)容詳細(xì)介紹了軟件性能測試過程,最后介紹了常用的性能測試工具及其使用,并通過實(shí)際案例對(duì)性能測試過程進(jìn)行了驗(yàn)證。
第7章是測試實(shí)踐,針對(duì)實(shí)際案例展開功能測試和性能測試,并詳細(xì)介紹了測試實(shí)施的全過程。
本書可以作為軟件測試專業(yè)的教材,也可以作為軟件開發(fā)和軟件工程類學(xué)科的教材,還可以作為軟件測試?yán)碚撆c實(shí)踐工作者進(jìn)行研究、培訓(xùn)與應(yīng)用實(shí)踐的參考資料。
本書作者為黃河科技學(xué)院計(jì)算機(jī)專業(yè)教師,四位作者均工作在教學(xué)一線,而且其中兩位教師曾赴惠普-洛陽國際軟件人才基地進(jìn)行為期一年的軟件測試項(xiàng)目培訓(xùn),有豐富的教學(xué)工作經(jīng)驗(yàn)和軟件測試項(xiàng)目的實(shí)際工作經(jīng)驗(yàn)。黃河科技學(xué)院計(jì)算機(jī)科學(xué)系主任史建國負(fù)責(zé)本書的審稿工作。在本書的編寫過程中,史老師提出了很多寶貴的建議,在此表示衷心感謝。
由于作者水平有限,加之書中很多內(nèi)容來自于實(shí)際實(shí)驗(yàn),在總結(jié)過程中難免存在疏漏和不妥之處,希望廣大同行和讀者能夠批評(píng)指正。如果讀者有任何意見或建議,請(qǐng)發(fā)送至郵箱flx@hhstu.edu.cn。
第1章 軟件測試基礎(chǔ) 1
1.1 軟件與軟件危機(jī) 1
1.1.1 軟件的概念和特性 1
1.1.2 軟件危機(jī)的產(chǎn)生原因 3
1.1.3 消除軟件危機(jī)的方法 4
1.2 軟件測試基本概念 5
1.2.1 軟件測試的發(fā)展歷史 5
1.2.2 軟件測試的意義 6
1.2.3 軟件測試的目的 6
1.2.4 軟件測試的原則 7
1.2.5 軟件測試的質(zhì)量度量 7
1.3 軟件測試的分類 8
1.3.1 “白盒”測試與“黑盒”測試 8
1.3.2 靜態(tài)測試與動(dòng)態(tài)測試 8
1.3.3 手工測試與自動(dòng)化測試 9
1.3.4 基于生命周期的軟件測試 9
1.4 軟件測試流程 10
1.4.1 軟件測試的一般流程 10
1.4.2 軟件開發(fā)模式以及對(duì)軟件測試的影響 10
本章小結(jié) 11
思考與練習(xí) 12
第2章 測試用例設(shè)計(jì) 14
2.1 測試用例設(shè)計(jì)原則 14
2.2 測試用例設(shè)計(jì)方法 14
2.2.1 等價(jià)類劃分法 14
2.2.2 邊界值分析法 17
2.2.3 因果圖法 21
2.2.4 場景法 25
2.3 測試用例設(shè)計(jì)步驟 28
2.4 測試用例分級(jí) 28
2.5 測試用例編寫要素與模板 29
2.6 測試用例設(shè)計(jì)誤區(qū) 31
2.7 單元測試 32
2.7.1 單元測試的概念 32
2.7.2 單元測試目標(biāo)和任務(wù) 32
2.7.3 單元靜態(tài)測試 35
2.7.4 單元?jiǎng)討B(tài)測試 38
2.7.5 單元?jiǎng)討B(tài)測試工具的使用 40
2.8 單元測試案例分析與實(shí)踐 40
本章小結(jié) 46
思考與練習(xí) 47
第3章 軟件缺陷管理 49
3.1 軟件缺陷 49
3.1.1 軟件缺陷定義 49
3.1.2 軟件缺陷描述 50
3.1.3 軟件缺陷分類 51
3.2 軟件缺陷管理 55
3.2.1 軟件缺陷管理流程 55
3.2.2 軟件缺陷度量 57
3.2.3 軟件缺陷分析 59
3.2.4 軟件缺陷統(tǒng)計(jì) 60
3.2.5 缺陷報(bào)告管理 62
3.3 軟件缺陷管理工具 66
3.3.1 TrackRecord 66
3.3.2 ClearQuest 66
3.3.3 Bugzilla 67
3.3.4 Mantis 68
3.3.5 BMS 68
本章小結(jié) 68
思考與練習(xí) 69
第4章 軟件測試管理 71
4.1 軟件測試管理概述 71
4.1.1 軟件測試管理基礎(chǔ) 71
4.1.2 軟件測試管理體系 72
4.1.3 軟件測試管理策略 73
4.2 軟件測試管理內(nèi)容 75
4.2.1 軟件測試需求管理 75
4.2.2 軟件測試團(tuán)隊(duì)管理 77
4.2.3 軟件測試文檔管理 79
4.2.4 軟件測試流程管理 86
4.2.5 軟件測試執(zhí)行管理 90
4.3 軟件測試管理工具 94
4.3.1 TestDirector 94
4.3.2 Rational ClearQuest TestManager 99
本章小結(jié) 104
思考與練習(xí) 104
第5章 軟件功能測試 106
5.1 軟件功能測試需求 106
5.1.1 軟件需求分析 106
5.1.2 軟件測試需求分析 107
5.2 軟件功能測試過程 109
5.2.1 功能測試的前期準(zhǔn)備 109
5.2.2 功能測試的計(jì)劃制定 110
5.2.3 測試設(shè)計(jì)與開發(fā) 110
5.2.4 測試執(zhí)行與缺陷跟蹤 111
5.3 功能測試自動(dòng)化 111
5.3.1 手工測試與自動(dòng)化測試 111
5.3.2 功能測試自動(dòng)化工具簡介 112
5.4 功能測試自動(dòng)化工具UFT 115
5.4.1 UFT的安裝 115
5.4.2 UFT的插件管理 117
5.4.3 UFT的啟動(dòng)界面 118
5.4.4 UFT的幫助文檔 119
5.4.5 UFT的視圖 120
5.4.6 UFT測試腳本的錄制 121
5.4.7 UFT測試腳本的編輯 124
5.4.8 UFT測試腳本的調(diào)試和運(yùn)行 137
5.4.9 UFT測試結(jié)果分析 139
5.5 功能測試自動(dòng)化實(shí)踐 140
5.5.1 功能測試需求分析與提取 140
5.5.2 設(shè)計(jì)測試用例 140
5.5.3 開發(fā)測試腳本 141
5.5.4 調(diào)試和運(yùn)行測試腳本 148
5.5.5 測試結(jié)果分析 149
本章小結(jié) 150
思考與練習(xí) 150
第6章 軟件性能測試 152
6.1 軟件性能測試基礎(chǔ) 152
6.1.1 性能測試的概念 153
6.1.2 性能測試的目標(biāo) 157
6.1.3 常用性能測試方法 159
6.2 軟件性能測試過程 161
6.2.1 測試前期準(zhǔn)備 164
6.2.2 測試需求分析與提取 164
6.2.3 測試計(jì)劃與用例 165
6.2.4 測試設(shè)計(jì)與開發(fā) 166
6.2.5 測試執(zhí)行與監(jiān)管 168
6.2.6 測試分析與優(yōu)化 168
6.2.7 測試報(bào)告與評(píng)審 170
6.3 性能測試工具 170
6.3.1 性能測試工具簡介 170
6.3.2 性能測試工具的使用 172
6.4 軟件性能測試實(shí)踐 219
本章小結(jié) 231
思考與練習(xí) 232
第7章 測試實(shí)踐 234
7.1 被測試軟件簡介 234
7.2 測試計(jì)劃 235
7.2.1 功能測試計(jì)劃的編制 235
7.2.2 性能測試計(jì)劃的編制 238
7.3 測試用例設(shè)計(jì) 241
7.3.1 功能測試測試用例的設(shè)計(jì) 241
7.3.2 功能測試自動(dòng)化測試腳本的開發(fā) 247
7.3.3 性能測試測試用例的設(shè)計(jì) 257
7.3.4 性能測試腳本的開發(fā) 260
7.4 測試執(zhí)行與結(jié)果分析 285
7.4.1 功能測試執(zhí)行與結(jié)果分析 286
7.4.2 性能測試的執(zhí)行 297
7.4.3 性能測試結(jié)果分析 302
本章小結(jié) 311
參考文獻(xiàn) 312