出版時(shí)間:2010-7 出版社:電子工業(yè) 作者:王軼辰 頁(yè)數(shù):286
Tag標(biāo)簽:無(wú)
前言
筆者從事軟件測(cè)試已近十年,從跟著導(dǎo)師編測(cè)試程序的研究生,到完成了關(guān)于軟件測(cè)試研究論文的博士,再到目前成為一個(gè)軟件測(cè)評(píng)中心的技術(shù)負(fù)責(zé)人,基本上走過(guò)了入門、摸索、提高的路程。在軟件測(cè)試領(lǐng)域摸爬滾打了這些年以后,總想把自己的一些感觸和領(lǐng)悟?qū)懗鰜?lái),希望能夠?qū)ο胍尤脒@個(gè)行業(yè)或者已經(jīng)在這個(gè)行業(yè)中的人們有些作用?! 皬娜腴T到精通”,這個(gè)思路很好,因?yàn)槲覀兌际沁@樣走過(guò)來(lái)的(雖然路很長(zhǎng),我們還在途中)。但是這樣的主題寫起來(lái)并不容易,因?yàn)樽哌^(guò)這個(gè)歷程的人很少還能夠記得自己入門時(shí)的情景了?! ∥以谠噲D重新構(gòu)建從入門到精通的這段路程時(shí),使用了以下的方法: 1.從我們測(cè)評(píng)中心的檔案庫(kù)中找到了我為不同階段做過(guò)的軟件測(cè)試項(xiàng)目所編寫的全部測(cè)試文檔,以現(xiàn)在的眼光去重新審視?! ?.對(duì)測(cè)評(píng)中心內(nèi)不同職稱的測(cè)試人員進(jìn)行訪談,將結(jié)果用思維導(dǎo)圖的形式表示出來(lái),并進(jìn)行分析?! ?.參考了一些市面上常用的測(cè)試教科書(shū)。經(jīng)過(guò)一番探討,我整理出測(cè)試歷程的三個(gè)階段:入門期、提高期、精通期?! ∪腴T期 從入門期的思維導(dǎo)圖中我們可以看出,一個(gè)不懂軟件測(cè)試的人所想到的內(nèi)容幾乎能夠涵蓋軟件測(cè)試的方方面面。
內(nèi)容概要
隨著軟件應(yīng)用越來(lái)越廣泛,如何提高軟件的質(zhì)量和可靠性成為軟件工作者必須應(yīng)對(duì)的挑戰(zhàn)。而軟件本身具有“看不見(jiàn)摸不著”的特點(diǎn),使對(duì)軟件的驗(yàn)證和測(cè)試與對(duì)其他產(chǎn)品的驗(yàn)證和測(cè)試大相徑庭。本書(shū)從軟件測(cè)試的基本概念講起,循序漸進(jìn)地為讀者講解軟件生命周期各個(gè)測(cè)試階段應(yīng)該完成的任務(wù)和采用的方法。書(shū)中涉及的項(xiàng)目實(shí)例多為作者及所在團(tuán)隊(duì)參與的課題,具有很強(qiáng)的指導(dǎo)和借鑒意義。希望讀者能夠從這本書(shū)中獲取足夠的軟件測(cè)試知識(shí),成為合格的軟件測(cè)試工作者。 本書(shū)適合軟件測(cè)試的初學(xué)者與具有一定測(cè)試經(jīng)驗(yàn)的人員使用。
書(shū)籍目錄
第1篇 入門篇 第1章 軟件測(cè)試的基本概念 1 1.1 軟件測(cè)試的定義 1 1.1.1 軟件測(cè)試定義的發(fā)展 1 1.1.2 對(duì)軟件測(cè)試的正確認(rèn)識(shí) 2 1.1.3 軟件測(cè)試概念的深入理解 9 1.1.4 軟件測(cè)試定義的再討論 13 1.2 軟件測(cè)試的概念模型 14 1.2.1 測(cè)試目標(biāo) 14 1.2.2 測(cè)試對(duì)象 20 1.2.3 測(cè)試依據(jù) 21 1.2.4 缺陷定義 21 1.2.5 測(cè)試解決方案 24 1.2.6 測(cè)試結(jié)果 25 1.3 軟件測(cè)試的分類 25 1.3.1 測(cè)試目標(biāo)的實(shí)例化 25 1.3.2 測(cè)試對(duì)象的實(shí)例化 26 1.3.3 測(cè)試依據(jù)的實(shí)例化 26 1.3.4 測(cè)試方案的實(shí)例化 26 第2章 軟件測(cè)試的基本方法 28 2.1 審查技術(shù)概論 29 2.2 代碼審查技術(shù) 30 2.2.1 幾個(gè)基本概念 30 2.2.2 代碼審查的依據(jù) 31 2.2.3 代碼審查的要求 32 2.2.4 代碼審查的結(jié)果 33 2.2.5 代碼審查的文檔 36 2.2.6 代碼審查的策略 38 2.3 文檔審查技術(shù) 41 2.3.1 目的與內(nèi)容 41 2.3.2 文檔審查的流程 43 2.3.3 文檔審查的策略 44 2.4 自動(dòng)化靜態(tài)測(cè)試技術(shù) 47 2.4.1 基于模式(規(guī)則)的靜態(tài)代碼分析 47 2.4.2 程序的靜態(tài)結(jié)構(gòu)分析 49 2.4.3 代碼度量計(jì)算 51 2.4.4 自動(dòng)化靜態(tài)測(cè)試技術(shù)的使用策略 52 2.4.5 使用自動(dòng)化工具進(jìn)行靜態(tài)測(cè)試 53 2.5 白盒測(cè)試技術(shù) 54 2.5.1 邏輯覆蓋測(cè)試 54 2.5.2 基本路徑測(cè)試 57 2.5.3 循環(huán)結(jié)構(gòu)測(cè)試 59 2.5.4 程序插樁測(cè)試 60 2.5.5 白盒測(cè)試方法的綜合使用策略 60 2.6 黑盒測(cè)試技術(shù) 61 2.6.1 功能分解法 61 2.6.2 等價(jià)類劃分法 61 2.6.3 邊界值分析法 62 2.6.4 因果圖方法 62 2.6.5 隨機(jī)測(cè)試方法 66 2.6.6 猜錯(cuò)法 66 2.6.7 黑盒測(cè)試方法的綜合使用策略 66 第3章 軟件測(cè)試的框架表示 67 3.1 測(cè)試框架的概念 67 3.2 測(cè)試框架的表述 69 3.2.1 原則層 69 3.2.2 結(jié)構(gòu)層 70 3.2.3 細(xì)節(jié)層 70 3.3 測(cè)試框架的特征與優(yōu)勢(shì) 70 3.4 測(cè)試框架的質(zhì)量 71 3.5 基于測(cè)試框架的軟件測(cè)試 72 3.5.1 基于測(cè)試框架的軟件測(cè)試過(guò)程 72 3.5.2 測(cè)試框架的擴(kuò)展 73 3.5.3 測(cè)試框架的實(shí)例化 74 3.6 測(cè)試框架的設(shè)計(jì) 74 3.6.1 設(shè)計(jì)原則 74 3.6.2 測(cè)試框架的設(shè)計(jì)方法 75第2篇 提高篇 第4章 軟件測(cè)試過(guò)程 77 4.1 軟件的生命周期模型 77 4.1.1 瀑布模型 77 4.1.2 V模型 78 4.1.3 螺旋模型 79 4.1.4 統(tǒng)一的軟件開(kāi)發(fā)過(guò)程 80 4.2 軟件開(kāi)發(fā)與軟件測(cè)試 84 4.2.1 軟件測(cè)試的生存周期模型 84 4.2.2 軟件測(cè)試的分級(jí) 84 4.2.3 全生命周期測(cè)試的基本原則 85 4.3 軟件測(cè)試過(guò)程模型 86 4.3.1 測(cè)試策劃 86 4.3.2 測(cè)試設(shè)計(jì)與實(shí)現(xiàn) 90 4.3.3 測(cè)試執(zhí)行 93 4.3.4 測(cè)試總結(jié) 94 第5章 軟件單元測(cè)試及實(shí)踐 96 5.1 基本概念 96 5.2 單元測(cè)試的目標(biāo) 96 5.2.1 單元測(cè)試的要求 96 5.2.2 單元測(cè)試的內(nèi)容 96 5.3 單元測(cè)試的策略 98 5.3.1 靜態(tài)與動(dòng)態(tài)結(jié)合的測(cè)試 98 5.3.2 單元測(cè)試中的覆蓋率 98 5.3.3 單元測(cè)試的自動(dòng)化意義 100 5.3.4 單元測(cè)試與項(xiàng)目開(kāi)發(fā) 100 5.3.5 單元測(cè)試中的功能測(cè)試 101 5.3.6 嵌入式軟件單元測(cè)試 101 5.4 單元測(cè)試的過(guò)程 104 5.4.1 單元測(cè)試的計(jì)劃 104 5.4.2 單元測(cè)試的設(shè)計(jì) 106 5.4.3 單元測(cè)試的執(zhí)行 107 5.4.4 單元測(cè)試的結(jié)果分析 107 5.5 單元測(cè)試環(huán)境 108 5.5.1 單元測(cè)試自動(dòng)化 108 5.5.2 單元測(cè)試工具概論 109 5.6 單元測(cè)試的實(shí)踐 109 5.6.1 一段實(shí)例代碼 110 5.6.2 單元測(cè)試策劃 113 5.6.3 單元測(cè)試設(shè)計(jì) 115 5.6.4 單元測(cè)試報(bào)告 118 第6章 軟件集成測(cè)試及實(shí)踐 119 6.1 集成測(cè)試的要求與內(nèi)容 119 6.1.1 集成測(cè)試的要求 119 6.1.2 集成測(cè)試的內(nèi)容 119 6.2 集成測(cè)試的策略 121 6.2.1 基于分解的集成策略 121 6.2.2 分層式集成測(cè)試 123 6.2.3 集成的McCabe基本路徑 124 6.2.4 調(diào)用流的集成 125 6.3 集成測(cè)試的過(guò)程 127 6.3.1 集成測(cè)試的計(jì)劃 127 6.3.2 集成測(cè)試的設(shè)計(jì) 128 6.3.3 集成測(cè)試的執(zhí)行 130 6.3.4 集成測(cè)試的結(jié)果分析 130 6.4 集成測(cè)試的實(shí)踐 131 第7章 軟件系統(tǒng)測(cè)試及實(shí)踐 134 7.1 系統(tǒng)測(cè)試的基本概念 134 7.2 系統(tǒng)測(cè)試的要求 135 7.3 系統(tǒng)測(cè)試的策略 135 7.3.1 功能測(cè)試 135 7.3.2 性能測(cè)試 136 7.3.3 接口測(cè)試 136 7.3.4 人機(jī)交互界面測(cè)試 136 7.3.5 強(qiáng)度測(cè)試 137 7.3.6 安全性測(cè)試 138 7.3.7 余量測(cè)試 139 7.3.8 恢復(fù)性測(cè)試 139 7.3.9 安裝性測(cè)試 140 7.3.10 邊界測(cè)試 140 7.3.11 敏感性測(cè)試 140 7.3.12 互操作性測(cè)試 140 7.3.13 容量測(cè)試 141 7.3.14 數(shù)據(jù)處理測(cè)試 141 7.3.15 可靠性測(cè)試 141 7.4 系統(tǒng)測(cè)試的過(guò)程 141 7.4.1 系統(tǒng)測(cè)試的策劃 141 7.4.2 系統(tǒng)測(cè)試的設(shè)計(jì) 144 7.4.3 系統(tǒng)測(cè)試的執(zhí)行 145 7.5 系統(tǒng)測(cè)試環(huán)境 147 7.6 系統(tǒng)測(cè)試的實(shí)踐 148 7.6.1 一個(gè)需求實(shí)例的介紹 148 7.6.2 系統(tǒng)測(cè)試需求的分析 148 7.6.3 系統(tǒng)測(cè)試設(shè)計(jì) 149 第8章 軟件驗(yàn)收測(cè)試 152 8.1 驗(yàn)收測(cè)試的基本概念 152 8.2 驗(yàn)收測(cè)試的內(nèi)容 152 8.3 驗(yàn)收測(cè)試的策略 153 8.3.1 驗(yàn)收測(cè)試的類型 153 8.3.2 驗(yàn)收測(cè)試的進(jìn)入條件 153 8.3.3 網(wǎng)絡(luò)軟件的驗(yàn)收測(cè)試 153 8.3.4 軟件驗(yàn)收測(cè)試的充分性 154 8.3.5 驗(yàn)收測(cè)試的執(zhí)行 154 8.4 軟件驗(yàn)收的過(guò)程 154 8.4.1 軟件驗(yàn)收申請(qǐng) 154 8.4.2 制定軟件驗(yàn)收計(jì)劃 155 8.4.3 成立軟件驗(yàn)收組織 155 8.4.4 軟件驗(yàn)收測(cè)試和配置審核 156 8.4.5 軟件驗(yàn)收評(píng)審 157 8.4.6 軟件驗(yàn)收?qǐng)?bào)告 158 8.4.7 軟件產(chǎn)品交付 158 第9章 軟件測(cè)試管理 159 9.1 測(cè)試項(xiàng)目管理概述 159 9.1.1 測(cè)試項(xiàng)目概述 159 9.1.2 測(cè)試項(xiàng)目管理 160 9.1.3 測(cè)試項(xiàng)目管理的三維模型 162 9.2 軟件測(cè)試的全過(guò)程管理 163 9.2.1 測(cè)試計(jì)劃管理 163 9.2.2 測(cè)試設(shè)計(jì)與分析管理 170 9.2.3 測(cè)試執(zhí)行過(guò)程管理 173 9.2.4 測(cè)試結(jié)果的管理 173 9.3 軟件測(cè)試的全方位管理 174 9.3.1 軟件缺陷的管理 174 9.3.2 回歸測(cè)試的管理 176 9.3.3 測(cè)試文檔的管理 176 9.3.4 測(cè)試評(píng)審的管理 177 9.3.5 測(cè)試的配置管理 181 9.3.6 測(cè)試質(zhì)量的管理 182 9.4 測(cè)試人員的管理 184 9.4.1 測(cè)試人員的基本素質(zhì) 184 9.4.2 測(cè)試小組的管理 185 9.4.3 測(cè)試組織的管理 187第3篇 精通篇 第10章 軟件測(cè)試的抽象模型及數(shù)學(xué)描述 191 10.1 測(cè)試目標(biāo) 191 10.2 測(cè)試對(duì)象 191 10.2.1 基本概念 191 10.2.2 數(shù)學(xué)描述① 192 10.3 測(cè)試依據(jù) 194 10.3.1 基本概念 194 10.3.2 數(shù)學(xué)描述 195 10.4 缺陷定義 195 10.4.1 基本概念 195 10.4.2 數(shù)學(xué)描述 196 10.5 測(cè)試解決方案 197 10.5.1 基本概念 197 10.5.2 數(shù)學(xué)描述 198 10.6 測(cè)試結(jié)果 202 10.6.1 基本概念 202 10.6.2 數(shù)學(xué)描述 202 10.7 書(shū)中數(shù)學(xué)符號(hào)的說(shuō)明 203 第11章 基于需求的軟件測(cè)試 204 11.1 軟件測(cè)試過(guò)程概述 204 11.2 測(cè)試環(huán)境 205 11.3 基于需求的測(cè)試用例的選擇 205 11.3.1 正常范圍測(cè)試用例 205 11.3.2 健壯測(cè)試用例 205 11.4 基于需求的測(cè)試方法 206 11.4.1 基于需求的硬件/軟件綜合測(cè)試 206 11.4.2 基于需求的軟件綜合測(cè)試 206 11.4.3 基于需求的低級(jí)測(cè)試 207 11.5 測(cè)試覆蓋分析 207 11.5.1 基于需求的測(cè)試覆蓋分析 208 11.5.2 結(jié)構(gòu)覆蓋分析 208 11.5.3 結(jié)構(gòu)覆蓋分析方法 208 11.6 MC/DC覆蓋率 208 11.6.1 對(duì)C/DC和MC/DC的描述 208 11.6.2 C/DC和MC/DC之間的差異 209 第12章 嵌入式軟件的仿真測(cè)試框架 212 12.1 仿真測(cè)試框架的提出 212 12.1.1 嵌入式軟件的特點(diǎn) 212 12.1.2 嵌入式軟件的測(cè)試 213 12.1.3 解決方案的抽象 214 12.1.4 仿真測(cè)試框架 214 12.2 仿真測(cè)試框架的測(cè)試域原則 215 12.3 仿真測(cè)試框架的基本原理 215 12.3.1 仿真測(cè)試框架的基本原理 215 12.3.2 仿真測(cè)試原理 216 12.3.3 模型驅(qū)動(dòng)測(cè)試的原理 221 12.4 仿真測(cè)試框架的使用原則 226 12.5 測(cè)試框架體系結(jié)構(gòu)描述 226 12.6 仿真測(cè)試框架的體系結(jié)構(gòu) 227 12.6.1 測(cè)試組件視圖 227 12.6.2 測(cè)試過(guò)程視圖 228 12.6.3 測(cè)試組織管理視圖 230 12.6.4 測(cè)試工具視圖 231 12.6.5 測(cè)試文檔視圖 232 12.7 仿真測(cè)試框架的細(xì)節(jié)層 234 12.8 仿真測(cè)試框架的文檔體系 234 第13章 典型工程應(yīng)用 238 13.1 項(xiàng)目背景 238 13.2 仿真測(cè)試框架的實(shí)例化 238 13.3 基于仿真測(cè)試框架的測(cè)試 239 13.3.1 需求分析 239 13.3.2 測(cè)試設(shè)計(jì) 243 13.3.3 測(cè)試執(zhí)行 248 13.3.4 測(cè)試分析 248附錄A 軟件測(cè)試常用術(shù)語(yǔ) 250附錄B 系統(tǒng)測(cè)試需求規(guī)格說(shuō)明模板 270附錄C 系統(tǒng)測(cè)試計(jì)劃模板 273附錄D 系統(tǒng)測(cè)試說(shuō)明 279附錄E 系統(tǒng)測(cè)試報(bào)告模板 282參考文獻(xiàn) 287
章節(jié)摘錄
?。?)過(guò)平地開(kāi)始規(guī)則檢查會(huì)耽誤編碼的時(shí)間 很多軟件開(kāi)人員抱怨過(guò)早地開(kāi)始測(cè)試會(huì)占用他們寶貴的開(kāi)發(fā)時(shí)間,因此對(duì)于早期開(kāi)展靜態(tài)測(cè)試有很大的抵觸情緒。這是個(gè)思維上的誤區(qū)。有沒(méi)有想過(guò),如果本來(lái)能夠在早期通過(guò)規(guī)則檢查就發(fā)現(xiàn)的缺陷,一直帶到系統(tǒng)測(cè)試階段才通過(guò)故障現(xiàn)象被揭露,其修改過(guò)程會(huì)更加耽誤工程進(jìn)度?現(xiàn)在有些自動(dòng)化的測(cè)試工具,可以與版本控制軟件,如CVS或Sub.verSion無(wú)縫地集成,成為軟件開(kāi)發(fā)過(guò)程中有機(jī)的組成部分,不僅不會(huì)耽誤開(kāi)發(fā)時(shí)間,反而能提高軟件編制效率,因?yàn)闇p少了返工修改錯(cuò)誤的時(shí)間?! ”M早開(kāi)始測(cè)試,會(huì)帶來(lái)另一個(gè)負(fù)面的問(wèn)題,那就是代碼是否在編寫完成之后就立刻開(kāi)始測(cè)試。這一點(diǎn),從工程經(jīng)驗(yàn)上看,我們的建議是,代碼需通過(guò)編譯后再開(kāi)始規(guī)則檢查。一來(lái)可以避免由規(guī)則檢查來(lái)完成本應(yīng)該由編譯器完成的語(yǔ)法檢查工作,二來(lái)編譯的結(jié)果有助于規(guī)則檢查之后的其他靜態(tài)分析和測(cè)試過(guò)程?! 。?)編碼規(guī)則妨礙了編程人員的靈感 軟件工程師與藝術(shù)家有相同之處,都是在創(chuàng)作一件作品。只不過(guò)藝術(shù)家創(chuàng)造出來(lái)的是有形的藝術(shù)品,而軟件工程師創(chuàng)造出來(lái)的是無(wú)形的軟件。編寫軟件是一件創(chuàng)作型工作,其中就難免帶有編程人員的個(gè)人風(fēng)格。這就好像每個(gè)人的書(shū)法都有自己個(gè)性,但是,如果要寫一本讓大家都能讀懂的作品,我們還是喜歡使用印刷體,惟其正規(guī)易懂。如果每個(gè)編程人員都使用自己的風(fēng)格編寫代碼,最終的軟件產(chǎn)品將難以保證統(tǒng)一的質(zhì)量,更不用說(shuō)可維護(hù)性了?! ?yán)格遵守編碼規(guī)范可能會(huì)在某種程度上妨礙編程人員設(shè)計(jì)華麗精巧的代碼,卻能夠大大提高最終軟件產(chǎn)品的可維護(hù)性和可讀性?! 。?)靜態(tài)規(guī)則檢查只要做一次就夠了 靜態(tài)分析中的另一個(gè)誤區(qū)是,有“一勞永逸”的辦法,即掃描整個(gè)代碼庫(kù)一次,然后在諸如定型等重要節(jié)點(diǎn)前解決所有靜態(tài)代碼分析報(bào)告的問(wèn)題。在實(shí)際項(xiàng)目中,有很多時(shí)候都是這樣做的,但是這樣靜態(tài)分析結(jié)果經(jīng)常令人沮喪。原因在于以下兩方面. 發(fā)現(xiàn)的缺陷太多(兩萬(wàn)行代碼發(fā)現(xiàn)一萬(wàn)個(gè)缺陷)。由于隱含缺陷太多,時(shí)間又不允許詳盡地排查,以至于只好睜一只眼閉一只眼,結(jié)果就是任何缺陷都不能被解決?! §o態(tài)分析發(fā)現(xiàn)了嚴(yán)重的錯(cuò)誤隱患,是否修改代碼成了難題。修改代碼就意味著已經(jīng)完成的集成測(cè)試或系統(tǒng)測(cè)試必須重做,而不修改代碼在情理上說(shuō)不通?! ≌畿浖y(cè)試應(yīng)該是伴隨軟件生命周期的工作一樣,靜態(tài)分析也應(yīng)該是伴隨軟件生命周期的測(cè)試策略。這里還要強(qiáng)調(diào)一下:靜態(tài)分析是一種測(cè)試策略而不是測(cè)試階段。一定要避免“先做靜態(tài)分析再做單元測(cè)試”的思維?! ∪绻谙到y(tǒng)交付的最后階段,出于應(yīng)付差事而進(jìn)行規(guī)則檢查。只能讓開(kāi)發(fā)過(guò)程愈發(fā)混亂,修改代碼難度加大。
編輯推薦
《軟件測(cè)試從入門到精通》循序漸進(jìn)地為讀者講解軟件生命周期各個(gè)測(cè)試階段應(yīng)該完成的任務(wù)和使用的方法,使讀者對(duì)軟件測(cè)試有一個(gè)全面認(rèn)識(shí),了解各類軟件測(cè)試的執(zhí)行過(guò)程與方法,軟件測(cè)試的自動(dòng)化工具使用,并能夠解決具體問(wèn)題。
圖書(shū)封面
圖書(shū)標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版