TOP
0
0
【23號簡體館日】限時三天領券享優惠!!
程序開發人員測試指南:構建高質量的軟件(簡體書)
滿額折

程序開發人員測試指南:構建高質量的軟件(簡體書)

人民幣定價:69 元
定  價:NT$ 414 元
優惠價:87360
領券後再享88折
海外經銷商無庫存,到貨日平均30天至45天
可得紅利積點:10 點
相關商品
商品簡介
作者簡介
目次

商品簡介

本書分為19章,主要內容為開發人員測試,測試目標、方式和角色,測試術語,開發人員眼中的可測試性,契約式編程,可測試性的驅動者,單元測試,基於規格說明的測試,依賴關係,數據驅動和組合測試,准單元測試,測試替身,模擬框架,測試驅動開發――經典風格,測試驅動開發――Mockist風格,使用測試代碼,超越單元測試,測試思路等開發人員和測試人員必知必會的知識。
如果你是一個希望所寫的代碼質量更高、缺陷更少的開發人員,那麼這本書很適合你。本書介紹了如何用可測試性提升軟件質量,在各種開發模式中,可測試性都是軟件的主要質量屬性之一。閱讀本書,你可以成為更好的開發人員,學習到更多的軟件測試知識,不必再苦於沒有時間做測試、也無法從同事或團隊那裡獲得相關的支持。

作者簡介

朱少民,國內軟件測試界的領軍人物和知名專家,三十多年來一直從事軟件測試、質量管理和過程改進等工作,過去五年幫助了近百家企業提升其質量保證與測試能力,先後獲得安徽省、原機械工業部、青島市、合肥市等多項科技進步獎,出版了十多部著作,包括測試方面的暢銷書《全程軟件測試》、《軟件測試方法和技術》、《完美測試》和譯作《自動化測試最佳實踐》等,經常在國內外會議上發表演講,並在國內開設軟件測試MOOC課程。之前曾任思科-網迅(中國)軟件有限公司QA總監,目前是同濟大學軟件學院教授、中國科技大學軟件學院教指委委員。

楊曉慧,前華為技術有限公司-軟件公司測試專家,1999年進入華為公司,先後參與和主持過多項產品測試、測試流程改造、測試工程師職責定義等工作。工作覆蓋測試策略、測試設計、測試評估和過程管理等軟件測試工程的各個方面,在自動化、可靠性驗證、可服務性驗證、可測試性設計等領域上都有豐富的經驗。2007年以後主管軟件公司的測試技術架構設計、實現、應用,通過幫助產品持續積累和提升測試技術能力,實現研發的效率和質量提升。

歐陽辰,品友互動CTO。推動品友大數據智能戰略,成為程序化廣告的知名公司。加入品友之前,曾在微軟、小米和甲骨文工作:曾任小米研發總監,負責廣告和大數據平臺,曾在微軟工作十年,負責搜索和廣告平臺的核心大數據項目,持有數項國內外專利,著有《Druid實時大數據分析》。

曾樂天,博士,畢業于西安電子科技大學,現在工業和信息化部電子第五研究所(中國賽寶實驗室)從事軟件測評方面的研究工作。

目次

第 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

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 360
海外經銷商無庫存,到貨日平均30天至45天

暢銷榜

客服中心

收藏

會員專區