第1章 引言
1.1 讀者對象
1.2 編碼語言
1.3 軟件測試方法快速瀏覽
1.4 聯(lián)機文檔
1.5 本書包含章節(jié)
1.6 源代碼
1.7 樣式
1.8 錯誤
1.9 作者聯(lián)系方法
1.10 建議與評論
1.11 致謝
第2章 測試進階
2.1 什么是軟件測試
2.2 為什么需要軟件測試
2.3 軟件測試目的
2.4 軟件測試原則
2.4.1 盡早和不斷地測試
2.4.2 徹底的測試不可能
2.4.3 由小到大的測試范圍
2.4.4 避免檢查自己的代碼
2.4.5 追溯至用戶需求
2.4.6 考慮到各種輸入
2.4.7 錯誤集中發(fā)生現(xiàn)象
2.4.8 跟蹤測試錯誤結果
2.4.9 合理安排測試計劃
2.4.10 錯誤的關聯(lián)和依賴
2.4.11 測試結果的全面檢查
2.4.12 及時更新測試
2.5 軟件的可測試性
2.6 測試人員的素質
2.7 如何成為測試專家
2.8 測試人員最好擁有編程或者項目經驗
2.9 本章總結
第3章 認識和理解
3.1 什么是軟件BUG
3.2 測試團隊的構成
3.3 測試認識的誤區(qū)
3.3.1 測試工具和有效測試
3.3.2 測試天生是矮子
3.3.3 隨意的測試
3.3.4 測試是一種想象
3.3.5 非專業(yè)人員做測試
3.3.6 測試是簡單的事情
3.3.7 測試能保證軟件質量
3.4 單元測試概論
3.4.1 單元測試提高開發(fā)速度和質量
3.4.2 單元測試是一種設計
3.4.3 單元測試的重要性
3.4.4 哪些代碼呼喚單元測試
3.4.5 初試單元測試
3.5 單元測試的誤區(qū)
3.5.1 單元測試不是規(guī)范
3.5.2 它浪費了太多的時間
3.5.3 它僅僅是證明這些代碼做了什么
3.5.4 是不是可以不進行單元測試
3.5.5 集成測試將會抓住所有的Bug
3.5.6 成本效率不高
3.6 持續(xù)集成和測試
3.6.1 持續(xù)集成的優(yōu)點
3.6.2 集成越頻繁效果越好
3.6.3 使用配置管理工具
3.6.4 自動化創(chuàng)建過程
3.6.5 自測試的代碼
3.7 測試用例
3.7.1 測試用例構成
3.7.2 測試用例范例
3.8 軟件復審
3.8.1 軟件復審內容
3.8.2 軟件評審誤區(qū)
3.8.3 流程圖
3.8.4 復審參與角色
3.8.5 流程規(guī)約
3.9 測試自動化
3.9.1 使用測試工具的前提
3.9.2 測試自動化的績效
3.10 自動化測試的存活周期
3.10.1 中介代碼的變化
3.10.2 被測試代碼的變化
3.10.3 更深入的測試探討和研究
3.11 商業(yè)測試工具實現(xiàn)方式
3.11.1 對象識別模式
3.11.2 動作識別模式
3.11.3 兩種模式的缺陷
3.12 本章總結
第4章 敏捷測試
4.1 軟件的開發(fā)模式
4.1.1 瀑布模型
4.1.2 迭代模型
4.1.3 螺旋迭代模型
4.2 敏捷測試的存在理由
4.2.1 敏捷測試的價值觀
4.2.2 敏捷測試的原則
4.2.3 敏捷測試的實踐
4.2.4 敏捷測試是(不是)什么
4.2.5 測試何時是敏捷的
4.2.6 敏捷測試何時是有(沒有)意義的
4.2.7 想成為一個敏捷測試者嗎
4.2.8 敏捷測試團隊的構成
4.3 敏捷測試涉及角色
4.3.1 測試經理
4.3.2 測試分析員
4.3.3 測試設計員
4.3.4 測試員
4.3.5 測試工具開發(fā)員
4.4 敏捷測試成熟度
4.4.1 初始階段(I級)
4.4.2 已定義階段(II級)
4.4.3 可持續(xù)集成階段(III級)
4.4.4 可管理階段(IV級)
4.4.5 持續(xù)優(yōu)化階段(V級)
4.5 敏捷測試過程
4.6 本章總結
第5章 類測試
5.1 類測試概念
5.1.1 類在UML中的描述
5.1.2 類測試的組成
5.1.3 類測試和傳統(tǒng)單元測試
5.1.4 類的測試價值
5.1.5 類測試關聯(lián)人員
5.1.6 類測試用例
5.1.7 類測試的階段
5.1.8 類測試過程
5.1.9 類測試程度
5.2 確定類測試用例
5.2.1 根據前置和后置狀態(tài)確定測試用例
5.2.2 根據狀態(tài)轉換確定測試用例
5.2.3 根據代碼確定測試用例
5.3 構造類測試驅動
5.3.1 測試驅動器的構建前提
5.3.2 TestCase類設計
5.3.3 根據用例方法命名測試用例
5.3.4 根據前置條件和后置狀態(tài)命名測試用例
5.3.5 類測試代碼實例
5.3.6 測試結果
5.3.7 其他測試方式
5.4 測試構建的延伸
5.4.1 接口類的測試
5.4.2 抽象類的測試
5.4.3 抽象類測試改進
5.4.4 內類的測試
5.4.5 重載和覆蓋測試
5.4.6 異常測試
5.5 本章總結
第6章 深入淺出Junit
6.1 單元級測試概述
6.1.1 Junit單元級測試的好處
6.1.2 System.out.println是不夠的
6.1.3 成本的回收和再循環(huán)
6.2 哪里可以找到Junit
6.3 Junit的安裝和配置
6.4 自動化測試框架
6.5 Test接口
6.6 Assert靜態(tài)類
6.7 TestCase抽象類
6.8 TestResult結果類
6.9 TestSuite測試包類
6.10 TestListener監(jiān)聽者
6.11 Protectable保護接口
6.12 TestFailure失敗類
6.13 本章總結
第7章 Junit GUI和擴展
7.1 概述
7.2 Junit的運行包
7.2.1 BaseTestRunner基運行類
7.3 Junit.textui字符執(zhí)行包
7.3.1 TestRunner字符執(zhí)行類
7.4 Junit.Awtui圖形執(zhí)行包
7.4.1 TestRunner圖形執(zhí)行類
7.5 Junit.Swingui圖形執(zhí)行包
7.5.1 TestRunner圖形執(zhí)行類
7.6 Junit擴展包
7.6.1 測試結果報告
7.6.2 多線程測試處理
7.6.3 增強異常測試
7.6.4 重復測試執(zhí)行
7.6.5 額外的測試修飾
7.6.6 測試總環(huán)境初始化
7.7 Junit快速應用
7.7.1 如何運用Junit寫一個簡單測試程序
7.7.2 如何使用Junit的斷言方法
7.7.3 如何使用Junit的suite方法
7.7.4 如何使用Junit的main方法
7.7.5 如何執(zhí)行Junit測試
7.7.6 如何使用Junit初始化全局變量和實例
7.7.7 SimpleTestCase執(zhí)行后效果
7.8 本章總結
第8章 Junit和類測試
8.1 Junit測試設計原則
8.1.1 不要測試簡單的事
8.1.2 測試任何可能出現(xiàn)錯誤的地方
8.1.3 測試邊界條件
8.1.4 作為詳細設計文檔和類文檔的衍生
8.1.5 自動化
8.1.6 必須100%通過
8.1.7 測試重用
8.1.8 測試用例應該獨立
8.1.9 測試依賴于接口
8.1.10 固定類方法的調用順序
8.1.11 測試依賴于接口
8.2 類測試過程
8.2.1 構建單元級測試
8.2.2 CRC Cards
8.2.3 測試驅動復用
8.2.4 編碼重構
8.2.5 持續(xù)集成
8.3 Product CRC Cards
8.3.1 Iproduct CRC Cards
8.3.2 Product CRC Cards
8.3.3 StoreHouse CRC Cards
8.4 Product代碼
8.4.1 IProduct
8.4.2 Product類
8.4.3 StoreHouse類
8.5 Product測試
8.5.1 測試計劃
8.5.2 測試數據
8.5.3 測試驅動代碼
8.5.4 輔助說明
8.6 本章總結
第9章 Junit測試的延伸
9.1 錄制功能點測試
9.2 抽象類測試(一)
9.3 抽象類測試(二)
9.4 私有方法測試
9.5 映射對象Mock
9.5.1 單元級測試和Mock
9.5.2 為什么使用Mock
9.5.3 高級測試行為
9.5.4 發(fā)現(xiàn)接口
9.5.5 Mock Objects的局限性
9.6 重構和MockObject
9.6.1 Bank類重構前
9.6.2 Bank類重構后
9.6.3 Mock Objects要點
9.6.4 Mock Objects簡單范例
9.7 異常處理
9.8 隨機測試
9.9 間隔測試
9.10 本章總結
第10章 軟件BUG和管理
10.1 軟件BUG和癌細胞
10.2 BUG的影響
10.3 BUG的產生
10.4 BUG如何穿透測試
10.5 BUG的種類
10.5.1 需求階段的BUG
10.5.2 分析.設計階段的BUG
10.5.3 實現(xiàn)階段的BUG
10.5.4 配置階段的BUG
10.5.5 短視將來的BUG
10.5.6 靜態(tài)文檔的BUG
10.6 Bug的具體分類
10.6.1 內存泄漏
10.6.2 程序運行時錯誤
10.6.3 程序語法的錯誤
10.6.4 未使用(死)代碼的錯誤(一類)
10.6.5 編碼標準的錯誤(二類)
10.6.6 命名慣例的錯誤(三類)
10.6.7 條件錯誤(一類)
10.6.8 循環(huán)錯誤(二類)
10.6.9 選擇錯誤(三類)
10.6.10 多線程錯誤
10.6.11 讀取和存儲錯誤
10.6.12 集成錯誤
10.6.13 數據類型轉換錯誤
10.6.14 版本錯誤
10.6.15 重用錯誤
10.6.16 Boolean錯誤
10.7 BUG的生命周期
10.7.1 BUG的流轉狀態(tài)關鍵字
10.7.2 BUG的嚴重等級
10.7.3 BUG的解決關鍵字
10.7.4 BUG處理的優(yōu)先等級
10.8 BUG管理流程
10.8.1 如何提交系統(tǒng)中的BUG
10.8.2 使用自動BUG報告工具
10.8.3 通過電子郵件發(fā)送BUG報告
10.8.4 BUG詳細內容信息
10.8.5 輕微的BUG報告
10.8.6 不知道歸屬的BUG
10.8.7 關閉BUG報告
10.8.8 接續(xù)的討論信息
10.8.9 列出的具有特殊意義的BUG
10.8.10 重開.重分配的BUG
10.8.11 BUG的標題(特殊)
10.9 如何有效地報告BUG
10.9.1 千萬別提“程序不好用”
10.9.2 不要盲目地報告BUG
10.9.3 讓更多的事實說話
10.9.4 別把實現(xiàn)人員當傻瓜
10.9.5 冷靜和細心
10.9.6 保持現(xiàn)場環(huán)境
10.9.7 真實的和建議的
10.9.8 提交問題的根源
10.9.9 最后的建議
10.10 本章總結
附錄A 失敗的項目
附錄B 小集市里的談話
B.1 序言
B.2 從測試文章看測試與開發(fā)
B.3 有關測試人生
B.4 關于測試到什么程度, 才能收手的問題
B.5 國外測試與國內測試的區(qū)別
B.6 如何做測試評估
B.7 作QA的就比作coding的差嗎
B.8 大家一起來討論測試的文檔
B.9 數據庫的測試
B.10 BUG如何分類
B.11 在什么時候項目提交給測試人員, 什么是最合理的
B.12 測試要有編程背景嗎
B.13 編寫測試用例
B.14 驗收測試怎么做
B.15 如何創(chuàng)建測試模型
B.16 請問作為一個測試部的負責人, 應該如何組織和開展測試工作呢
B.17 集成測試需要專門的管理軟件嗎
B.18 來討論一下測試的生命周期
B.19 經典BUG收集
B.20 大家覺得怎么做才能改變測試人員的地位
B.21 各種測試工具的主要功能和用途
B.22 測試負責人應該做些什么工作
附錄C Web性能測試工具“StressTest”
附錄D 推薦的相關書籍
D.1 序言
D.2 測試類書籍
D.3 需求分析類書籍
D.4 設計類書籍
D.5 代碼實現(xiàn)和優(yōu)化類書籍
D.6 軟件工程類書籍