本書比較全面地介紹了軟件測試方法,首先介紹了測試技術(shù)的發(fā)展歷史和現(xiàn)狀;然后,作為測試的基礎(chǔ),介紹了白盒測試、黑盒測試及測試覆蓋率等幾個(gè)重要概念,并充分分析了業(yè)界在這幾個(gè)概念方面的研究成果;之后從全流程測試的角度詳細(xì)介紹了面向?qū)ο蟮臏y試技術(shù)。
信息技術(shù)業(yè)已成為國家經(jīng)濟(jì)發(fā)展的支柱產(chǎn)業(yè)之一,作為其重要組成部分的軟件產(chǎn)業(yè)取得了長足的發(fā)展,并且越來越廣泛地應(yīng)用于國民經(jīng)濟(jì)和國防建設(shè)的各個(gè)領(lǐng)域。然而,在實(shí)際應(yīng)用中,由于計(jì)算機(jī)軟件缺陷而造成計(jì)算機(jī)系統(tǒng)故障并導(dǎo)致嚴(yán)重后果的事例屢見不鮮。因此,如何保證軟件產(chǎn)品的質(zhì)量就成了必須解決的一個(gè)問題,而對(duì)軟件進(jìn)行有效的測試就是解決軟件質(zhì)量問題的方法之一。
軟件測試是軟件質(zhì)量保證的關(guān)鍵步驟。軟件測試研究的結(jié)果表明:軟件中存在的問題發(fā)現(xiàn)越早,其軟件開發(fā)費(fèi)用就越低;在編碼后修改軟件缺陷的成本是編碼前的10倍,在產(chǎn)品交付后修改軟件缺陷的成本是交付前的10倍;軟件質(zhì)量越高,軟件發(fā)布后的維護(hù)費(fèi)用越低。另據(jù)對(duì)國際著名IT企業(yè)的統(tǒng)計(jì),它們的軟件測試費(fèi)用占整個(gè)軟件工程所有研發(fā)費(fèi)用的50%.以上。
中國軟件企業(yè)在軟件測試方面與國際水準(zhǔn)相比仍存在較大差距。首先,在認(rèn)識(shí)上重開發(fā)、輕測試,忽略了如何通過流程改進(jìn)和軟件測試來保證產(chǎn)品或系統(tǒng)的質(zhì)量,也沒有認(rèn)識(shí)到軟件項(xiàng)目的如期完成不僅取決于系統(tǒng)設(shè)計(jì)水平和代碼實(shí)現(xiàn)能力,而且還取決于設(shè)計(jì)、代碼、文檔等各方面的質(zhì)量。其次,在管理上隨意、簡單,沒有建立規(guī)范、有效的軟件測試管理體系。另外,缺少自動(dòng)化工具的支持,大多數(shù)企業(yè)在軟件測試時(shí)并沒有采用軟件測試管理系統(tǒng)。所以對(duì)軟件企業(yè)來說,不僅要提高對(duì)軟件測試的認(rèn)識(shí),同時(shí)要建立獨(dú)立的軟件測試組織,采用先進(jìn)的測試技術(shù),充分運(yùn)用測試工具,不斷改善軟件開發(fā)流程,建立完善的軟件質(zhì)量保障的管理體系。只有這樣,才有可能達(dá)到軟件開發(fā)的預(yù)期目標(biāo),降低軟件開發(fā)的成本和風(fēng)險(xiǎn),提高軟件開發(fā)的效率和生產(chǎn)力,確保及時(shí)地發(fā)布高質(zhì)量的軟件產(chǎn)品。
我們將多年來所積累的軟件測試經(jīng)驗(yàn)與技術(shù)實(shí)踐整理成書,與大家分享,希望成為軟件測試的實(shí)際應(yīng)用參考書。同時(shí),也將作者在大學(xué)軟件學(xué)院的軟件測試專業(yè)課、在全國性軟件測試和質(zhì)量保證高級(jí)培訓(xùn)班及其他培訓(xùn)班等的授課經(jīng)驗(yàn)與體會(huì),融入本書之中。
本書參考教學(xué)時(shí)數(shù)為40~50學(xué)時(shí),全書共分為7章:第1章討論了軟件測試的一些基本概念;第2章介紹了軟件開發(fā)過程及特征;第3章介紹了軟件測試的基礎(chǔ)知識(shí);第4章詳細(xì)描述了面向?qū)ο鬁y試技術(shù);第5章討論了目前較為流行的Web系統(tǒng)測試技術(shù);第6章介紹軟件測試的組織與管理;第7章通過一個(gè)實(shí)例,給出了完整的與軟件測試相關(guān)的文檔。本書最后附有軟件測試術(shù)語。第1章和第3章由撫順職業(yè)技術(shù)學(xué)院的王愛平老師編寫,第2章和附錄A由撫順職業(yè)技術(shù)學(xué)院的劉鳳玲老師編寫,第4章和第5章由青島職業(yè)技術(shù)學(xué)院的徐占鵬老師編寫,第6章和第7章由沈陽師范大學(xué)職業(yè)技術(shù)學(xué)院的李天輝老師編寫。撫順職業(yè)技術(shù)學(xué)院的張海偉老師參與了本書的編寫及校對(duì)工作。
本書在編寫過程中,參閱了很多國內(nèi)外同行的著作和文章,汲取了該領(lǐng)域最新的研究成果。在此,對(duì)這些成果的作者表示深深的感謝!
由于水平和時(shí)間的限制,書中不可避免地會(huì)出現(xiàn)一些錯(cuò)誤,請廣大讀者不吝賜教。
第1章 軟件測試概述
1.1 軟件錯(cuò)誤與缺陷
1.1.1 著名的軟件錯(cuò)誤案例
1.1.2 軟件缺陷是什么
1.2 什么是軟件測試
1.2.1 軟件測試定義
1.2.2 軟件測試的特性
1.2.3 測試的目標(biāo)
1.2.4 軟件測試的原則
1.3 軟件質(zhì)量保證
1.3.1 軟件質(zhì)量的定義
1.3.2 軟件質(zhì)量特性
1.3.3 軟件質(zhì)量管理
1.3.4 軟件測試管理
1.4 軟件測試過程
1.4.1 測試計(jì)劃
1.4.2 單元測試
1.4.3 集成測試
1.4.4 系統(tǒng)測試
1.4.5 驗(yàn)收測試
1.4.6 測試總結(jié)與報(bào)告
習(xí)題
第2章 軟件開發(fā)過程
2.1 軟件及其特征
2.1.1 軟件定義
2.1.2 軟件的特征
2.2 軟件生命周期
2.3 軟件開發(fā)模型
2.3.1 瀑布模型
2.3.2 快速原型模型
2.3.3 螺旋模型
2.3.4 V模型
2.3.5 噴泉模型
2.3.6 各種模型的比較
習(xí)題
第3章 測試技術(shù)基礎(chǔ)
3.1 代碼檢查
3.1.1 代碼會(huì)審
3.1.2 走查
3.2 黑盒測試
3.2.1 等價(jià)類劃分
3.2.2 邊界值分析
3.2.3 錯(cuò)誤推測法
3.2.4 因果圖法
3.2.5 判定表分析法
3.3 白盒測試
3.3.1 邏輯覆蓋測試
3.3.2 基本路徑測試
3.4 測試用例設(shè)計(jì)
3.4.1 測試用例的概念
3.4.2 設(shè)計(jì)測試用例
3.4.3 測試用例的評(píng)審
習(xí)題
第4章 面向?qū)ο鬁y試技術(shù)
4.1 面向?qū)ο鬁y試概述
4.1.1 傳統(tǒng)開發(fā)方法存在的問題
4.1.2 面向?qū)ο蠹夹g(shù)
4.1.3 什么是面向?qū)ο鬁y試
4.1.4 面向?qū)ο鬁y試模型
4.2 面向?qū)ο蠓治龅臏y試
4.2.1 對(duì)類和對(duì)象范圍的測試
4.2.2 對(duì)結(jié)構(gòu)范圍的測試
4.2.3 對(duì)主題范圍的測試
4.2.4 對(duì)定義的屬性和實(shí)例關(guān)聯(lián)的測試
4.2.5 對(duì)定義的服務(wù)和消息關(guān)聯(lián)的測試
4.3 面向?qū)ο笤O(shè)計(jì)的測試
4.3.1 確定測試的問題域
4.3.2 人機(jī)交互部件設(shè)計(jì)的測試
4.3.3 對(duì)任務(wù)管理部件設(shè)計(jì)的測試
4.3.4 對(duì)數(shù)據(jù)管理部件設(shè)計(jì)的測試
4.4 面向?qū)ο缶幊痰臏y試
4.4.1 數(shù)據(jù)成員是否滿足數(shù)據(jù)封裝的要求
4.4.2 類是否實(shí)現(xiàn)了要求的功能
4.5 面向?qū)ο蟮膯卧獪y試
4.5.1 單元測試的內(nèi)容
4.5.2 單元測試開始時(shí)間
4.5.3 單元測試的人員
4.5.4 單元測試的方法
4.5.5 方法的測試
4.5.6 構(gòu)建類測試用例
4.5.7 測試程度
4.6 面向?qū)ο蟮募蓽y試
4.7 面向?qū)ο蟮南到y(tǒng)測試
4.8 面向?qū)ο蟮钠渌麥y試
4.8.1 基于故障的測試
4.8.2 基于腳本的測試
4.8.3 面向?qū)ο箢惖碾S機(jī)測試
4.8.4 類層次的分割測試
習(xí)題
第5章 Web系統(tǒng)測試技術(shù)
5.1 Web測試概述
5.1.1 Web的特點(diǎn)
5.1.2 基于Web的測試
5.2 Web可用性測試
5.2.1 鏈接測試
5.2.2 站點(diǎn)地圖/導(dǎo)航測試
5.2.3 圖形測試
5.2.4 表單測試
5.2.5 內(nèi)容測試
5.2.6 整體界面測試
5.2.7 Cookies測試
5.2.8 應(yīng)用程序特定的功能測試
5.3 性能測試
5.3.1 性能測試常用術(shù)語
5.3.2 Web性能測試的目標(biāo)和種類
5.3.3 性能測試步驟
5.4 負(fù)載測試
5.4.1 負(fù)載測試概述
5.4.2 負(fù)載測試的步驟
5.5 壓力測試
5.5.1 壓力測試概述
5.5.2 壓力測試的步驟
5.6 兼容性測試
5.6.1 兼容性測試概述
5.6.2 常用術(shù)語
5.6.3 標(biāo)準(zhǔn)和規(guī)范
5.6.4 數(shù)據(jù)共享兼容性
5.6.5 兼容性測試的過程
5.7 安全測試
5.7.1 Web應(yīng)用系統(tǒng)的安全性測試區(qū)域
5.7.2 常見的web應(yīng)用安全漏洞
5.7.3 安全測試過程
5.7.4 安全測試應(yīng)注意的問題
5.8 手機(jī)軟件測試簡介
5.8.1 手機(jī)軟件的特點(diǎn)
5.8.2 手機(jī)軟件測試的流程及內(nèi)容
5.8.3 手機(jī)軟件測試用例的設(shè)計(jì)
習(xí)題
第6章 軟件測試的組織與管理
6.1 軟件測試計(jì)劃
6.1.1 確定測試需求
6.1.2 評(píng)估風(fēng)險(xiǎn)和確定測試優(yōu)先級(jí)
6.1.3 測試策略
6.1.4 確定測試資源
6.1.5 制訂時(shí)間表
6.1.6 制訂測試計(jì)劃
6.1.7 審核測試計(jì)劃
6.2 軟件測試的組織和管理
6.2.1 測試的過程及組織
6.2.2 測試人員的組織
6.2.3 軟件測試文件的組織
6.3 軟件測試的設(shè)計(jì)
6.3.1 測試設(shè)計(jì)的原則
6.3.2 工作量分析
6.3.3 確定并制訂測試用例
6.3.4 確立并結(jié)構(gòu)化測試過程
6.3.5 復(fù)審并評(píng)估測試覆蓋
6.4 軟件測試的執(zhí)行
6.4.1 執(zhí)行測試過程
6.4.2 測試執(zhí)行策略
6.5 軟件測試的總結(jié)與報(bào)告
習(xí)題
第7章 軟件測試實(shí)例
7.1 項(xiàng)目背景
7.2 測試計(jì)劃的制訂
7.2.1 項(xiàng)目簡介
7.2.2 測試參考文檔和測試提交文檔
7.2.3 系統(tǒng)風(fēng)險(xiǎn)、優(yōu)先級(jí)
7.2.4 測試內(nèi)容與策略
7.2.5 測試資源
7.2.6 測試時(shí)間表
7.2.7 測試問題卡制定
7.2.8 附錄:項(xiàng)目任務(wù)
7.3 測試執(zhí)行
7.3.1 設(shè)置測試環(huán)境
7.3.2 按照測試用例執(zhí)行測試任務(wù)
7.3.3 評(píng)估測試的執(zhí)行
7.3.4 核實(shí)測試結(jié)果
7.3.5 測試執(zhí)行的策略
7.4 測試總結(jié)與報(bào)告
7.4.1 測試總結(jié)報(bào)告
7.4.2 附錄
附錄A 軟件測試術(shù)語
參考文獻(xiàn)