本書與《軟件測試 (第2版)》相配套, 內(nèi)容包括兩部分, 第一部分是習(xí)題解析, 針對主教材的8章內(nèi)容, 給出每章的知識(shí)點(diǎn)和重點(diǎn)、難點(diǎn)知識(shí), 精心設(shè)計(jì)和安排了相應(yīng)的習(xí)題解析, 給出了詳細(xì)的分析和參考答案。第2部分是實(shí)驗(yàn)指導(dǎo), 主要包括黑盒測試、白盒測試以及jUnit、TestDirector等軟件工具的使用。
本書對軟件測試的習(xí)題和實(shí)驗(yàn)進(jìn)行了詳細(xì)編制,特別適合作為高等院校軟件測試教學(xué)輔導(dǎo)書,也可作為全國計(jì)算機(jī)軟件測試師考試和軟件技術(shù)資格與水平考試的培訓(xùn)資料。
本書與《軟件測試(第2版)》相配套,在整個(gè)編寫過程中結(jié)合作者多年從事軟件工程和軟件測試的教學(xué)經(jīng)驗(yàn),注重基本理論和基本實(shí)踐的教學(xué)。在學(xué)習(xí)本書之前,需要一些先行課程作為本書的支撐,如計(jì)算機(jī)導(dǎo)論、程序設(shè)計(jì)語言、離散數(shù)學(xué)、軟件工程等。
本書的寫作目的是讓學(xué)生在實(shí)踐中增強(qiáng)動(dòng)手能力,鞏固理論知識(shí),并用理論知識(shí)指導(dǎo)實(shí)踐。本書意在讓學(xué)生掌握軟件測試的基本原理、基本方法、基本技術(shù)、基本標(biāo)準(zhǔn)和規(guī)范,培養(yǎng)學(xué)生的合作意識(shí)和團(tuán)結(jié)精神,提高學(xué)生軟件測試的綜合能力。
本書內(nèi)容包括軟件測試習(xí)題解析、軟件測試實(shí)驗(yàn)指導(dǎo)兩部分。第1部分是習(xí)題解析,針對主教材8章,即軟件測試概述、軟件測試基本知識(shí)、黑盒測試、白盒測試、軟件測試流程、性能測試、自動(dòng)測試技術(shù)、軟件測試管理,給出每章的知識(shí)重點(diǎn),精心設(shè)計(jì)了相應(yīng)的習(xí)題,并給出了詳細(xì)的解析和參考答案。第2部分是軟件測試實(shí)驗(yàn)指導(dǎo),包括黑盒測試、白盒測試、單元測試軟件JUnit、測試管理軟件TestDirector、功能測試軟件、性能測試軟件LoadRunner、代碼分析工具FindBugs、缺陷管理軟件Bugzilla、移動(dòng)測試軟件Appium共9個(gè)實(shí)驗(yàn),對每個(gè)實(shí)驗(yàn)都從實(shí)驗(yàn)?zāi)康募皩?shí)驗(yàn)環(huán)境、實(shí)驗(yàn)內(nèi)容、方案設(shè)計(jì)、測試數(shù)據(jù)及運(yùn)行結(jié)果、源代碼等方面進(jìn)行介紹。附錄包括實(shí)驗(yàn)報(bào)告格式、軟件測試相關(guān)文檔模板、軟件測試考試與競賽簡介。為便于讀者學(xué)習(xí),在清華大學(xué)出版社網(wǎng)站(http://www.tup.com.cn)本書頁面中提供了全國大學(xué)生軟件測試大賽中使用的大角蟲軟件安裝包。
本書由周元哲主編,其中,西北工業(yè)大學(xué)鄭煒編寫了第2部分的實(shí)驗(yàn)9。西安郵電大學(xué)計(jì)算機(jī)學(xué)院的王曙燕、鄧萬宇、孟偉君、舒新峰、張昕對本書的編寫給予了大力的支持并提出了指導(dǎo)性意見,南京大學(xué)陳振宇、上海睿亞訓(xùn)軟件技術(shù)服務(wù)公司王磊、韓偉以及清華大學(xué)出版社張玥編輯對本教材的寫作大綱、寫作風(fēng)格等提出了很多寶貴的意見。本書在寫作過程中參閱了大量中外文專著、教材、論文、報(bào)告及網(wǎng)絡(luò)資料,在此向各位作者表示敬意和衷心的感謝。
本書內(nèi)容精練,文字簡潔,結(jié)構(gòu)合理,綜合性強(qiáng),明確定位于面向初、中級讀者,由入門起步,側(cè)重提高,特別適合作為高等院校相關(guān)專業(yè)軟件測試課程的教材或教學(xué)參考書,也可供從事計(jì)算機(jī)應(yīng)用開發(fā)的各類技術(shù)人員參考,或用作全國計(jì)算機(jī)軟件測評師考試、軟件技術(shù)資格與水平考試的培訓(xùn)資料。
由于作者水平有限,時(shí)間緊迫,本書難免有不足之處,誠懇期待讀者的批評指正,以使本書日臻完善。
作者2017年6月
第1部分習(xí) 題 解 析第1章軟件測試概述3
1.1本章要求3
1.2本章知識(shí)重點(diǎn)3
1.3典型習(xí)題解析5
1.3.1選擇題5
1.3.2判斷題9
1.3.3簡答題10第2章軟件測試基本知識(shí)14
2.1本章要求14
2.2本章知識(shí)重點(diǎn)14
2.3典型習(xí)題解析18
2.3.1選擇題18
2.3.2判斷題21
2.3.3簡答題22第3章黑盒測試27
3.1本章要求27
3.2本章知識(shí)重點(diǎn)27
3.3典型習(xí)題解析28
3.3.1選擇題28
3.3.2判斷題31
3.3.3簡答題31
3.3.4設(shè)計(jì)題33第4章白盒測試47
4.1本章要求47
4.2本章知識(shí)重點(diǎn)47
4.3典型習(xí)題解析50
4.3.1選擇題50
4.3.2簡答題52
4.3.3設(shè)計(jì)題54第5章軟件測試流程65
5.1本章要求65
5.2本章知識(shí)重點(diǎn)65
5.3典型習(xí)題解析66
5.3.1選擇題66
5.3.2簡答題72第6章性能測試79
6.1本章要求79
6.2本章知識(shí)重點(diǎn)79
6.3典型習(xí)題解析80
6.3.1選擇題80
6.3.2簡答題82
6.3.3設(shè)計(jì)題87第7章自動(dòng)測試技術(shù)90
7.1本章要求90
7.2本章知識(shí)重點(diǎn)90
7.3典型習(xí)題解析92
7.3.1選擇題92
7.3.2簡答題94
7.3.3設(shè)計(jì)題98第8章軟件測試管理108
8.1本章要求108
8.2本章知識(shí)重點(diǎn)108
8.3典型習(xí)題解析109
8.3.1選擇題109
8.3.2簡答題111
第2部分實(shí) 驗(yàn) 指 導(dǎo)
實(shí)驗(yàn)1黑盒測試119
1.1等價(jià)類劃分法119
1.2邊界值分析法121
1.3因果圖132實(shí)驗(yàn)2白盒測試137
2.1邏輯覆蓋137
2.2路徑分析138實(shí)驗(yàn)3單元測試軟件JUnit142
3.1JUnit介紹142
3.1.1JUnit特點(diǎn)142
3.1.2JUnit斷言143
3.2測試Calculator類143
3.2.1Calculator類143
3.2.2CalculatorTest類144
3.3測試Sorting類149
3.3.1Sorting類149
3.3.2SortingTest類151
3.4測試WordDealUtil類153
3.4.1WordDealUtil類153
3.4.2WordDealUtilTest測試類154
3.5測試Triangle類156
3.5.1Triangle類156
3.5.2TriangleTest類158實(shí)驗(yàn)4測試管理軟件TestDirector160
4.1TestDirector簡介160
4.2TestDirector操作步驟161實(shí)驗(yàn)5功能測試軟件174
5.1VB 6.0實(shí)現(xiàn)GUI捕捉/回放174
5.2UFT177
5.2.1基本功能178
5.2.2安裝UFT178
5.2.3實(shí)驗(yàn)內(nèi)容179實(shí)驗(yàn)6性能測試軟件LoadRunner188
6.1LoadRunner相關(guān)術(shù)語188
6.2LoadRunner測試流程189
6.3實(shí)驗(yàn)步驟189
6.3.1使用VuGen創(chuàng)建腳本190
6.3.2使用Controller設(shè)計(jì)和運(yùn)行場景194
6.3.3使用Analysis分析場景結(jié)果198實(shí)驗(yàn)7代碼分析工具FindBugs200
7.1FindBugs簡介200
7.2實(shí)驗(yàn)內(nèi)容200
7.2.1安裝FindBugs200
7.2.2FindBugs使用方法201實(shí)驗(yàn)8缺陷管理軟件Bugzilla205
8.1Bugzilla簡介205
8.2Bugzilla的缺陷處理流程206
8.3環(huán)境搭建206
8.3.1MySQL數(shù)據(jù)庫206
8.3.2ActivePerl207
8.3.3Bugzilla安裝包208
8.3.4IIS209
8.4實(shí)驗(yàn)內(nèi)容212實(shí)驗(yàn)9移動(dòng)測試軟件Appium217
9.1實(shí)驗(yàn)內(nèi)容217
9.2環(huán)境搭建217
9.2.1JDK和Eclipse安裝與配置217
9.2.2SDK安裝與配置217
9.2.3Appium的安裝與配置218
9.2.4相關(guān)文件和jar包下載219
9.3實(shí)驗(yàn)步驟220
9.3.1測試項(xiàng)目的創(chuàng)建220
9.3.2針對待測軟件編寫測試腳本222附錄A實(shí)驗(yàn)報(bào)告格式230附錄B軟件測試相關(guān)文檔模板232
B.1軟件測試計(jì)劃模板232
B.2軟件測試用例設(shè)計(jì)模板235
B.3軟件測試報(bào)告模板237附錄C軟件測試考試與競賽簡介239
C.1全國計(jì)算機(jī)等級考試四級軟件測試工程師239
C.1.1考試說明239
C.1.2考試大綱及考試重點(diǎn)240
C.1.3參考資料245
C.2全國大學(xué)生軟件測試大賽246
C.2.1大賽簡介246
C.2.2大賽內(nèi)容246參考文獻(xiàn)248
第5章軟件測試流程
5.1本 章 要 求
了解軟件測試生命周期
了解軟件測試執(zhí)行過程
掌握單元測試
理解集成測試、系統(tǒng)測試、驗(yàn)收測試
了解評估測試
5.2本章知識(shí)重點(diǎn)
軟件測試生命周期具體包括以下4個(gè)階段:
。1) 測試計(jì)劃。
根據(jù)用戶需求報(bào)告中關(guān)于功能要求和性能指標(biāo)的規(guī)格說明書,定義相應(yīng)的測試需求報(bào)告,使得隨后所有的測試工作都圍繞測試需求進(jìn)行。同時(shí),適當(dāng)選擇測試內(nèi)容,合理安排測試人員、測試時(shí)間及測試資源等。
(2) 測試設(shè)計(jì)。
測試設(shè)計(jì)是指將測試計(jì)劃階段制定的測試需求分解、細(xì)化為若干個(gè)可執(zhí)行的測試過程,并為每個(gè)測試過程選擇適當(dāng)?shù)臏y試用例,保證測試結(jié)果的有效性。
。3) 測試執(zhí)行。
測試執(zhí)行階段建立自動(dòng)測試過程,并對所發(fā)現(xiàn)的缺陷進(jìn)行跟蹤管理。測試執(zhí)行一般由單元測試、集成測試、系統(tǒng)測試、驗(yàn)收測試以及回歸測試等步驟組成。
、 單元測試
目的: 檢測程序模塊中有無故障存在。
對象: 軟件設(shè)計(jì)的最小單位,與程序設(shè)計(jì)和編程實(shí)現(xiàn)關(guān)系密切。
、 集成測試。
目的: 發(fā)現(xiàn)與接口有關(guān)的模塊之間的問題。
方法: 非增式集成測試法和增式集成測試法。
③ 系統(tǒng)測試。
目的: 針對系統(tǒng)中各個(gè)組成部分進(jìn)行的綜合性檢驗(yàn),證明系統(tǒng)的性能。④ 驗(yàn)收測試。
目的: 向用戶表明所開發(fā)的軟件系統(tǒng)能夠像用戶所預(yù)期的那樣工作
主要任務(wù):
明確規(guī)定驗(yàn)收測試通過的標(biāo)準(zhǔn)。
確定驗(yàn)收測試方法。
確定驗(yàn)收測試的組織和可利用的資源。
確定測試結(jié)果的分析方法。
制定驗(yàn)收測試計(jì)劃并進(jìn)行評審。
設(shè)計(jì)驗(yàn)收測試的測試用例。
審查驗(yàn)收測試的準(zhǔn)備工作。
執(zhí)行驗(yàn)收測試。
分析測試結(jié)果,確定是否通過驗(yàn)收。
(4) 測試評估。
結(jié)合量化的測試覆蓋域及缺陷跟蹤報(bào)告,對于應(yīng)用軟件的質(zhì)量、開發(fā)團(tuán)隊(duì)的工作進(jìn)度及工作效率進(jìn)行綜合評價(jià)。
5.3典型習(xí)題解析〖*2〗5.3.1選擇題1. 軟件測試是軟件質(zhì)量保證的重要手段,()是軟件測試最基礎(chǔ)的環(huán)節(jié)。
A. 功能測試B. 單元測試C. 結(jié)構(gòu)測試D. 確認(rèn)測試
【答案】B
2. 測試計(jì)劃的制訂必須注重()
A. 測試策略、測試范圍B. 測試方法、測試安排
C. 測試風(fēng)險(xiǎn)、測試治理D. 以上都對
【答案】D
3. 軟件測試計(jì)劃的內(nèi)容應(yīng)包括()。
A. 測試目的、背景B. 被測軟件的功能、輸入和輸出
C. 測試內(nèi)容和評價(jià)標(biāo)準(zhǔn)D. 以上全對
【答案】D
4. 軟件測試計(jì)劃描述了()。
A. 軟件的性質(zhì)
B. 軟件的功能和測試用例
C. 軟件的規(guī)定動(dòng)作
D. 對于預(yù)定的測試活動(dòng)將要采取的手段
【答案】D
5. 軟件設(shè)計(jì)階段的測試主要采取的方式是()。
A. 評審B. 白盒測試C. 黑盒測試D. 動(dòng)態(tài)測試
【答案】A
6. 軟件驗(yàn)收測試的合格通過準(zhǔn)則是()。
A. 軟件需求分析說明書中定義的所有功能已全部實(shí)現(xiàn),性能指標(biāo)全部達(dá)到要求
B. 所有測試項(xiàng)沒有殘余一級、二級和三級錯(cuò)誤
C. 立項(xiàng)審批表、需求分析文檔、設(shè)計(jì)文檔和編碼實(shí)現(xiàn)一致
D. 驗(yàn)收測試工件齊全
【答案】B
7. 軟件測試計(jì)劃評審會(huì)需要()參加。
A. 項(xiàng)目經(jīng)理B. SQA負(fù)責(zé)人
C. 配置負(fù)責(zé)人D. 測試組
【答案】A
8. 從測試階段角度,正確的測試順序是()。
、賳卧獪y試; ②集成測試; ③系統(tǒng)測試; ④驗(yàn)收測試
A. ①②③④B. ②①③④C. ③②①④D. ③①②④
【答案】A
9. 下列能作為設(shè)計(jì)階段測試對象的文檔是()。
A. 邏輯設(shè)計(jì)規(guī)格說明B. 外部設(shè)計(jì)規(guī)格說明
C. 內(nèi)部設(shè)計(jì)規(guī)格說明D. 以上全對
【答案】D
10. 一個(gè)好的集成測試策略應(yīng)該具有的特點(diǎn)是()。
A. 能夠使模塊與接口的劃分清晰明了,盡可能減少后續(xù)操作難度
B. 能夠?qū)Ρ粶y模塊進(jìn)行比較充分的測試
C. 對整體工作量來說,參加測試的各種資源都得到充分利用
D. 以上全對
【答案】D
11. 下列說法中錯(cuò)誤的是()。
A. 模塊在進(jìn)行集成測試前必須已經(jīng)通過單元測試
B. 軟件集成測試應(yīng)測試軟件單元之間的所有調(diào)用
C. 軟件集成測試一般采用黑盒測試
D. 軟件集成測試應(yīng)由軟件提供方組織實(shí)施,不得委托第三方進(jìn)行測試
【答案】D
12. 下列測試中能夠與軟件開發(fā)各個(gè)階段(如需求分析、設(shè)計(jì)、編碼)相對應(yīng)的是()。
A. 組裝測試、確認(rèn)測試、單元測試B. 單元測試、組裝測試、確認(rèn)測試
C. 單元測試、確認(rèn)測試、組裝測試D. 確認(rèn)測試、組裝測試、單元測試
……