本書是基于校級(jí)精品資源共享課程項(xiàng)目編寫的教材,是作者從事十余年軟件測(cè)試課程教學(xué)的經(jīng)驗(yàn)積累。本書以服務(wù)高校軟件測(cè)試課程教學(xué)為目的,盡量在知識(shí)的系統(tǒng)性和學(xué)習(xí)的連貫性上作出平衡,以案例為中心,遵循夠用為度的課堂原則,采用提出問題分析問題解決問題的思路,很多時(shí)候采用了手把手教學(xué)的方式,目的是幫助初學(xué)者入門,提高學(xué)習(xí)者學(xué)習(xí)興趣,終具備軟件測(cè)試工程師所需的職業(yè)技能。全書共分9章,主要介紹軟件測(cè)試的理論知識(shí)、方法、技術(shù)和常用工具,包括:軟件測(cè)試概論、軟件測(cè)試基本概念、軟件測(cè)試與軟件質(zhì)量、黑盒子測(cè)試、軟件測(cè)試資源管理、白盒子測(cè)試、性能測(cè)試、軟件測(cè)試相關(guān)文檔編寫,后一章是配套的課程綜合實(shí)訓(xùn)。本書適合于高職高專院校的軟件技術(shù)、軟件測(cè)試專業(yè)及計(jì)算機(jī)相關(guān)專業(yè)使用,也可作為軟件測(cè)試課程的教材,還可作為學(xué)習(xí)軟件測(cè)試入門和提高的培訓(xùn)教材,也適合從事軟件開發(fā)和軟件測(cè)試的專業(yè)技術(shù)及管理人員參閱使用。
近年來,隨著軟件行業(yè)的飛速發(fā)展,軟件的規(guī)模越來越大,人們對(duì)軟件質(zhì)量越來越重視,軟件測(cè)試工程師的重要性也日益突出,軟件測(cè)試工程師的需求和待遇都達(dá)到了歷史新高。
然而,要成為一名合格的軟件測(cè)試人才,需要經(jīng)過系統(tǒng)化的、嚴(yán)格的專業(yè)培養(yǎng),要在培養(yǎng)過程中強(qiáng)調(diào)實(shí)踐動(dòng)手能力和工程應(yīng)用能力。學(xué)習(xí)的過程中需要學(xué)習(xí)者親力親為,結(jié)合案例實(shí)際動(dòng)手分析,在實(shí)踐中體會(huì)軟件測(cè)試的真諦。多年的教學(xué)實(shí)踐表明,如果沒有親身的測(cè)試體驗(yàn),就無(wú)法真正理解軟件測(cè)試的方法,就無(wú)法靈活應(yīng)用軟件測(cè)試的技術(shù)。
目前,隨著高校軟件測(cè)試專業(yè)和軟件測(cè)試課程的開設(shè),使得軟件測(cè)試的教學(xué)和專業(yè)人才培養(yǎng)都有了長(zhǎng)足的進(jìn)步。但是,在另一方面,現(xiàn)在很多軟件測(cè)試課程的教學(xué)普遍缺少教學(xué)案例的支撐,只講理論不講實(shí)際操作,講述操作的也不具體詳細(xì),一筆帶過。歸根到底,其主要原因還是軟件測(cè)試這個(gè)行業(yè)不夠規(guī)范、成熟,有些高校教師本身在這方面沒有項(xiàng)目經(jīng)驗(yàn),所以造成有些高校教師講授這門課程時(shí)沒有任何實(shí)際的例子可以操作,這無(wú)疑會(huì)在教學(xué)中造成很大的遺憾。本書盡力在知識(shí)的系統(tǒng)性和學(xué)習(xí)的連貫性上作出平衡,以案例為中心,遵循夠用為度的課堂原則,采用提出問題分析問題解決問題的思路,很多時(shí)候采用了手把手教學(xué)的方式,目的是幫助初學(xué)者入門,提高學(xué)習(xí)者學(xué)習(xí)興趣。
軟件測(cè)試課程的教學(xué)目標(biāo)是通過對(duì)軟件測(cè)試基礎(chǔ)理論、方法和技能的學(xué)習(xí),結(jié)合測(cè)試流程管理和自動(dòng)化工具的使用,對(duì)軟件項(xiàng)目進(jìn)行測(cè)試操作,使學(xué)生了解軟件測(cè)試完整的工作過程,能對(duì)完整的項(xiàng)目進(jìn)行測(cè)試,從而實(shí)現(xiàn)與測(cè)試技能要求的無(wú)縫連接。
本書以軟件測(cè)試所需技能的學(xué)習(xí)路線為主線進(jìn)行編寫。
第 1 章
軟件測(cè)試概論,主要的目的是讓初學(xué)者了解軟件測(cè)試的行業(yè)背景和歷史、理解導(dǎo)致軟件缺陷的原因和理解什么是軟件缺陷。建議安排6個(gè)學(xué)時(shí)進(jìn)行教學(xué)。
第 2 章
軟件測(cè)試基本概念,介紹了什么是軟件測(cè)試、軟件測(cè)試的目的,介紹了測(cè)試用例是什么、怎樣設(shè)計(jì)測(cè)試用例,重點(diǎn)介紹了軟件測(cè)試的多維度分類,以此進(jìn)行軟件測(cè)試名詞掃盲。建議安排4個(gè)學(xué)時(shí)進(jìn)行教學(xué)。
第 3 章
軟件測(cè)試與軟件質(zhì)量,介紹了軟件質(zhì)量管理、軟件測(cè)試模型,以及軟件測(cè)試的總體工作流程、軟件開發(fā)與軟件測(cè)試各階段的聯(lián)系,重點(diǎn)給初學(xué)者灌輸軟件測(cè)試的基本理念8個(gè)基本原則。建議安排8個(gè)學(xué)時(shí)進(jìn)行教學(xué)。
第 4 章
黑盒子測(cè)試,介紹了什么是黑盒子測(cè)試,重點(diǎn)介紹等價(jià)類劃分、邊界值分析、決策表分析等黑盒測(cè)試方法,并針對(duì)具體的案例來講解測(cè)試用例的設(shè)計(jì)。建議安排8個(gè)學(xué)時(shí)進(jìn)行教學(xué)。
第 5 章
軟件測(cè)試資源管理,介紹了為什么要使用軟件測(cè)試資源管理工具,挑選了HP ALM作為示范,詳細(xì)地、手把手地呈現(xiàn)了使用ALM進(jìn)行測(cè)試資源管理的整個(gè)流程。建議安排12個(gè)學(xué)時(shí)進(jìn)行教學(xué)。
第 6 章
白盒子測(cè)試,介紹了什么是白盒子測(cè)試、什么是程序控制流圖,介紹了數(shù)據(jù)流分析測(cè)試方法,以此做引子,重點(diǎn)介紹了邏輯覆蓋測(cè)試方法和路徑分析測(cè)試方法,并針對(duì)具體的案例來講解測(cè)試用例的設(shè)計(jì)。建議安排8個(gè)學(xué)時(shí)進(jìn)行教學(xué)。
第 7 章
性能測(cè)試,介紹了什么是性能測(cè)試,為什么要使用自動(dòng)化測(cè)試工具來實(shí)施性能測(cè)試,挑選了HP LoadRunner作為示范,以HP WebTours(航空訂票網(wǎng)站)作為案例,詳細(xì)地、手把手地分解了使用LoadRunner進(jìn)行性能測(cè)試的整個(gè)流程。建議安排10個(gè)學(xué)時(shí)進(jìn)行教學(xué)。
第 8 章
軟件測(cè)試相關(guān)文檔編寫,介紹了測(cè)試計(jì)劃、評(píng)審報(bào)告和測(cè)試報(bào)告的編寫規(guī)范,并給出了具體的文檔模板,供學(xué)習(xí)者參考使用。建議安排6個(gè)學(xué)時(shí)進(jìn)行教學(xué)。
第 9 章
課程綜合實(shí)訓(xùn),是軟件測(cè)試課程學(xué)習(xí)完畢后安排的綜合實(shí)訓(xùn),內(nèi)容來源于編者指導(dǎo)學(xué)生進(jìn)行的一個(gè)綜合實(shí)訓(xùn)項(xiàng)目,被測(cè)程序是具有普遍性、代表性的電子商務(wù)網(wǎng)站。隨書附帶有程序源代碼,部署后可以直接開展測(cè)試。這一章強(qiáng)調(diào)學(xué)習(xí)者對(duì)項(xiàng)目參與過程的親歷和體驗(yàn),培養(yǎng)學(xué)習(xí)者解決問題的能力、探究精神和綜合實(shí)踐能力。建議安排一到兩周時(shí)間讓學(xué)生進(jìn)行綜合訓(xùn)練。
隨書給出了高校教學(xué)過程中所需用到的各種文檔,例如:課程標(biāo)準(zhǔn)、授課計(jì)劃和職業(yè)能力分析表等等,可以從http://www.tdpress.com/51eds/下載。同時(shí),作為隨書電子資料,給出了講課所需的課件(PPT)、教學(xué)視頻、案例和被測(cè)程序源代碼等。
本書由陳建潮編著,在編寫過程中,編者得到了軟件教研室各位同事的大力支持和幫助,得到了所指導(dǎo)的學(xué)生們的積極配合,其中綜合實(shí)訓(xùn)程序選取的是馬本茂、董有沛小組的作品,測(cè)試文檔選取的是韋麗芳、趙偉維小組的作品。在此謹(jǐn)向各位同事和同學(xué)表示衷心的感謝。
在本書的編寫過程中,參考和引用了許多專家、學(xué)者的著作和論文,可能在文中未能一一注明,在此謹(jǐn)向相關(guān)參考文獻(xiàn)的作者表示衷心的感謝。
限于編者的水平,本書難免存在不足和不當(dāng)之處,懇請(qǐng)讀者批評(píng)指正。聯(lián)系方式:vic_c@126.com。
編 者
2018年4月
第1章 軟件測(cè)試概論 1
1.1 軟件的概念 1
1.2 軟件分類簡(jiǎn)述 1
1.3 軟件測(cè)試的歷史 3
1.4 軟件缺陷與故障案例 5
1.5 導(dǎo)致軟件缺陷的原因 7
1.6 軟件缺陷到底是什么 8
小結(jié) 9
思考與練習(xí) 10
第2章 軟件測(cè)試基本概念 11
2.1 什么是軟件測(cè)試 11
2.2 軟件測(cè)試的目的 12
2.3 什么是測(cè)試用例 13
2.4 軟件測(cè)試多維度分類 14
2.4.1
按是否需要執(zhí)行被測(cè)軟件的角度劃分 14
2.4.2
按測(cè)試過程的各個(gè)階段劃分 14
2.4.3
按使用的測(cè)試方法劃分 15
2.4.4
按測(cè)試實(shí)施組織劃分 16
小結(jié) 18
思考與練習(xí) 18
第3章 軟件測(cè)試與軟件質(zhì)量 20
3.1 軟件質(zhì)量模型 20
3.2
QA與QC 22
3.3 狹義上的軟件測(cè)試過程 23
3.4 軟件測(cè)試過程模型介紹 24
3.4.1
V模型 24
3.4.2
W模型 25
3.4.3
H模型 26
3.4.4
測(cè)試過程模型的選擇 26
3.5 軟件測(cè)試總體工作流程 27
3.5.1
需求測(cè)試階段 28
3.5.2
編寫測(cè)試計(jì)劃階段 28
3.5.3
設(shè)計(jì)測(cè)試用例階段 29
3.5.4
實(shí)施測(cè)試階段 29
3.5.5
測(cè)試總結(jié)/報(bào)告階段 29
3.5.6
測(cè)試歸檔階段 30
3.6 軟件測(cè)試基本原則 30
3.6.1
完全測(cè)試軟件是不可能的 30
3.6.2
軟件測(cè)試是有風(fēng)險(xiǎn)的行為 31
3.6.3
測(cè)試無(wú)法顯示潛在的軟件缺陷 32
3.6.4
軟件缺陷的群集現(xiàn)象 32
3.6.5
軟件缺陷的免疫現(xiàn)象 33
3.6.6
隨著時(shí)間的推移,軟件缺陷的修復(fù)費(fèi)用將呈
幾何級(jí)數(shù)增長(zhǎng) 33
3.6.7 零缺陷是不切實(shí)際的行為 34
3.6.8
盡量避免測(cè)試的隨意性 34
小結(jié) 34
思考與練習(xí) 35
第4章 黑盒子測(cè)試 37
4.1 黑盒子測(cè)試方法概述 37
4.2 典型案例分析 38
4.3 等價(jià)類劃分法 39
4.3.1
劃分等價(jià)類 39
4.3.2
等價(jià)類劃分原則 39
4.3.3
設(shè)計(jì)測(cè)試用例 40
4.3.4
針對(duì)三角形問題使用等價(jià)類劃分方法設(shè)計(jì)測(cè)試用例 41
4.3.5
針對(duì)雇傭金問題使用等價(jià)類劃分方法設(shè)計(jì)測(cè)試用例 44
4.4 邊界值分析 45
4.4.1
使用邊界值分析方法進(jìn)行健壯性測(cè)試 46
4.4.2
邊界值分析簡(jiǎn)介 47
4.4.3
基于邊界值分析方法
設(shè)計(jì)測(cè)試用例的原則 48
4.4.4
針對(duì)三角形問題使用邊界值分析方法設(shè)計(jì)測(cè)試用例 49
4.4.5
針對(duì)雇傭金問題使用邊界值分析方法設(shè)計(jì)測(cè)試用例 50
4.5 決策表分析 52
4.5.1
決策表的組成部分 52
4.5.2
建立決策表設(shè)計(jì)測(cè)試用例 53
4.5.3
以經(jīng)典的閱讀指南為例構(gòu)建決策表 53
4.5.4
決策表的簡(jiǎn)化 53
4.5.5
針對(duì)三角形問題使用決策表分析方法設(shè)計(jì)測(cè)試用例 54
小結(jié) 55
思考與練習(xí) 56
第5章 軟件測(cè)試資源管理 58
5.1
ALM/QC/TD:經(jīng)典的軟件測(cè)試管理工具 59
5.2
ALM入門 60
5.3
ALM用戶使用指南 61
5.3.1
連接ALM服務(wù)器 61
5.3.2
登錄項(xiàng)目 61
5.3.3
ALM桌面客戶端工作界面 63
5.4 案例引入 64
5.5 在ALM管理端上創(chuàng)建項(xiàng)目 65
5.6 在ALM用戶端登錄項(xiàng)目 69
5.7 使用ALM創(chuàng)建需求 71
5.8 使用ALM創(chuàng)建測(cè)試(測(cè)試用例)
77
5.9 使用ALM創(chuàng)建測(cè)試集 92
5.10
使用ALM進(jìn)行缺陷管理 98
小結(jié) 106
思考與練習(xí) 107
第6章 白盒子測(cè)試 108
6.1 程序控制流圖 109
6.2 數(shù)據(jù)流分析 110
6.3 邏輯覆蓋 111
6.3.1
語(yǔ)句覆蓋 112
6.3.2
判定覆蓋 112
6.3.3
條件覆蓋 113
6.3.4
判定?條件覆蓋 114
6.3.5
條件組合覆蓋 114
6.3.6
路徑覆蓋 115
6.4 路徑分析 117
6.4.1
基本路徑測(cè)試 117
6.4.2
循環(huán)測(cè)試 119
小結(jié) 121
思考與練習(xí) 122
第7章 性能測(cè)試 124
7.1 性能測(cè)試概述 124
7.2 實(shí)施性能測(cè)試的過程 125
7.3 性能分析名詞解釋 126
7.4
LoadRunner簡(jiǎn)介 127
7.4.1
批量創(chuàng)建虛擬用戶
模擬真實(shí)負(fù)載 127
7.4.2
性能測(cè)試自動(dòng)化 128
7.4.3
性能監(jiān)控 128
7.4.4
直觀的結(jié)果分析 129
7.5 使用LoadRunner進(jìn)行負(fù)載測(cè)試的流程 129
7.5.1
案例介紹航空訂票網(wǎng)站 129
7.5.2
規(guī)劃負(fù)載測(cè)試 133
7.5.3
創(chuàng)建Vuser腳本 133
7.5.4
增強(qiáng)功能:添加事務(wù) 145
7.5.5
增強(qiáng)功能:參數(shù)化輸入 149
7.5.6
增強(qiáng)功能:內(nèi)容檢查 155
7.5.7
準(zhǔn)備加載:迭代和并發(fā)用戶 158
7.5.8
定義場(chǎng)景 162
7.5.9
運(yùn)行場(chǎng)景 164
7.5.10
分析結(jié)果 167
小結(jié) 171
思考與練習(xí) 172
第8章 軟件測(cè)試相關(guān)文檔編寫
173
8.1 測(cè)試計(jì)劃 173
8.2 評(píng)審報(bào)告 188
8.3 測(cè)試報(bào)告 191
小結(jié) 198
思考與練習(xí) 198
第9章 課程綜合實(shí)訓(xùn) 199
9.1 實(shí)訓(xùn)指導(dǎo)書 199
9.2 案例引入 201
9.3 需求規(guī)格說明書 202
9.4 測(cè)試計(jì)劃編寫(節(jié)選)
225
9.5 測(cè)試用例(功能測(cè)試)設(shè)計(jì)(節(jié)選) 233
9.6 被測(cè)程序部署說明 250
9.7 測(cè)試報(bào)告編寫(節(jié)選) 259
參考文獻(xiàn) 268