|
-- 會員 / 註冊 --
|
|
|
|
程序開發人員測試指南 構建高質量的軟件 ( 簡體 字) |
作者:[瑞典]亞歷山大.塔林德 ( Alexander Tarlinder) | 類別:1. -> 程式設計 -> 綜合 |
譯者: |
出版社:人民郵電出版社 | 3dWoo書號: 48972 詢問書籍請說出此書號!【缺書】 NT售價: 345 元 |
出版日:5/1/2018 |
頁數:219 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787115480088 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:本書分為19章,主要內容為開發人員測試,測試目標、方式和角色,測試術語,開發人員眼中的可測試性,契約式編程,可測試性的驅動者,單元測試,基于規格說明的測試,依賴關系,數據驅動和組合測試,準單元測試,測試替身,模擬框架,測試驅動開發——經典風格,測試驅動開發——Mockist風格,使用測試代碼,超越單元測試,測試思路等開發人員和測試人員必知必會的知識。 如果你是一個希望所寫的代碼質量更高、缺陷更少的開發人員,那么這本書很適合你。本書介紹了如何用可測試性提升軟件質量,在各種開發模式中,可測試性都是軟件的主要質量屬性之一。閱讀本書,你可以成為更好的開發人員,學習到更多的軟件測試知識,不必再苦于沒有時間做測試、也無法從同事或團隊那里獲得相關的支持。 |
目錄:第 1章 開發者測試 1 1.1 開發者測試 1 1.2 開發人員測試活動 2 1.2.1 單元測試 2 1.2.2 集成測試 2 1.2.3 維護 2 1.2.4 持續集成 3 1.2.5 自動化測試 3 1.3 開發人員通常不做什么 4 1.4 定義“開發者測試” 5 1.5 開發人員測試和開發過程 5 1.6 小結 6 第 2章 測試目標、方式和角色 7 2.1 測試和檢查 7 2.2 測試目標 7 2.2.1 批判式測試 8 2.2.2 支持式測試 8 2.3 測試方式 8 2.3.1 傳統測試 9 2.3.2 敏捷測試 10 2.3.3 BDD、ATDD和實例化需求 11 2.4 質量保證和開發者測試 13 2.5 小結 14 第3章 測試術語 15 3.1 錯誤、缺陷、失效 15 3.2 白盒測試與黑盒測試 16 3.3 測試技術分類 16 3.3.1 測試級別 17 3.3.2 測試類型 19 3.3.3 讓測試級別和測試類型 發揮作用 21 3.4 敏捷測試四象限 22 3.5 其他類型的測試 23 3.5.1 冒煙測試 23 3.5.2 端到端測試 24 3.5.3 特性測試 24 3.5.4 正面測試和負面測試 24 3.5.5 小型、中型和大型測試 24 3.6 小結 25 第4章 開發者眼中的可測試性 26 4.1 可測試的軟件 26 4.2 可測試性的好處 27 4.2.1 功能可被驗證 27 4.2.2 減少意外 28 4.2.3 它可以改變 28 4.2.4 為什么要注重可測試性 29 4.3 可測試性的定義 30 4.3.1 可觀察性 31 4.3.2 可控制性 33 4.3.3 可部署性 34 4.3.4 可隔離性 35 4.3.5 小規模(smallness) 36 4.3.6 單一性 36 4.3.7 抽象級別 37 4.3.8 效率(efficiency) 38 4.3.9 復用 38 4.3.10 可測試性的提示 38 4.4 小結 39 第5章 契約式編程 40 5.1 契約形式化約束 41 5.2 實現契約式編程 42 5.3 強制契約 43 5.3.1 斷言 43 5.3.2 支持契約的類庫 44 5.3.3 單元測試 45 5.3.4 靜態分析 45 5.4 小結 45 第6章 可測試性的驅動者 47 6.1 直接輸入和輸出 47 6.2 間接輸入和輸出 48 6.3 狀態 49 6.4 時序耦合 50 6.5 數據類型和可測試性 50 6.6 域值比 54 6.7 小結 55 第7章 單元測試 56 7.1 為什么做單元測試? 56 7.2 什么是單元測試 57 7.3 單元測試框架的生命周期 58 7.3.1 測試方法 59 7.3.2 測試初始化器和清除 59 7.3.3 構造函數和析構函數 60 7.4 測試命名 60 7.4.1 測試框架的強制規定 60 7.4.2 行為驅動的開發方式 61 7.4.3 工作單元、測試狀態、 所期望的行為 61 7.4.4 選擇一個命名標準 61 7.5 測試結構化 62 7.6 斷言方法 63 7.6.1 斷言類型 63 7.6.2 每個測試有多少斷言 64 7.6.3 斷言冗長 65 7.6.4 斷言等式 66 7.6.5 限制和匹配器 67 7.7 測試異常 70 7.8 行為驅動開發方式的框架 72 7.8.1 測試結構 72 7.8.2 命名測試 73 7.8.3 匹配器 74 7.9 小結 75 第8章 基于規格說明的測試 76 8.1 等價類劃分 76 8.2 邊界值分析 78 8.3 典型數據類型的邊緣用例和其他 測試用例 79 8.3.1 數字 79 8.3.2 字符串 79 8.3.3 日期和時間 80 8.3.4 集合 80 8.4 狀態轉移測試 81 8.5 決策表 82 8.6 小結 83 第9章 依賴關系 84 9.1 對象間依賴關系 84 9.1.1 傳入協作者 85 9.1.2 使用工廠方法 86 9.1.3 提供一個外部工廠或者 生成器 87 9.2 系統資源依賴關系 89 9.2.1 文件 89 9.2.2 提供你自己的抽象 89 9.2.3 測試由I/O操作處理過的 數據 90 9.2.4 系統時鐘 91 9.2.5 其他系統資源依賴關系 92 9.3 層間依賴關系 92 9.4 跨層級依賴關系 94 9.5 小結 95 第 10章 數據驅動和組合測試 96 10.1 參數化測試 98 10.2 Theories 99 10.3 生成式測試 101 10.3.1 驗證結果 102 10.4 組合測試 103 10.4.1 單模式故障 104 10.4.2 雙模式故障 105 10.4.3 雙模式故障和所有成對變量 之外 106 10.5 小結 106 第 11章 準單元測試 107 11.1 實例 107 11.1.1 使用內存數據庫的測試 108 11.1.2 測試專用的郵件服務器 108 11.1.3 使用輕量級容器的測試 109 11.1.4 Web服務測試 110 11.2 影響 111 11.3 小結 112 第 12章 測試替身 113 12.1 樁對象 113 12.1.1 樁對象的靈活性 114 12.1.2 用樁對象來避免副作用 115 12.2 偽對象 116 12.3 模擬對象 117 12.3.1 驗證間接輸出 117 12.3.2 驗證間接輸入轉換 121 12.4 探針 122 12.5 啞對象 123 12.6 驗證狀態還是行為 124 12.6.1 狀態驗證 124 12.6.2 行為驗證 125 12.6.3 參數 125 12.7 小結 126 第 13章 模擬框架 127 13.1 創建測試替身 127 13.2 設置預期 128 13.3 驗證交互行為 131 13.4 誤用、濫用和其他陷阱 133 13.4.1 過度驗證 133 13.4.2 模擬具體類 134 13.4.3 模擬有價值的類 135 13.4.4 Mock返回Mock 135 13.5 小結 135 第 14章 測試驅動開發——經典風格 137 14.1 測試驅動一個簡單的搜索引擎 137 14.1.1 測試1:發現API 138 14.1.2 測試2:主邏輯路徑 (Happy Path) 139 14.1.3 測試3:多文件索引 140 14.1.4 測試4:更復雜的文件 141 14.1.5 測試5:在多文件中找到 單詞 141 14.1.6 測試6:消除重復的 匹配(Matches) 142 14.1.7 測試7:引入排序 143 14.1.8 測試8:忽略大小寫 145 14.1.9 測試9:處理標點符號 146 14.2 測試的順序 147 14.3 紅色到綠色狀態條的策略 147 14.4 挑戰 148 14.4.1 我們的代碼無法被測試 149 14.4.2 我們的代碼很特殊 150 14.4.3 測試驅動開發不是完整的 測試 150 14.4.4 從零開始 150 14.5 測試最先還是最后 151 14.6 小結 151 第 15章 測試驅動開發——Mockist風格 153 15.1 一種不同的方法 153 15.1.1 測試驅動用戶注冊 154 15.1.2 增加更多測試 158 15.2 雙環TDD 159 15.2.1 另一個反饋環 159 15.2.2 關閉周期 160 15.3 小結 160 第 16章 復制 161 16.1 復制的壞處 161 16.2 利用復制的好處 162 16.3 機械復制 163 16.3.1 拷貝、粘貼 163 16.3.2 塊拷貝、粘貼 163 16.3.3 構造函數拷貝、粘貼 164 16.3.4 方法復制 165 16.4 知識復制 166 16.4.1 不同方法中的類似功能 167 16.4.2 功能相似的類 167 16.4.3 競爭性實現 168 16.4.4 競爭性領域模型 168 16.5 小結 169 第 17章 使用測試代碼 170 17.1 測試代碼中的注釋 170 17.2 刪除測試用例 173 17.2.1 需要被刪除的主要候選者 173 17.2.2 需要被刪除的可能候選者 174 17.2.3 刪除測試用例的重要性 174 17.3 小結 175 第 18章 超越單元測試 176 18.1 單元測試以外的測試 176 18.1.1 封裝在事務內的測試 176 18.1.2 需要使用服務或組件的 測試 178 18.1.3 需要與其他系統交互的 測試 179 18.1.4 通過UI運行的測試 181 18.1.5 需要調用一個系統的測試 183 18.1.6 更多內容 184 18.2 單元測試不具備的特征 185 18.2.1 復雜性 186 18.2.2 穩定性 186
18.2.3 缺陷定位 187 18.2.4 性能 187 18.2.5 環境依賴性 188 18.2.6 目標受眾 188 18.3 實踐指南 189 18.3.1 測試的獨立性 189 18.3.2 配置 189 18.3.3 驗證 191 18.3.4 利用測試替身 191 18.3.5 決定開發者測試策略 192 18.4 小結 193 第 19章 測試思路與啟發式 194 19.1 高層注意事項 194 19.1.1 測試有效性 194 19.1.2 測試配方 194 19.1.3 抽象級別及其細節 195 19.1.4 原型 195 19.1.5 可信來源(結果判斷 依據) 196 19.2 低層注意事項 196 19.2.1 0-1-n 196 19.2.2 空值(null) 196 19.2.3 范圍 196 19.2.4 集合 196 19.2.5 異常和錯誤 197 19.2.6 數字 197 19.2.7 字符串 197 19.2.8 日期 197 19.3 小結 198 附錄A 工具和庫 199 附錄B 源代碼 201 詞匯表 209 后記:忘卻測試是為了更好的開發 216
|
序: |
|