本書詳盡地闡述了軟件測(cè)試領(lǐng)域中的一些基本理論和實(shí)用技術(shù)。首先從學(xué)生需要理解并掌握的軟件測(cè)試基本概念和基本知識(shí)入手,使學(xué)生弄清楚為什么要進(jìn)行軟件測(cè)試,什么是軟件測(cè)試?如何運(yùn)用數(shù)學(xué)工具進(jìn)行測(cè)試的描述和分析;在此基礎(chǔ)上,結(jié)合經(jīng)典案例討論如何進(jìn)行黑盒和白盒測(cè)試;然后依托實(shí)際案例深入討論如何進(jìn)行單元測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試,以及具體的測(cè)試實(shí)施過程。最后,討論了如何選擇和使用各種自動(dòng)化測(cè)試工具提高測(cè)試效率,以及如何進(jìn)行軟件缺陷的管理。
本書作為軟件測(cè)試的實(shí)際應(yīng)用參考書,除了力求突出基本知識(shí)和基本概念的表述外,更注重軟件測(cè)試技術(shù)的運(yùn)用,在介紹諸多知識(shí)點(diǎn)的過程當(dāng)中結(jié)合直觀形象的圖表或?qū)嶋H案例進(jìn)行深入淺出的分析,從而使讀者可以更好地理解掌握軟件測(cè)試?yán)碚撝R(shí),并迅速地運(yùn)用到實(shí)際測(cè)試工作中去。
本書適合作為各層次高等院校計(jì)算機(jī)及相關(guān)專業(yè)的教學(xué)用書,也可作為軟件測(cè)試人員的參考書。
隨著信息技術(shù)的普及,各種各樣的軟件已經(jīng)應(yīng)用到很多領(lǐng)域,設(shè)計(jì)的復(fù)雜程度逐漸增加,開發(fā)周期不斷縮短。而用戶對(duì)軟件要求卻越來越高,不再僅僅關(guān)注軟件產(chǎn)品功能的先進(jìn)性,并且十分重視對(duì)產(chǎn)品質(zhì)量的穩(wěn)定性和可靠性的考察,這使得軟件開發(fā)人員和軟件測(cè)試人員面臨著前所未有的挑戰(zhàn)。因此,如何保證軟件質(zhì)量將成為軟件工程領(lǐng)域深入研究的課題。
毋庸置疑,優(yōu)化軟件開發(fā)過程和提高軟件測(cè)試人員的技術(shù)水平,是保證軟件質(zhì)量的最佳途徑,這種觀念正在被更多的軟件行業(yè)人士理解、接受和實(shí)施。但軟件測(cè)試在國內(nèi)仍處于起步階段,各種軟件測(cè)試的方法、技術(shù)和標(biāo)準(zhǔn)都還在探索階段?梢哉J(rèn)為,當(dāng)今中國的軟件測(cè)試行業(yè)處于“春秋戰(zhàn)國”時(shí)期,百家爭(zhēng)鳴。一方面,這給行業(yè)的創(chuàng)新和發(fā)展提供了營養(yǎng)豐富的土壤;另一方面在測(cè)試行業(yè)一派“欣欣向榮”的氣象背后,也隱藏著深深的危機(jī)。軟件質(zhì)量和測(cè)試觀點(diǎn)“良莠不齊”、 “泥石俱下”。
在這種情況下,很多高校為了培養(yǎng)更多軟件行業(yè)急需的軟件測(cè)試人才,都已開設(shè)了軟件測(cè)試課程,為了適應(yīng)當(dāng)前教學(xué)的需要,編者在軟件測(cè)試課程實(shí)踐的基礎(chǔ)上,結(jié)合教學(xué)和科研成果,以及當(dāng)前軟件測(cè)試技術(shù)的最新發(fā)展動(dòng)態(tài)編寫了本書。
本書作為軟件測(cè)試的實(shí)際應(yīng)用參考書,除了力求突出基本知識(shí)和基本概念的表述外,更加注重軟件測(cè)試技術(shù)的運(yùn)用,在介紹很多知識(shí)點(diǎn)的過程中都結(jié)合直觀形象的圖表或?qū)嶋H案例進(jìn)行了深入淺出的分析,從而使讀者可以更好地理解和掌握軟件測(cè)試技術(shù)理論知識(shí),并迅速地運(yùn)用到實(shí)際測(cè)試工作中去。
本書參考教學(xué)時(shí)數(shù)為32~40學(xué)時(shí)。全書包括9章: 第1章討論了軟件測(cè)試的發(fā)展歷史、軟件測(cè)試的定義和基本原則;第2章介紹了軟件測(cè)試過程中需要掌握的離散數(shù)學(xué)和圖論基礎(chǔ)知識(shí);第3、4章結(jié)合經(jīng)典案例討論了白盒和黑盒測(cè)試技術(shù),第5~7章討論了單元測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試相關(guān)的知識(shí),并且以實(shí)際軟件系統(tǒng)的測(cè)試為例討論了具體的實(shí)施過程;第8章介紹了軟件測(cè)試自動(dòng)化,討論了自動(dòng)化測(cè)試的時(shí)機(jī),自動(dòng)化測(cè)試成本的衡量,自動(dòng)化測(cè)試工具的選擇和使用;第9章介紹了關(guān)于軟件bug及其管理方面的知識(shí),討論了軟件bug的分類、提交和管理。為了讀者的方便,本書在出版社網(wǎng)站提供了測(cè)試案例使用的源代碼、配置說明等相關(guān)資源。需要的讀者可到清華大學(xué)出版社網(wǎng)站(www.tup.com.cn)下載。
本書在編寫過程中,參閱了很多國內(nèi)外同行的著作或文章,汲取了該領(lǐng)域最新的研究成果。在此,對(duì)這些成果的作者表示深深的感謝!
由于編者水平有限,書中難免存在一些錯(cuò)誤和不妥之處,希望有關(guān)專家、同行和廣大讀者批評(píng)指正。
編著者2015年1月
第1章 概述
1.1 軟件測(cè)試的發(fā)展歷程及現(xiàn)狀
1.1.1 軟件測(cè)試的發(fā)展歷程
1.1.2 我國軟件測(cè)試的現(xiàn)狀
1.2 什么是軟件測(cè)試
1.2.1 軟件測(cè)試的定義
1.2.2 軟件測(cè)試生命周期
1.2.3 軟件開發(fā)與測(cè)試模型
1.2.4 與軟件測(cè)試相關(guān)的術(shù)語
1.3 軟件測(cè)試技術(shù)分類
1.4 軟件測(cè)試的目的
1.5 軟件測(cè)試的原則
1.5.1 盡早地和不斷地進(jìn)行軟件測(cè)試
1.5.2 不可能完全的測(cè)試
1.5.3 增量測(cè)試,由小到大
1.5.4 避免測(cè)試自己的程序
1.5.5 設(shè)計(jì)周密的測(cè)試用例
1.5.6 注意錯(cuò)誤集中的現(xiàn)象
1.5.7 確認(rèn)bug的有效性
1.5.8 合理安排測(cè)試計(jì)劃
1.5.9 回歸測(cè)試
1.5.10 測(cè)試結(jié)果的統(tǒng)計(jì)和分析
1.5.11 及時(shí)更新測(cè)試
1.6 軟件測(cè)試工作流程
1.7 軟件測(cè)試中的誤區(qū)
1.8 一個(gè)貫穿全文的例子――在線測(cè)評(píng)平臺(tái)
1.8.1 系統(tǒng)概述
1.8.2 系統(tǒng)需求
1.8.3 系統(tǒng)分析
1.8.4 系統(tǒng)設(shè)計(jì)
1.8.5 系統(tǒng)實(shí)施
1.8.6 系統(tǒng)運(yùn)行環(huán)境及配置
1.8.7 系統(tǒng)使用說明
本章小結(jié)
習(xí)題
第2章 離散數(shù)學(xué)和圖論基礎(chǔ)
2.1 集合論
2.2 函數(shù)
2.3 關(guān)系
2.4 命題邏輯
2.5 概率論
2.6 用于測(cè)試的圖
2.6.1 圖
2.6.2 程序圖
2.6.3 有限狀態(tài)機(jī)
2.6.4 狀態(tài)圖
本章小結(jié)
習(xí)題
第3章 白盒測(cè)試
3.1 白盒測(cè)試概述
3.1.1 白盒測(cè)試與調(diào)試的異同
3.1.2 白盒測(cè)試的分類
3.2 白盒測(cè)試用例設(shè)計(jì)技術(shù)
3.2.1 邏輯覆蓋測(cè)試
3.2.2 邊界值分析
3.2.3 基本路徑測(cè)試
3.2.4 循環(huán)語句測(cè)試
3.2.5 程序插裝
3.2.6 其他白盒測(cè)試方法
本章小結(jié)
習(xí)題
第4章 黑盒測(cè)試
4.1 黑盒測(cè)試概述
4.1.1 黑盒測(cè)試和白盒測(cè)試的異同
4.1.2 黑盒測(cè)試的原則和策略
4.2 黑盒測(cè)試用例設(shè)計(jì)技術(shù)
4.2.1 等價(jià)類劃分法
4.2.2 邊界值分析法
4.2.3 因果圖法
4.2.4 決策表法
4.2.5 錯(cuò)誤推測(cè)法
本章小結(jié)
習(xí)題
第5章 單元測(cè)試
5.1 單元測(cè)試概述
5.1.1 單元測(cè)試誤區(qū)
5.1.2 單元測(cè)試與集成測(cè)試區(qū)別
5.1.3 單元測(cè)試與系統(tǒng)測(cè)試區(qū)別
5.2 單元測(cè)試環(huán)境
5.3 單元測(cè)試策略
5.3.1 自頂向下的單元測(cè)試策略
5.3.2 自底向上的單元測(cè)試
5.3.3 孤立測(cè)試
5.4 單元測(cè)試主要任務(wù)
5.5 單元測(cè)試步驟
5.6 單元測(cè)試用例設(shè)計(jì)
5.7 單元測(cè)試案例
5.8 單元測(cè)試經(jīng)驗(yàn)總結(jié)
本章小結(jié)
習(xí)題
第6章 集成測(cè)試
6.1 集成測(cè)試概述
6.1.1 集成測(cè)試與系統(tǒng)測(cè)試的區(qū)別
6.1.2 集成測(cè)試與開發(fā)的關(guān)系
6.1.3 集成測(cè)試的重點(diǎn)
6.1.4 集成測(cè)試的層次
6.2 如何進(jìn)行集成測(cè)試
6.2.1 集成測(cè)試分析
6.2.2 集成測(cè)試策略
6.2.3 集成測(cè)試環(huán)境
6.2.4 集成測(cè)試用例設(shè)計(jì)
6.2.5 集成測(cè)試過程
6.2.6 集成測(cè)試舉例
6.3 集成測(cè)試經(jīng)驗(yàn)總結(jié)
本章小結(jié)
習(xí)題
第7章 系統(tǒng)測(cè)試
7.1 系統(tǒng)測(cè)試概述
7.1.1 什么是系統(tǒng)測(cè)試
7.1.2 系統(tǒng)測(cè)試的組織和分工
7.2 如何進(jìn)行系統(tǒng)測(cè)試
7.2.1 系統(tǒng)測(cè)試分析
7.2.2 系統(tǒng)測(cè)試環(huán)境
7.2.3 系統(tǒng)測(cè)試類型
7.2.4 系統(tǒng)測(cè)試用例設(shè)計(jì)
7.2.5 系統(tǒng)測(cè)試執(zhí)行
7.2.6 系統(tǒng)測(cè)試案例研究
7.3 系統(tǒng)測(cè)試經(jīng)驗(yàn)總結(jié)
本章小結(jié)
習(xí)題
第8章 軟件測(cè)試自動(dòng)化
8.1 進(jìn)行自動(dòng)化測(cè)試的適當(dāng)時(shí)機(jī)
8.1.1 概述
8.1.2 自動(dòng)化測(cè)試的成本
8.1.3 自動(dòng)化測(cè)試的生命周期
8.1.4 自動(dòng)化測(cè)試的價(jià)值
8.1.5 例子
8.1.6 另外一些需要考慮的問題
8.2 自動(dòng)化測(cè)試和手工測(cè)試
8.2.1 自動(dòng)化測(cè)試與手工測(cè)試的比較
8.2.2 短測(cè)試周期中手工測(cè)試面臨的挑戰(zhàn)
8.2.3 手工測(cè)試的問題
8.2.4 自動(dòng)化測(cè)試的問題
8.2.5 自動(dòng)化測(cè)試的優(yōu)點(diǎn)
8.2.6 自動(dòng)化測(cè)試的缺點(diǎn)
8.3 自動(dòng)化測(cè)試工具的選擇和使用
8.3.1 應(yīng)用自動(dòng)化測(cè)試工具的目的
8.3.2 自動(dòng)化測(cè)試工具的概要介紹
8.3.3 自動(dòng)化測(cè)試工具的選擇
8.3.4 自動(dòng)化測(cè)試工具在測(cè)試過程中的應(yīng)用
8.4 自動(dòng)化測(cè)試工具
8.4.1
8.4.2 C+
8.4.3 Load
8.4.4 IBM Rational Functional
經(jīng)驗(yàn)總結(jié)
本章小結(jié)
習(xí)題
第9章 軟件bug和管理
9.1 軟件bug概述
9.1.1 bug的影響
9.1.2 bug的產(chǎn)生
9.2 bug的種類
9.2.1 需求階段的
9.2.2 分析設(shè)計(jì)階段的
9.2.3 實(shí)現(xiàn)階段的
9.2.4 配置階段的
9.2.5 短視將來的
9.2.6 靜態(tài)文檔的
9.3 bug報(bào)告單的提交和管理
9.3.1 bug報(bào)告單的內(nèi)容
9.3.2 bug報(bào)告的特點(diǎn)
9.3.3 重現(xiàn)bug的分析和方法
9.3.4 bug管理流程
本章小結(jié)
習(xí)題
附錄A 軟件測(cè)試常用術(shù)語表
附錄B 軟件常見錯(cuò)誤
B1 用戶界面錯(cuò)誤
B1.1 功能性
B1.2 通信
B1.3 命令結(jié)構(gòu)和錄入
B1.4 遺漏的命令
B1.5 程序僵化
B1.6 性能
B1.7 輸出
B2 錯(cuò)誤處理
B3 邊界相關(guān)錯(cuò)誤
B4 計(jì)算錯(cuò)誤
B5 初始狀態(tài)和以后狀態(tài)
B6 控制流錯(cuò)誤
B6.1 程序失去控制
B6.2 程序停止
B6.3 循環(huán)
B6.4 IF、THEN、ELSE或者其他情況
B6.5 多種情況
B7 處理或解釋數(shù)據(jù)的錯(cuò)誤
B7.1 在例程之間傳遞數(shù)據(jù)時(shí)的問題
B7.2 數(shù)據(jù)邊界
B7.3 超過消息緩沖區(qū)的極限讀取數(shù)據(jù)
B7.4 消息問題
B7.5 數(shù)據(jù)存儲(chǔ)損壞
B8 競(jìng)爭(zhēng)條件
B9 負(fù)荷情況
B10 硬件
B11 來源、版本和ID控制
B12 測(cè)試錯(cuò)誤
參考文獻(xiàn)