出 版 社: 清華大學出版社
出版時間: 2004-4-1 版 次: 1 頁 數: 450 定價:¥38.00I S B N : 9787302081777簡介
本書可以作為大學本科高年級學生或研究生教材,也可以作為本科低年級學生學習的參考書。對於軟體工程師和測試工程師來說,本書是一本很好的指導書。
目錄第1章 概述1.1 回顧測試的發展
1.2 什麼是軟體測試
1.2.1 IEEE的定義
1.2.2 測試在軟體開發中的角色
1.3 為什麼要進行軟體測試
1.4 測試的目的
1.4.1 證明
1.4.2 檢測
1.4.3 預防
1.5 業界的軟體測試現狀
1.6 軟體測試中的誤區
1.7 本章小結
2.1 白盒測試
2.1.1 什麼是白盒測試
2.1.2 為什麼要進行白盒測試
2.1.3 白盒測試的常用技術
2.1.4 一個白盒測試的例子
2.2 黑盒測試
2.2.1 什麼是黑盒測試
2.2.2 為什麼要進行黑盒測試
2.2.3 黑盒測試的常用技術
2.2.4 一個黑盒測試的例子
2.3 白盒測試和黑盒測試的比較
2.3.1 白盒測試的優缺點
2.3.2 黑盒測試的優缺點
2.3.3 灰盒測試
2.4 本章小結
3.1 覆蓋率概念
3.2 常見的邏輯覆蓋
3.2.1 語句覆蓋
3.2.2 判定覆蓋
3.2.3 條件覆蓋
3.2.4 判定條件覆蓋
3.2.5 路徑覆蓋
3.2.6 邏輯覆蓋小結
3.3 功能覆蓋率
3.4 面向對象的覆蓋率
3.4.1 繼承上下文覆蓋
3.4.2 基於狀態的上下文覆蓋
3.4.3 基於執行緒的上下文覆蓋
3.5 其他覆蓋率
3.5.1 函式覆蓋
3.5.2 指令塊覆蓋
3.5.3 判定路徑覆蓋
3.5.4 更改條件判定覆蓋
3.5.5 分支條件組合覆蓋
3.5.6 過程到過程路徑覆蓋
3.5.7 Z路徑覆蓋
3.5.8 ESTCA覆蓋
3.5.9 LCSAJ覆蓋
3.6 如何使用覆蓋率
3.6.1 基本原則
3.6.2 一個選擇建議
3.6.3 使用最少測試用例來達到覆蓋
3.7 本章小結
4.1 文本視角
4.2 句法視角
4.3 控制流視角
4.4 數據流視角
4.5 計算流視角
4.5.1 故障插入
4.5.2 變體分析
4.5.3 敏感性分析
4.6 功能視角
4.7 本章小結
5.1 面向規格的測試
5.1.1 測試獨立於規格技術
5.1.2 測試依賴於規格技術
5.2 面向實現的測試
5.2.1 面向結構的測試
5.2.2 面向影響的測試
5.2.3 面向傳遞的測試
5.3 面向錯誤的測試
5.3.1 基於錯誤的測試
5.3.2 基於故障的測試
5.3.3 基於風險的測試
5.3.4 可能的正確性
5.4 混合測試技術
5.5 本章小結
6.1 什麼是單元測試
6.1.1 單元測試的目的
6.1.2 單元測試和集成測試的區別
6.1.3 單元測試和系統測試的區別
6.2 為什麼要進行單元測試
6.3 單元測試環境
6.4 單元測試策略
6.4.1 【策略一】由頂向下的單元測試策略
6.4.2 【策略二】由低到上的單元測試策略
6.4.3 【策略三】孤立測試
6.4.4 綜合測試
6.5 單元測試分析
6.5.1 模組接口
6.5.2 局部數據結構
6.5.3 獨立路徑
6.5.4 出錯處理
6.5.5 邊界條件
6.6 單元測試用例設計思路
6.6.1 為系統運行設計用例
6.6.2 為正向測試設計用例
6.6.3 為逆向測試設計用例
6.6.4 為滿足特殊需求設計用例
6.6.5 為代碼覆蓋設計用例
6.6.6 為覆蓋率指標完成設計用例
6.7 單元測試過程
6.7.1 完成測試計畫
6.7.2 獲取測試集
6.7.3 度量測試單元
6.8 單元測試工具介紹
6.9 單元測試應堅持的原則
6.10 我們的問題
6.11 本章小結
7.1 什麼是集成測試
7.1.1 集成測試與系統測試的區別
7.1.2 集成測試關注的重點
7.1.3 集成測試和開發的關係
7.1.4 集成測試的層次
7.2 集成測試策略
7.2.1 大爆炸集成
7.2.2 自頂向下的集成
7.2.3 自底向上的集成
7.2.4 三明治集成
7.2.5 修改過的三明治集成
7.2.6 基幹集成
7.2.7 分層集成
7.2.8 基於功能的集成
7.2.9 高頻集成
7.2.10 基於進度的集成
7.2.11 基於風險的集成
7.2.12 基於事件(訊息)的集成
7.2.13 基於使用的集成
7.2.14 客戶/伺服器的集成
7.2.15 分散式集成
7.3 集成測試分析
7.3.1 體系結構分析
7.3.2 模組分析
7.3.3 接口分析
7.3.4 風險分析
7.3.5 可測試性分析
7.3.6 集成測試策略分析
7.3.7 常見的集成測試故障
7.4 集成測試用例設計思路
7.4.1 為系統運行設計用例
7.4.2 為正向測試設計用例
7.4.3 為逆向測試設計用例
7.4.4 為滿足特殊需求設計用例
7.4.5 為高覆蓋設計用例
7.4.6 測試用例補充
7.4.7 注意事項
7.5 集成測試過程
7.5.1 計畫階段
7.5.2 設計階段
7.5.3 實現階段
7.5.4 執行階段
7.6 集成測試環境集成測試
7.7 集成測試工具介紹
7.8 集成測試應堅持的原則
7.9 本章小結
8.1 系統測試概念
8.2 系統測試方法
8.2.1 功能測試
8.2.2 協定一致性測試
8.2.3 性能測試
8.2.4 壓力測試
8.2.5 容量測試
8.2.6 安全性測試
8.2.7 恢復性測試
8.2.8 備份測試
8.2.9 GUI測試
8.2.10 健壯性測試
8.2.11 兼容性測試
8.2.12 可用性測試
8.2.13 可安裝性測試
8.2.14 文檔測試
8.2.15 線上幫助測試
8.2.16 數據轉換測試
8.3 系統測試過程
8.3.1 完成系統測試計畫
8.3.2 完成系統測試用例
8.3.3 評審/審批系統測試計畫
8.3.4 執行系統測試
8.4 本章小結
9.1 基本概念
9.1.1 什麼是軟體可靠性
9.1.2 錯誤、缺陷、故障和失效
9.1.3 軟體可靠性指標
9.1.4 軟體和硬體可靠性區別
9.2 可靠性指標分配
9.3 可靠性預計
9.3.1 計數法
9.3.2 應力法
9.4 可靠性分析方法
9.4.1 FMEA
9.4.2 CA
9.4.3 FTA
9.4.4 ETA
9.4.5 SCA
9.5 軟體可靠性測試
9.5.1 可靠性測試流程
9.5.2 可靠性模型介紹
9.5.3 一個可靠性數據分析例子
9.6 軟體可靠性工程
9.7 可靠性標準和可靠性工具
9.7.1 可靠性標準
9.7.2 可靠性工具
9.8 本章小結
10.1 可接受性測試
10.2 Alpha測試
10.3 Beta測試
10.4 標桿測試
10.5 配置測試
10.6 外場測試
10.7 SQL測試
10.8 2000年測試
10.9 回歸測試
10.10 本章小結
11.1 質量的定義
11.2 質量的預防和檢測
11.3 如何提高軟體產品的質量
11.3.1 流程對質量的貢獻
11.3.2 流程與技術
11.3.3 全面質量管理
11.3.4 關注測試
11.3.5 組織、流程和人
11.4 質量標準
11.5 本章小結
12.1 基本概念
12.2 軟體驗證和確認計畫
12.2.1 svvp步驟
12.2.2 SVVP的7個主題
12.3 驗證和確認任務分析
12.3.1 關鍵性分析
12.3.2 可跟蹤性分析
12.3.3 評估
12.3.4 接口分析
12.3.5 測試
12.4 生命周期各階段活動
12.4.1 管理階段的驗證和確認
12.4.2 概念階段的驗證和確認
12.4.3 需求階段的驗證和確認
12.4.4 設計階段的驗證和確認
12.4.5 實現階段的驗證和確認
12.4.6 測試階段的驗證和確認
12.4.7 安裝和校驗階段的驗證和確認
12.4.8 運行和維護階段的驗證和確認
12.4.9 驗證和確認任務總結
12.5 驗證和確認的報告
12.5.1 標準要求的報告
12.5.2 標準可選報告
12.6 本章小結
13.1 基本概念
13.1.1 目標
13.1.2 執行的承諾
13.1.3 執行的能力
13.1.4 執行的活動
13.1.5 度量分析
13.1.6 驗證實現
13.2 SQA實施過程
13.2.1 建立SQA組織
13.2.2 選擇SQA任務
13.2.3 產生/維護SQA計畫
13.2.4 實施SQA計畫
13.2.5 產生/維護SQA規程
13.2.6 標識SQA培訓
13.2.7 標識/選擇SQA工具
13.2.8 改進項目SQA過程
13.3 本章小結
14.1 需求測試概述
14.1.1 什麼是需求
14.1.2 測試需求
14.2 通過評審來測試需求
14.2.1 需求評審中的常見風險
14.2.2 需求評審檢查表
14.3 通過用例設計來測試需求
14.4 需求建模測試
14.4.1 統一建模語言
14.4.2 訊息順序圖(MSC)
14.4.3 分析建模工具介紹
14.4.4 需求的形式化描述
14.5 基於原型的測試
14.5.1 原型的目的
14.5.2 原型的種類
14.5.3 原型的測試方法
14.6 本章小結
15.1 設計測試概述
15.1.1 什麼是設計
15.1.2 軟體構架設計
15.1.3 概要設計和詳細設計
15.2 設計的評審
15.2.1 設計查檢表
15.2.2 構架設計評審方法
15.2.3 軟體構架評價最佳工業實踐
15.3 SDL及相關測試
15.3.1 SDL介紹
15.3.2 SDL基本概念
15.3.3 SDL結構
15.3.4 SDL測試
15.4 本章小結
16.1 基本概念
16.2 同行評審的一般過程
16.2.1 計畫階段
16.2.2 實施被選擇的同行評審過程
16.2.3 同行評審過程度量
16.2.4 同行評審的評審/審計
16.3 走讀
16.3.1 過程目標
16.3.2 特定的角色和職責
16.3.3 輸入
16.3.4 入口標準
16.3.5 過程
16.3.6 出口標準
16.3.7 輸出
16.4 技術評審
16.4.1 過程目標
16.4.2 特定的角色和職責
16.4.3 輸入
16.4.4 入口標準
16.4.5 過程
16.4.6 出口標準
16.4.7 輸出
16.5 正規檢視
16.5.1 正規檢視小組
16.5.2 正規檢視過程
16.5.3 正規檢視常用表格
16.6 本章小結
17.1 軟體測試的10大原則
17.1.1 原則1:測試是一個持續進行的過程,而不是一個階段
17.1.2 原則2:測試必須被計畫、被控制,並且被提供時間和資源
17.1.3 原則3:測試應當分級別
17.1.4 原則4:測試應當有重點
17.1.5 原則5:測試不是為了證明程式的正確性,而是為了證明程式不能工作
17.1.6 原則6:測試是不可能窮盡的,當測試出口條件滿足時就可以停止測試
17.1.7 原則7:測試是開發的朋友,不是開發的敵人
17.1.8 原則8:測試人員應公正地測試,如實地記錄和報告缺陷
17.1.9 原則9:測試自動化能解決一部分問題,但不是全部
17.1.10 原則10:測試不能僅僅包括功能性的驗證,還應當包含性能、可靠性、可維護性、安全性等方面的驗證
17.2 軟體測試的10個最佳實踐
17.2.1 實踐1:儘早地、頻繁地進行測試是降低項目成本,提高質量的一個好方法
17.2.2 實踐2:儘早產生一個綜合的主測試計畫
17.2.3 實踐3:對質量要求較高或大型複雜的產品成立獨立的測試組
17.2.4 實踐4:在每個開發階段,使用測試和評價的結果作為是否可以通過的標準
17.2.5 實踐5:開發和維護一個測試需求和目標的風險優先權列表
17.2.6 實踐6:把測試件作為產品的一部分等同管理,使用相同的評價標準和過程
17.2.7 實踐7:提供集成化的測試工具和測試基礎支持
17.2.8 實踐8:加強測試度量工作和缺陷分析工作,不斷地改進測試
17.2.9 實踐9:加強測試的培訓並且為測試人員提供技能發展的通道
17.2.10 實踐10:加強溝通和交流,讓項目組內所有人員都了解測試的工作及其重要性
17.3 本章小結
附錄A 常見測試術語
附錄B 測試技術分類
附錄C 常見的編碼錯誤
附錄D 經典測試網站
附錄E 參考資料