前言
子系統(tǒng)測試概述
第一部分 基本手段
第1章 規(guī)格說明
1.1 規(guī)格說明的要素
1.1.1 前提
1.1.2 后果
1.1.3 定義
1.2 檢查規(guī)格說明
1.2.1 不完備
1.2.2 模糊
第2章 SREADHEX例子介紹
2.1 引入
2.2 規(guī)格說明
2.3 代碼
第3章 構建測試需求檢查單
3.1 查找規(guī)格說明中的線索
3.1.1 前提與后果
3.1.2 變量
3.1.3 操作
3.1.4 定義
3.2 查找代碼中的線索
3.2.1 變量
3.2.2 模式操作
3.2.3 函數調用
3.3 找出SREADHEX的線索
3.3.1 代碼
3.3.2 我們現在所處的位置
3.4 通過前提、后果和定義獲取測試需求
3.4.1 簡單驗證前提
3.4.2 使用OR的驗證前提
3.4.3 使用AND的驗證前提
3.4.4 AND和OR組合驗證前提
3.4.5 假設前提
3.4.6 后果
3.4.7 定義
3.5 找出SREADHEX的測試需求
3.6 能過大綱確定測試需求
3.7 通過SREADHEX說明大綱的使用
3.8 我們現在所處的位置
3.9 使用測試需求大綱規(guī)則小結
3.10 集成測試需求
3.10.1 集成測試需求的一個例子
3.10.2 另一個例子
3.10.3 最后一個例子
3.11 SREADHEX的集成測試需求
3.12 錯誤猜測
3.13 根據規(guī)格說明掃描代碼
第4章 測試規(guī)格說明
4.1 標記將要使用的規(guī)格說明
4.2 一般測試規(guī)格說明
4.3 錯誤測試規(guī)格說明
4.4 構建測試規(guī)格說明要注意的問題
4.5 有關測試形式的規(guī)則
4.6 有關測試內容的規(guī)則
4.7 分別測試規(guī)格說明和代碼
4.7.1 通過規(guī)格說明處理需求
4.7.2 根據代碼進行需求的while處理
4.8 SREADHEX測試規(guī)格說明
4.8.1 設計注釋
4.8.2 測試1
4.8.3 測試2
4.8.4 測試3
4.8.5 測試3(續(xù))
4.8.6 測試4
4.8.7 測試5、6和7
4.8.8 測試8
4.9 我們現在所處的位置
第5章 測試驅動器與套件驅動器
5.1 測試驅動器
5.1.1 向子系統(tǒng)提供輸入
5.1.2 比較實際結果和預期結果
5.2 套件驅動器
5.3 測試自己的驅動器
5.4 SREADHEX驅動器
5.4.1 大綱與文件結構
5.4.2 驅動器與樁
5.4.3 運行測試
5.5 我們現在所處的位置
第6章 采用問題大綱審查代碼
6.1 責任
6.2 審查SREADHEX
第7章 利用覆蓋率檢驗測試套件
7.1 覆蓋率的類型
7.2 不可行的覆蓋率
7.3 運用覆蓋率信息
7.3.1 覆蓋率成本的一個例子
7.3.2 需要小心運用覆蓋率的一個例子
7.4 一個較大例子
7.4.1 程序
7.4.2 使用通用覆蓋率工具(GCT)
7.4.3 覆蓋率
7.4.4 新測試
7.5 SREADHEX的覆蓋率
7.6 我們現在所處的位置
第8章 清理
第9章 其他提示
9.1 使用優(yōu)先級較低的需求
9.2 不確定的限制
第二部分 實施子系統(tǒng)測試
第10章 實施
10.1 運用覆蓋率
10.2 改進測試規(guī)格說明
10.3 改進測試需求
10.4 并行改進規(guī)格說明分析
第11章 完善
第三部分 實踐中的子系統(tǒng)測試
第12章 使用更典型的規(guī)格說明
12.1 例子:CREPORT
12.2 過程
12.3 練習
12.4 通過代碼導出規(guī)格說明
第13章 處理大型子系統(tǒng)
13.1 復雜性的應對方案
13.1.1 制訂測試進度表
13.1.2 例程需求
13.1.3 較大子系統(tǒng)中的ERROR需求
13.2 大型子系統(tǒng)的危險
13.2.1 內部測試驅動器
13.2.2 外部調試器
13.2.3 沒有調試器時的方法
13.3 選擇子系統(tǒng)
第14章 測試錯誤個性與其他維護變更
14.1 一個例子
14.2 測試變更的基本過程
14.3 傳播缺陷
14.4 相似性缺陷
14.5 測試較大變更
14.6 測試套件退化
第15章 時間進度壓力下的測試
15.1 沒有足夠時間的測試
15.2 幾乎沒有足夠時間的測試
第四部分 舉例與擴展
第16章 句法測試
16.1 符號
16.2 測試需求
16.2.1 鄰近項
16.2.2 序列
16.2.3 替換項
16.2.4 簡單重復
16.2.5 重復與替換項
16.3 交互
第17章 第二個完整例子:MAX
17.1 規(guī)格說明
17.2 通過規(guī)格說明導出測試
17.2.1 線索
17.2.2 來自在前提和后果的需求
17.2.3 掃描大綱
17.2.4 測試設計
17.3 通過代碼導出測試
17.4 使用問題大綱
17.5 測試驅動器與測試運行
17.6 使用覆蓋率
第18章 測試一致性關系
18.1 構建測試需求檢查單
18.1.1 基本檢查單
18.1.2 增加缺陷可視性的注釋
18.1.3 測試這個例子
18.2 多樣性問題
18.2.1 多于兩變量
18.2.2 檢驗子系統(tǒng)的其他部分
18.2.3 如果檢查由庫例程完成
18.2.4 未檢查或不可能的ERROR需求
18.2.5 如果多個變量可以同時變更
第19章 狀態(tài)機與狀態(tài)圖
19.1 狀態(tài)機
19.1.1 實現
19.1.2 稀疏狀態(tài)機
19.1.3 冗余遷移
19.2 狀態(tài)圖
19.2.1 狀態(tài)行動
19.2.2 條件狀態(tài)遷移
19.2.3 嵌套狀態(tài)
19.2.4 歷史信息
19.2.5 狀態(tài)圖實現框架
19.3 什么時候和怎樣構建模型
19.3.1 模型什么時候有用
19.3.2 構建模型
19.4 審查狀態(tài)機和狀態(tài)圖
19.4.1 檢查模型
19.4.2 審查行動
19.4.3 檢查實現映射
19.5 測試狀態(tài)機和狀態(tài)圖
19.5.1 測試需求
19.5.2 來自狀態(tài)圖的需求
19.5.3 測試規(guī)格說明
19.5.4 測試實現
19.5.5 覆蓋率
19.6 多個狀態(tài)機
19.6.1 獨立狀態(tài)機
19.6.2 通信狀態(tài)機
第20章 測試使用可后果用軟件的子系統(tǒng)
20.1 測試需求
20.2 覆蓋率
第21章 測試基于對象的軟件
21.1 背景
21.1.1 術語
21.1.2 其他方法
21.2 子系統(tǒng)規(guī)模與測試實現
21.2.1 兩種特例
21.2.2 另一種方法
21.3 類測試需求大綱
21.3.1 組織
21.3.2 第一步:對象使用需求
21.3.3 第二步:狀態(tài)機需求
21.3.4 第三步:成員函數集成需求
21.3.5 第四步:對象的聚合
21.4 使用類需求大綱
21.5 時間進度壓力
第22章 面向對象的軟件1:繼承
22.1 測試規(guī)格說明與實現
22.2 導出類的類型
22.3 導出類需求大綱
22.3.1 復制基類需求大綱
22.3.2 處理新成員
22.3.3 處理頂替成員函數
22.3.4 處理繼承成員函數
22.3.5 更新剩余的對象使用需求
22.3.6 更新狀態(tài)機需求
22.3.7 多繼承
22.4 成員函數的測試需求檢查單
22.4.1 新的成員函數
22.4.2 頂替成員函數
22.4.3 繼承成員函數
22.5 針對已變更外部例程的測試需求檢查單
22.6 通用性(模板)
第23章 測試導出類的一個例子
23.1 abstract_hash_table:一個抽象類
23.2 hash_table:一個導出類
23.2.1 hash_table大綱
23.2.2 hash_table成員函數的測試需求檢查單
23.2.3 hash_table測試規(guī)格說明與實現
23.3 checking_hash_table:另一個導出類
23.3.1 checking_hash_table大綱
23.3.2 checking_hash_table成員函數的測試需求檢查單
23.3.3 實現checking_hash_table測試
23.4 abstract_hash_table <Item,sz>:模板類
第24章 面向對象的軟件2:動態(tài)捆綁
24.1 虛擬調用需求大綱
24.1.1 捆綁虛擬調用大綱
24.1.2 怎樣處理數據成員?
24.1.3 在變更中構建虛擬調用大綱
24.2 使用虛擬調用需求大綱
24.2.1 縮寫了新的外部代碼
24.2.2 增加了導出類
24.2.3 維護
第五部分 測試需求的乘積
第25章 簡單測試需求乘積
25.1 變量需求可太性
25.1.1 過程——通過規(guī)格說明和代碼來處理
25.1.2 過程——只通過規(guī)格說明來處理
25.1.3 測試大型子系統(tǒng)的做含意
25.1.4 舉例:一致性檢查
25.1.5 舉例:根據sreadhex規(guī)格說明來處理
25.1.6 舉例:構建sreadhex規(guī)格說明
25.2 復雜布爾表達式
25.2.1 導出需求的大綱
25.2.2 舉例
25.3 創(chuàng)建布爾便利定義
25.3.1 過程
25.3.2 greport例子
25.3.3 greport的其他問題
25.4 數據流測試
25.5 一些理論
第26章 操作測試需求的乘積
26.1 過程
26.1.1 找出交互線索
26.1.2 乘積
26.1.3 覆蓋率
26.1.4 舉例
26.2 發(fā)散操作
第六部分 附錄
附錄A 測試需求大綱(學生版)
附錄B 測試需求大綱(標準版)
附錄C 與POSIX有關的測試需求大綱(部分樣本)
附錄D 代碼審查問題大綱
附錄E 復雜布爾表達式需求大綱
附錄F 用于測試編寫內容的檢查單
參考文獻
術語表