內容簡介
《軟體測試大學教程》全書共16章,分為3部分:第1部分(第1~6章)是軟體測試基礎,涉及軟體測試的一些基本概念和基礎知識,如軟體與軟體危機、軟體缺陷與缺陷管理、軟體測試基本概念、生命周期軟體測試方法、軟體測試過程和基於軟體配置項的測試種類;第2部分(第7~12章)是《軟體測試大學教程》的重點,講述軟體測試方法,包括軟體靜態測試、動態測試、軟體測試自動化、軟體可靠性測試、軟體本地化測試以及面向對象軟體測試;第3部分(第13~16章)是典型套用的軟體測試,重點介紹C/S套用軟體測試、B/S架構的Web套用軟體測試(包括信息系統的測試)、遊戲軟體測試以及嵌入式軟體測試。
編輯推薦
《軟體測試大學教程》本書幾乎在各個章節對支撐該章節軟體測試方法和技術套用的測試工具進行了詳細介紹,特別是對開源軟體測試工具進行了較全面的介紹,這些工具對於很好地支持高校軟體測試課程實踐教學是非常有現實意義的。《軟體測試大學教程》取材新穎、內容翔實、通俗易懂、技術實用、覆蓋面廣、指導性強,既可作為軟體測試相關課程的研究生與高年級本科生的教材,同時也可作為軟體測試培訓和軟體測試人員的自學書籍。
作者簡介
蔡建平,教授,北京工業大學軟體學院院長助理、軟體與網路工程系主任。在原總裝備部某研究所工作十餘年,一直從事該所負責的全軍軍用共性軟體系統項目的論證和研究,並在其中發揮重要作用,得到有關領導和專家的認可和好評。獲軍隊科技進步一等獎、二等獎、三等獎多項;發表各類學術論文30多篇,與他人合作著書一部。
在北京奧吉通科技有限公司任技術總監期間,除負責國防有關單位的軟體工程、軟體質量保證、軟體測試以及嵌入式開發的技術諮詢、提供解決方案和技術支撐外,還主持開發了科銳時系列軟體測試工具,並成功用於國防軟體的測試。
2005年9月在北京工業大學軟體學院任職教授以來,除了多年講授軟體測試課程和多次對外開展嵌入式軟體測試技術培訓外,在學院的學科建設、專業建設,如實驗室建設、實踐教學改革與創新、數字藝術方向和數字媒體技術專業建設、“21l工程”建設、教育部和北京市特色專業建設,以及科研基地——科技創新平台建設等方面做了大量的工作,取得了突破性成果。
圖書目錄
第Ⅰ部分 軟體測試基礎
第1章 軟體與軟體危機
1.1 軟體概念
1.2 軟體特性
1.3 軟體種類
1.4 軟體危機及其原因
1.5 軟體工程
1.6 軟體生命周期
1.6.1 什麼是軟體生命周期
1.6.2 軟體生命周期的階段劃分
1.6.3 軟體生命周期模型
習題和思考題
第2章 軟體缺陷與缺陷管理
2.1 缺陷定義與分類
2.1.1 軟體缺陷
2.1.2 軟體缺陷的描述和分類
2.2 缺陷管理流程
2.3 缺陷度量和缺陷報告
2.3.1 缺陷度量
2.3.2 缺陷報告
2.4 缺陷管理工具
2.4.1 BugRat(開源)
2.4.2 TrackRecord(商用)
2.4.3 ClearQuest(商用)
2.4.4 Bugzilla(開源)
2.4.5 QAMonitor(國內商業軟體)
2.4.6 BMS(國內商業軟體)
2.4.7 其他
習題和思考題
第3章 軟體測試基本概念
3.1 軟體測試發展史
3.2 軟體測試的定義
3.3 軟體測試的目的
3.4.軟體測試的原則
3.5 軟體測試人員的素質要求
3.6 軟體測試與軟體開發各階段的關係
3.7 軟體測試的就業前景
3.8 有關軟體測試的幾個誤區
習題和思考題
第4章 生命周期軟體測試方法
4.1 生命周期測試任務
4.2 需求階段測試
4.3 設計階段測試
4.4 編碼階段測試
4.5 測試階段
4.6 安裝階段測試
4.7 驗收階段測試
4.8 維護階段
4.9 全生命周期質量管理
平台Panoramal
習題和思考題
第5章 軟體測試過程
5.1 軟體測試過程模型
5.1.1 V模型
5.1.2 W模型
5.1.3 H模型
5.1.4 其他測試模型
5.1.5 測試模型的使用
5.2 軟體測試過程管理
5.2.1 測試計畫階段
5.2.2 軟體測試設計和開發
5.2.3 測試執行階段
5.2.4 測試執行結束和測試總結
5.2.5 測試文檔與測試過程的關係
5.3 測試過程改進
5.3.1 軟體測試過程改進的概念
5.3.2 軟體測試過程改進的具體方法
5.4 測試過程輔助設計與管理工具
5.4.1 HP-MercuryT'estDirector
5.4.2 北航軟體所QESuite
5.4.3 TestLink(開源免費)
習題和思考題
第6章 基於軟體配置項的測試種類
6.1 計算機軟體配置項
6.2 軟體測試類別和測試種類
6.2.1 測試種類介紹
6.2.2 測試種類的選擇
習題和思考題
第Ⅱ部分 軟體測試方法
第7章 軟體靜態測試
7.1 編程規範
7.2 程式理解
7.2.1 程式理解的概念
7.2.2 程式理解的任務
7.2.3 程式理解的內容
7.2.4 程式理解的方法
7.2.5 程式理解的相關技術
7.2.6 影響程式理解的因素及對策
7.3 程式代碼質量檢查
7.3.1 代碼分析
7.3.2 代碼審查
7.3.3 桌面檢查
7.3.4 代碼走查
7.3.5 技術評審
7.4 軟體複雜性分析
7.4.1 LineCount複雜度
7.4.2 Halstead複雜度
7.4.3 McCabe複雜度
7.4.4 軟體複雜性度量與控制
7.5 軟體質量模型
7.5.1 軟體質量概念
7.5.2 軟體質量分層模型
7.5.3 軟體質量度量與評價
7.6 靜態分析工具
7.6.1 靜態分析工具Logiscope RuleCheck/Audit
7.6.2 原始碼分析工具Klocwork
習題和思考題
第8章 動態測試
8.1 “白盒”測試
8.1.1 邏輯覆蓋
8.1.2 路徑測試
8.1.3 數據流測試
8.1.4 覆蓋率分析及測試覆蓋準則
8.2 “黑盒”測試
8.2.1 等價類劃分
8.2.2 邊界值分析
8.2.3 因果圖
8.2.4 隨機測試
8.2.5 猜錯法
8.3 “灰盒”測試
8.4 測試用例設計
8.4.1 測試用例設計原則
8.4.2 測試用例要素
8.4.3 測試用例的設計步驟
8.5 單元測試
8.5.1 單元測試的意義
8.5.2 單元測試的內容
8.5.3 單元測試方法和步驟
8.5.4 國產單元測試工具VisualUnit
8.6 集成測試
8.6.1 一次性組裝方式
8.6.2 漸增式測試
8.6.3 組裝測試的組織和實施
8.7 確認測試
8.7.1 有效性測試
8.7.2 軟體配置複查
8.7.3 a和B測試
8.8 系統測試
8.8.1 系統測試的目的與意義
8.8.2 系統測試中關注的重要問題
8.8.3 系統測試的要求和主要內容
8.8.4 系統測試設計
8.8.5 系統測試中的軟體攻擊
8.8.6 系統測試中的典型測試類型介紹
8.8.7 系統測試工具舉例
習題和思考題
第9章 軟體測試自動化
9.1 軟體測試自動化概念
9.1.1 自動化測試的定義
9.1.2 適合於自動化測試的相關活動
9.1.3 自動化測試的優點
9.1.4 自動化測試的局限性
9.2 軟體測試自動化框架
9.2.1 TestHamess
9.2.2 常用的自動化測試框架
9.2.3 基於API測試的分散式測試框架
9.3 測試自動化技術
9.3.1 腳本技術
9.3.2 錄製/回放技術
9.3.3 基於測試預期的結果分析
9.3.4 第三方測試工具集成
9.4 自動化測試工具套用舉例
9.4.1 測試中常用的自動化測試工具
9.4.2 基於STAF/STAX的自動化測試框架
習題和思考題
第10章 軟體可靠性測試
10.1 操作剖面與統計測試
10.2 基於操作剖面的軟體可靠性測試
10.2.1 基於操作剖面的統計測試
10.2.2 操作剖面的構造
10.2.3 操作剖面的使用
10.2.4 結論
10.3 基於操作剖面的軟體可靠性疲勞測試
習題和思考題
第11章 軟體本地化測試
11.1 軟體本地化測試的目的和特點
11.1.1 軟體本地化測試的目的
11.1.2 軟體本地化測試的特點
11.2 軟體本地化錯誤類型及其原因
11.2.1 翻譯錯誤
11.2.2 功能錯誤
11.2.3 國際化錯誤
11.2.4 本地化錯誤
11.3 軟體本地化測試的類型
11.4 軟體本地化測試的原則
習題和思考題
第12章 面向對象軟體測試
12.1 面向對象程式設計語言對軟體測試的影響
12.1.1 信息隱蔽對測試的影響
12.1.2 封裝和繼承對測試的影響
12.1.3 集成測試
12.1.4 多態性和動態綁定對測試的影響
12.2 面向對象測試模型
12.2.1 面向對象分析測試(OOATest)
12.2.2 面向對象設計的測試(OODTest)
12.2.3 面向對象編程的測試(00PTest)
12.2.4 面向對象的單元測試(OOUnitTest)
12.2.5 面向對象的集成測試(OOIntegrateTest)
12.2.6 面向對象的系統測試(OOSystemTest)
12.3 面向對象軟體的回歸測試
12.4 UML圖和面向對象軟體測試
12.5 面向對象軟體測試用例的設計
12.5.1 基於故障的測試
12.5.2 基於腳本的測試
12.5.3 面向對象類的隨機測試
習題和思考題
第Ⅲ部分典型套用軟體測試
第13章 C/S套用軟體測試
13.1 C/S系統測試對傳統測試的影響
13.2 C/S系統測試的目標
13.3 C/S系統測試的內容和步驟
13.3.1 C/S系統測試的內容
13.3.2 C/S系統測試的常見測試點
13.3.3 C/S系統的性能測試
13.3.4 C/S系統的測試步驟
13.4 C/S系統的測試工具
習題和思考題
第14章 基於B/S架構的Web套用軟體測試
14.1 C/S和B/S的比較
14.2 Web套用測試
14.2.1 功能測試
14.2.2 性能測試
14.2.3 可用性測試
14.2.4 客戶端兼容性測試
14.2.5 安全性測試
14.2.6 接口測試
14.3 Web套用性能測試方法
14.4 Web套用的測試模型
14.4.1 對象模型
14.4.2 行為模型
14.4.3 結構模型
14.4.4 基於統計信息的Web測試
14.4.5 性能測試模型
14.5 web信息系統測試
14.5.1 信息系統的概念
14.5.2 信息系統的分類
14.5.3 Web信息系統測試方法
習題和思考題
第15章 遊戲軟體測試
15.1 遊戲軟體測試的特性
15.2 常見的遊戲軟體錯誤
15.3 遊戲軟體測試與遊戲開發過程
15.3.1 遊戲開發過程
15.3.2 遊戲測試與開發過程的關係
15.4 網路遊戲測試
15.4.1 網路遊戲的平衡性測試
15.4.2 網路遊戲的性能測試
15.5 手機遊戲的測試內容
習題和思考題
第16章 嵌入式軟體測試
16.1 嵌入式軟體測試概念
16.2 嵌入式軟體測試的傳統方法
16.2.1 嵌入式軟體測試各個階段的通用策略
16.2.2 嵌入式軟體測試的流程
16.3 嵌入式軟體測試的典型工具
16.3.1 嵌入式“白盒測試工具
16.3.2 嵌入式“黑盒測試工具
16.3.3 嵌入式“灰盒測試工具
16.3.4 嵌入式軟體仿真工具
16.4 嵌入式軟體測試工具舉例
16.4.1 美國Vector公司的VectorCAST——單元測試工具
16.4.2 IBMRational Test RealTime(RTRT)
16.4.3 美國FreeScale公司的CodeTest.“白盒”測試工具
16.4.4 比利時SPACEBEI.公司產品——全數字仿真測試工具
16.4.5 荷蘭CHESS公司產品SHAM——半實物仿真測試工具
16.4.6 北航的“黑盒”測試工具GESTE
16.4.7 歐洲航天局實時仿真產品Eurosim
16.4.8 網路資源透明訪問工具SPINEware
16.5 傳統測試工具的局限性
16.6 全數字仿真測試方案
16.6.1 全數字仿真的概念
16.6.2 北京奧吉通的CRESTS/ATAT和
CRESTS廠rESS介紹
習題和思考題
參考文獻