軟件測試:一個軟件工藝師的方法(原書第4版) | 被動收入的投資秘訣 - 2024年9月
![](https://www.books.com.tw/img/CN1/148/68/CN11486830.jpg)
軟件測試:一個軟件工藝師的方法(原書第4版)
本書是經典的軟件測試教材,也可作為軟件測試者、開發者和工程師的參考書。書中對基礎知識、方法提供了系統的綜合闡述,既涉及基於模型的開發,又介紹了測試驅動的開發,做到了理論與實踐的完美結合,反映了軟件標准和開發的新進展和變化。Paul c. jorgensen博士在其職業生涯的前20年中,主要從事電話交換系統的開發、支持和測試工作。1986年以來,他一直在大學為研究生講授軟件工程課程,先是亞利桑那州立大學,然后在大峽谷州立大學。
Software Testing: A Craftsman』s Approach, Fourth Edition 出版者的話 譯者序 前言 第一部分 數學基礎 第1章 測試概述 2 1.1 基本概念 2 1.2 測試用例 3 1.3 利用維恩圖來理解軟件測試 3 1.4 構造測試用例 4 1.4.1 基於規格說明的測試 5 1.4.2 基於代碼的測試 5 1.4.3 兩種測試方法的對比 6 1.5 故障的分類 7 1.6 測試的層次 8 1.7 習題 8 1.8 參考文獻 8 第2章 程序示例 9 2.1 通用偽代碼 9 2.2 三角形問題 10 2.2.1 問題描述 10 2.2.2 三角形問題的討論 11 2.2.3 三角形問題的經典實現 11 2.2.4 三角形問題的結構化實現 14 2.3 NextDate日期函數 15 2.3.1 問題描述 15 2.3.2 NextDate函數的討論 16 2.3.3 NextDate函數的實現 16 2.4 佣金問題 18 2.4.1 問題描述 18 2.4.2 佣金問題的討論 19 2.4.3 佣金問題的實現 19 2.5 SATM系統 20 2.5.1 問題描述 20 2.5.2 SATM系統的討論 21 2.6 貨幣兌換計算器 22 2.7 雨刷控制器 22 2.8 車庫門遙控開關 22 2.9 習題 23 2.10 參考文獻 24 第3章 面向測試人員的離散數學 25 3.1 集合論 25 3.1.1 集合的成員關系 25 3.1.2 集合的定義方法 25 3.1.3 空集 26 3.1.4 集合的維恩圖 26 3.1.5 集合運算 27 3.1.6 集合關系 28 3.1.7 集合划分 29 3.1.8 集合恆等 29 3.2 函數 30 3.2.1 定義域與值域 30 3.2.2 函數類型 30 3.2.3 函數復合 31 3.3 關系 32 3.3.1 集合之間的關系 32 3.3.2 單個集合上的關系 33 3.4 命題邏輯 34 3.4.1 邏輯運算符 34 3.4.2 邏輯表達式 35 3.4.3 邏輯等價 35 3.5 概率論 36 3.6 習題 37 3.7 參考文獻 37 第4章 面向測試人員的圖論 38 4.1 圖 38 4.1.1 節點的度 38 4.1.2 關聯矩陣 39 4.1.3 鄰接矩陣 39 4.1.4 路徑 40 4.1.5 連通性 40 4.1.6 壓縮圖 41 4.1.7 圈數 41 4.2 有向圖 41 4.2.1 入度與出度 42 4.2.2 節點類型 42 4.2.3 有向圖的鄰接矩陣 43 4.2.4 路徑與半路徑 43 4.2.5 可達矩陣 44 4.2.6 n連通性 44 4.2.7 強分圖 44 4.3 軟件測試中常用的圖 45 4.3.1 程序圖 45 4.3.2 有限狀態機 46 4.3.3 Petri網 47 4.3.4 事件驅動Petri網 49 4.3.5 狀態圖 50 4.4 習題 52 4.5 參考文獻 52 第二部分 單元測試 第5章 邊界值測試 54 5.1 邊界值分析 54 5.1.1 邊界值分析的拓展 55 5.1.2 邊界值分析的局限性 56 5.2 健壯性測試 56 5.3 最壞情況測試 57 5.4 特殊值測試 57 5.5 示例 58 5.5.1 三角形問題的測試用例 58 5.5.2 NextDate函數的測試用例 59 5.5.3 佣金問題的測試用例 60 5.6 隨機測試 62 5.7 邊界值測試的原則 63 5.8 習題 65 第6章 等價類測試 66 6.1 等價類 66 6.2 傳統的等價類測試 66 6.3 改進的等價類測試 67 6.3.1 弱一般等價類測試 68 6.3.2 強一般等價類測試 68 6.3.3 弱健壯等價類測試 68 6.3.4 強健壯等價類測試 69 6.4 三角形問題的等價類測試用例 69 6.5 NextDate函數的等價類測試用例 71 6.6 佣金問題的等價類測試用例 73 6.7 邊緣測試 75 6.8 原則與注意事項 75 6.9 習題 76 6.10 參考文獻 76 第7章 基於決策表的測試 77 7.1 決策表 77 7.2 決策表使用技巧 77 7.3 三角形問題的測試用例 80 7.4 Next Date函數的測試用例 81 7.4.1 第一輪嘗試 81 7.4.2 第二輪嘗試 82 7.4.3 第三輪嘗試 83 7.5 佣金問題的測試用例 85 7.6 因果關系圖 85 7.7 原則與注意事項 86 7.8 習題 87 7.9 參考文獻 87 第8章 路徑測試 88 8.1 程序圖 88 8.2 DD路徑 90 8.3 測試覆蓋指標 92 8.3.1 基於程序圖的覆蓋度量方法 92 8.3.2 E. F. Miller的覆蓋度量方法 92 8.3.3 復合條件下的閉合路徑 95 8.3.4 示例 96 8.3.5 測試覆蓋分析器 99 8.4 基路徑測試 99 8.4.1 McCabe的基路徑方法 100 8.4.2 McCabe基路徑方法的考慮 102 8.4.3 McCabe方法的基本復雜度 103 8.5 原則與注意事項 105 8.6 習題 105 8.7 參考文獻 106 第9章 數據流測試 107 9.1 定義/使用測試 107 9.1.1 舉例 108 9.1.2 stocks的定義使用路徑 110 9.1.3 locks的定義使用路徑 110 9.1.4 totalLocks的定義使用路徑 113 9.1.5 sales的定義使用路徑 113 9.1.6 commission的定義使用路徑 115 9.1.7 定義使用路徑的測試覆蓋指標 115 9.1.8 面向對象編碼的定義/使用測試 116 9.2 基於程序切片的測試 116 9.2.1 舉例 118 9.2.2 風格與技術 122 9.2.3 切片拼接 123 9.3 程序切片工具 124 9.4 習題 125 9.5 參考文獻 125 第10章 單元測試回顧 126 10.1 測試方法的搖擺 126 10.2 測試方法搖擺問題探索 128 10.3 用於評估測試方法的指標 131 10.4 重新