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