程序開發人員測試指南 構建高質量的軟件 程序开发人员测试指南 构建高质量的软件
[瑞典]亞歷山大.塔林德
- 出版商: 人民郵電
- 出版日期: 2018-05-01
- 定價: $414
- 售價: 8.5 折 $352
- 語言: 簡體中文
- 頁數: 219
- 裝訂: 平裝
- ISBN: 7546418054
- ISBN-13: 9787115480088
-
相關分類:
程式語言、軟體工程、軟體測試
- 此書翻譯自: Developer Testing: Building Quality Into Software (Addison-Wesley Signature)
立即出貨 (庫存 < 3)
買這商品的人也買了...
-
$420$332 -
$480$379 -
$969$918 -
$207測試架構師修煉之道 : 從測試工程師到測試架構師
-
$454大話 Java 性能優化
-
$301軟件測試價值提升之路
-
$265Web API 的設計與開發 (Web API : the Good Parts)
-
$650$507 -
$250Java 測試驅動開發 (Test-Driven Java Development)
-
$165編程風格 : 好代碼的邏輯 (Exercises in Programming Style)
-
$229進化從孤膽極客到高效團隊 (Debugging Teams Better Productivity through Collaboration)
-
$330$314 -
$420$357 -
$403游戲服務器架構與優化
-
$352不測的秘密 精準測試之路
-
$580$452 -
$450$383 -
$580$458 -
$520$411 -
$1,040Practical Video Game Bots: Automating Game Processes using C++, Python, and AutoIt
-
$403Python 自動化測試入門與進階實戰
-
$480$379 -
$534$507 -
$599$569 -
$1,015架構之道 : 軟件構建的設計方法 (Righting Software)
相關主題
商品描述
本書分為19章,主要內容為開發人員測試,測試目標、方式和角色,測試術語,開發人員眼中的可測試性,契約式編程,可測試性的驅動者,單元測試,基於規格說明的測試,依賴關系,數據驅動和組合測試,準單元測試,測試替身,模擬框架,測試驅動開發——經典風格,測試驅動開發——Mockist風格,使用測試代碼,超越單元測試,測試思路等開發人員和測試人員必知必會的知識。
如果你是一個希望所寫的代碼質量更高、缺陷更少的開發人員,那麽這本書很適合你。本書介紹瞭如何用可測試性提升軟件質量,在各種開發模式中,可測試性都是軟件的主要質量屬性之一。閱讀本書,你可以成為更好的開發人員,學習到更多的軟件測試知識,不必再苦於沒有時間做測試、也無法從同事或團隊那裡獲得相關的支持。
作者簡介
作者:[瑞典]亞歷山大.塔林德( Alexander Tarlinder)譯者:朱少民楊曉慧歐陽辰曾樂天
朱少民,國內軟件測試界的領軍人物和知名專家,三十多年來一直從事軟件測試、質量管理和過程改進等工作,過去五年幫助了近百家企業提升其質量保證與測試能力,先後獲得安徽省、原機械工業部、青島市、合肥市等多項科技進步獎,出版了十多部著作,包括測試方面的暢銷書《全程軟件測試》、《軟件測試方法和技術》、《完美測試》和譯作《自動化測試最佳實踐》等,經常在國內外會議上發表演講,並在國內開設軟件測試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