品牌專區-『天使文化』
品牌專區-『悅讀紀』
品牌專區-『巨石文華〈夢想季〉』
品牌專區-『蝴蝶季』
品牌專區-『魅力‧花火』
 
166餘萬種 1.9萬
程序開發人員測試指南:構建高質量的軟件(簡體書)
程序開發人員測試指南:構建高質量的軟件(簡體書)
  • 人民幣定價:69元
  • 定  價:NT$414元
  • 優惠價: 87360
  • 可得紅利積點:10 點
  • 庫存: >5
  • 加入購物車
分享:
商品介紹
  • 商品簡介
  • 作者簡介
  • 目次
  • 本書分為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
    推薦書展
    公司簡介服務條款隱私權政策異業合作人才招募圖書館採購/編目三民禮券兌換處好站連結三民‧東大‧弘雅目錄古籍‧古典目錄