內容簡介
本書第三篇是眾多資深軟體工程師在軟體測試領域各大技術主題分享,展現眾多實際工作中典型的測試技巧、測試技術,不僅告訴讀者如何做,更主要是如何做得更好,向資深工程師方向發展,同時激起每個讀者對技術的不懈追求和積極動手實踐的興趣。讀者通過認真地體會這些技術細節並積極實踐後,就能夠積累豐富的實戰經驗,為今後的工作打下堅實的基礎。
本書第四篇是引導師生自己動手實踐,在實踐中不斷總結與提高。
本書適用於高校計算機及軟體工程各專業作為軟體實踐教材,也可供有興趣或正在從事軟體測試工作的人員參考。
本書以實際項目為原型,以關鍵的理論與豐富的實踐為指導,貫徹了先進的項目管理理念與全程質量管理思想。本書第一篇由眾多來自全國各大高校第一線長期從事軟體測試理論研究及考試研究的教師參與書籍的創作、組稿與審閱,目的是讓軟體測試領域核心理論知識在一個章節中完美地展示出來,方便教師的教學與學生的回顧。本書第二篇由眾多資深軟體測試工程師通過多年經驗的積累與提煉,以一個完整軟體項目為實例,對軟體測試工程師的日常工作進行詳細的介紹,幫助讀者掌握各種技術並能靈活地使用和擴展這些技術。讓每一位讀者清晰地理解作為一名軟體測試工程師需要在軟體生產流程各階段做什麼、怎么做、有哪些可以借鑑的經驗技巧與參考文檔
圖書目錄
第一篇軟體測試工程師知識籌備與成長發展
第1章本書特色與使用方法
1.1本書特色
1.2本書第3版亮點
1.3本書第1、2、3版之間的關係
1.4本書面向的讀者群體
1.5本書四大篇章之間的關係
1.6本書與市面上其他軟體實踐類書籍的主要區別
1.7如何更好地使用本書
1.8本書及其配套下載資源使用說明
1.9讀書筆記
第2章軟體測試核心理論知識串講
2.1軟體測試
2.1.1軟體測試的定義
2.1.2軟體測試的原則
2.1.3軟體測試分類
2.1.4軟體測試策略
2.2軟體測試模型
2.2.1V模型
2.2.2W模型
2.2.3X模型
2.2.4H模型
2.2.5前置模型
2.3軟體缺陷
2.3.1軟體缺陷的定義
2.3.2軟體缺陷的分類
2.4測試用例
2.4.1測試用例的定義
2.4.2測試用例設計方法
2.5軟體測試的自動化
2.5.1軟體自動化測試
2.5.2軟體測試工具分類
2.6軟體測試管理
2.6.1測試團隊建設與管理
2.6.2軟體測試過程管理
2.6.3缺陷管理
2.6.4軟體測試文檔
2.7讀書筆記
第3章軟體測試工程師的成長與發展
3.1軟體測試工程師應具備的能力和素養
3.1.1計算機專業技能
3.1.2個人能力和素養
3.2軟體測試職業發展
3.3軟體測試工程師的成長曆程
3.4讀書筆記
第二篇基於JavaEE產品線的項目實踐
第4章項目初期各階段的主要工作
4.1項目立項與擬定產品的發展方向階段
4.1.1產品需求文檔的形成及其實例
4.1.2產品需求形成階段測試工程師的工作
4.2產品規格說明書制定階段
4.2.1產品規格說明書的形成及其實例
4.2.2產品規格說明書階段測試工程師的工作
4.3產品技術文檔設計階段
4.3.1編寫技術設計文檔
4.3.2技術設計文檔階段測試工程師的工作
4.4讀書筆記
第5章軟體測試計畫的制定
5.1為何要制定測試計畫
5.2怎樣設計測試計畫
5.2.1產品基本情況調研
5.2.2測試需求說明
5.2.3計畫表
5.2.4測試資源配置
5.2.5系統風險評估
5.2.6測試的策略和記錄
5.2.7問題跟蹤報告
5.2.8測試計畫的發布
5.3測試計畫設計實例
5.4測試計畫修改與維護
5.5讀書筆記
第6章軟體測試用例的編寫
6.1白盒測試用例設計方法與案例
6.1.1邏輯覆蓋法設計案例
6.1.2基本路徑測試法案例
6.2黑盒測試用例設計案例
6.2.1等價類劃分法設計案例
6.2.2邊界值分析法設計案例
6.2.3因果圖法設計案例
6.2.4錯誤推測法設計案例
6.2.5功能圖法設計案例
6.2.6綜合法設計案例
6.2.7異常測試法設計案例
6.3壓力/性能測試設計案例
6.4安全性測試
6.4.1安全性測試的引入
6.4.2常見的Web安全性測試
6.4.3XSS測試技巧
6.5跨瀏覽器/跨平台測試設計案例
6.5.1跨瀏覽器測試設計案例
6.5.2跨平台測試設計案例
6.6本地化測試與國際化測試
6.6.1國際化測試的實例
6.6.2本地化測試的實例
6.7Accessibility測試案例
6.8如何組織和跟蹤測試用例
6.8.1組織測試用例
6.8.2測試用例的跟蹤
6.8.3測試用例的維護
6.9讀書筆記
第7章軟體項目各部門相互協作
7.1共同審閱文檔
7.2交流與溝通
7.2.1溝通的意義及項目干係人分析
7.2.2溝通與效率的關係
7.2.3溝通的一些要素
7.2.4項目中溝通運用的案例分析
7.2.5結束語
7.3讀書筆記
第8章執行測試案例並報告缺陷
8.1項目過程中各階段測試重點和策略
8.2如何報告所發現的缺陷
8.3如何儘早盡多地報告缺陷
8.4發現缺陷的基本方法
8.4.1通過邏輯覆蓋法發現的缺陷
8.4.2通過路徑覆蓋法發現的缺陷
8.4.3通過等價類劃分法發現的缺陷
8.4.4通過邊界值法發現的缺陷
8.4.5通過因果圖法發現的缺陷
8.4.6通過錯誤推測法發現的缺陷
8.4.7通過功能圖法發現的缺陷
8.4.8通過綜合法發現的缺陷
8.4.9通過異常法測試發現的缺陷
8.4.10通過壓力/性能測試發現的缺陷
8.4.11通過安全性測試發現的缺陷
8.4.12通過跨平台測試發現的缺陷
8.4.13通過跨瀏覽器測試發現的缺陷
8.4.14通過本地化與國際化測試發現的缺陷
8.4.15通過Accessibility測試發現的缺陷
8.5如何讓別人接受你報的缺陷
8.5.1缺陷為什麼不被接受
8.5.2不被接受的缺陷的狀態
8.5.3如何避免不被接受的缺陷
8.5.4如何處理不被接受的缺陷
8.6如何驗證缺陷
8.6.1哪些狀態的缺陷可以驗證
8.6.2驗證缺陷前需要做什麼
8.6.3缺陷被完全修改的標準
8.6.4如何驗證缺陷
8.6.5驗證缺陷後還需要做什麼
8.7如何分析缺陷
8.7.1什麼是缺陷分析
8.7.2缺陷分析的重要性
8.7.3收集缺陷分析的信息
8.7.4如何進行缺陷分析
8.8一個缺陷管理系統套用實例
8.8.1BugFree的安裝
8.8.2缺陷管理
8.8.3TestCase管理
8.8.4統計報表
8.9讀書筆記
第9章產品功能完善與修復缺陷階段
9.1模組功能完成並進行單元測試
9.2系統功能集成並進行整體測試
9.3產品代碼凍結
9.4產品發布前的最後檢查
9.5讀書筆記
第10章測試工程師在產品發布前後的工作
10.1如何評估軟體質量
10.2如何發布質量分析報告
10.3如何配合客戶做驗收測試
10.4如何處理客戶發現的問題
10.5讀書筆記
第三篇軟體測試領域9大專題技術分享
第11章Web測試專題技術分享
11.1Web測試的特點
11.2Web測試基礎
11.2.1獲取軟體版本號
11.2.2修改瀏覽器的代理設定
11.2.3修改hosts檔案
11.2.4測試網上付費購物
11.2.5截屏軟體FSCapture的使用
11.2.6截屏軟體Jing的使用
11.3界面測試
11.3.1文字或圖片重疊
11.3.2文字或圖片剪裁
11.3.3文字或圖片沒對齊
11.3.4重複選單項或連結
11.3.5提示信息錯誤
11.3.6界面測試其他問題
11.4功能測試
11.4.1tooltip不顯示
11.4.2JSerror問題
11.4.3頁面連結錯誤
11.4.4頁面訪問資源不可用
11.4.5出現404Error
11.4.6按鈕不工作
11.4.7功能未實現
11.4.8錯誤信息提示不合理
11.4.9資料庫訪問錯誤
11.4.10文檔無法下載
11.5表單測試
11.5.1文本框測試常見驗證點
11.5.2特殊輸入域常見驗證點
11.5.3單選按鈕常見驗證點
11.5.4複選框常見驗證點
11.5.5大塊文字區域常見驗證點
11.5.6下拉列表框常見驗證點
11.5.7排序常見驗證點
11.5.8分頁測試常見驗證點
11.5.9搜尋框填充域常見驗證點
11.5.10用戶登錄常見驗證點
11.5.11特殊字元處理常見驗證點
11.5.12轉義字元處理常見驗證點
11.5.13多次快速提交問題
11.5.14共用頁面Session問題
11.5.15頁面刷新問題
11.5.16瀏覽器“前進”/“後退”按鈕問題
11.6讀書筆記
第12章Client測試專題技術分享
12.1Client測試的特點
12.2如何進行Client測試
12.2.1安裝測試
12.2.2卸載測試
12.2.3UI測試
12.2.4功能測試
12.2.5字元輸入測試
12.2.6tooltip測試
12.2.7連結測試
12.2.8操作按鈕測試
12.2.9選單測試
12.2.10音頻測試
12.2.11視頻測試
12.2.12程式運行許可權測試
12.3如何獲取測試需要的Trace
12.4讀書筆記
第13章Mobile測試專題技術分享
13.1Mobile的特點
13.2Mobile測試基礎
13.2.1手機測試常見類型
13.2.2手機測試與傳統測試的區別
13.2.3監控手機流量
13.2.4獲取手機的Root許可權
13.3手機與計算機的聯繫
13.3.1豌豆莢的基本操作
13.3.2360手機助手的基本操作
13.3.3騰訊手機管家基本操作
13.3.4iPhone/iPad/iPadMini與計算機的聯繫
13.3.5備份手機中的數據
13.3.6截取手機螢幕內容
13.3.7記錄手機的ErrorLog
13.3.8手機數據信息
13.4手機設備自身測試
13.5手機套用軟體測試
13.6手機Web套用測試
13.7手機測試問題集錦
13.8讀書筆記
第14章國際化本地化測試專題技術分享
14.1軟體國際化
14.1.1國際化概述
14.1.2軟體國際化誤區
14.2軟體本地化
14.2.1軟體本地化概述
14.2.2軟體本地化誤區
14.3國際化軟體測試
14.3.1在本地化機器上安裝使用程式
14.3.2正確的字元集編碼
14.3.3偽本地化測試發現文本擴展問題
14.3.4測試區域文化和傳統特徵
14.3.5保證文本與代碼分離
14.4軟體本地化測試
14.4.1翻譯問題
14.4.2數據格式問題
14.4.3快捷鍵問題
14.4.4本地化後的排序問題
14.4.5常用本地化測試技巧
14.5讀書筆記
第15章跨平台跨瀏覽器專題技術分享
15.1跨平台測試的特點
15.2軟體平台的分類
15.2.1Windows平台
15.2.2Mac平台
15.2.3Linux平台
15.2.4Solaris平台
15.2.5HPUX平台
15.2.6IBMAIX平台
15.3跨平台測試需具備的知識
15.3.1Windows平台
15.3.2Mac平台
15.3.3UNIX平台
15.4跨平台測試技術分享
15.4.1應用程式安裝
15.4.2應用程式運行
15.4.3程式運行界面測試
15.4.4程式功能測試
15.5瀏覽器的分類
15.5.1IE
15.5.2Firefox
15.5.3Chrome
15.5.4Safari
15.6跨瀏覽器測試技術分享
15.7讀書筆記
第16章Web安全測試技術專題分享
16.1Web安全測試
16.1.1Web前端工具Firebug的使用
16.1.2Web前端工具Fiddler的使用
16.1.32010年Web套用十大安全攻擊
16.1.42010年與2007年Web套用十大安全攻擊對比
16.2未驗證的重定向和轉發
16.2.1攻擊說明
16.2.2攻擊舉例
16.2.3開發人員防範方法
16.3傳輸層保護不足
16.3.1攻擊說明
16.3.2攻擊舉例
16.3.3開發人員防範方法
16.4URL訪問控制不當
16.4.1攻擊說明
16.4.2攻擊舉例
16.4.3開發人員防範方法
16.5存儲不安全
16.5.1攻擊說明
16.5.2攻擊舉例
16.5.3開發人員防範方法
16.6安全配置錯誤
16.6.1攻擊說明
16.6.2攻擊舉例
16.6.3開發人員防範方法
16.7跨站請求偽造
16.7.1攻擊說明
16.7.2攻擊舉例
16.7.3開發人員防範方法
16.8不安全的對象直接引用
16.8.1攻擊說明
16.8.2攻擊舉例
16.8.3開發人員防範方法
16.9身份認證和會話管理不當
16.9.1攻擊說明
16.9.2攻擊舉例
16.9.3開發人員防範方法
16.10跨站腳本
16.10.1攻擊說明
16.10.2攻擊舉例
16.10.3開發人員防範方法
16.11注入SQL
16.11.1攻擊說明
16.11.2攻擊舉例
16.11.3開發人員防範方法
16.12開放式Web應用程式安全項目OWASP
16.12.1OWASP組織介紹
16.12.2OWASP上最新Web安全攻擊與防範技術
16.12.3WiKi上最新Web安全攻擊與防範技術
16.13讀書筆記
第17章敏捷測試專題技術分享
17.1敏捷軟體開發簡介
17.1.1敏捷開發的流程
17.1.2敏捷開發的質量管理
17.1.3敏捷開發中的關鍵概念
17.2敏捷測試的定義
17.3敏捷測試的實質
17.4敏捷測試與普通測試的區別
17.5敏捷項目測試實例介紹
17.5.1實例項目介紹
17.5.2用戶故事設計和發布計畫階段
17.5.3疊代Sprint階段
17.5.4Sprint結束和下一個Sprint開始
17.6讀書筆記
第18章軟體自動化測試專題技術分享
18.1引入自動化測試
18.2什麼是自動化測試
18.2.1自動化測試是怎樣工作的
18.2.2自動化測試的類別
18.2.3設計一個常見的自動化測試框架
18.3持續集成自動化測試
18.4自動化測試工具JMeter
18.4.1JMeter是什麼
18.4.2JMeter的安裝和運行
18.4.3JMeter自動化腳本設計策略
18.4.4抓取一個簡單的請求
18.4.5設定配置檔案
18.5設計一個簡單的腳本
18.5.1添加學生——HTTPrequest
18.5.2查看運行結果——ViewResultsTree
18.5.3訪問資料庫——JDBCRequest
18.5.4驗證測試結果——ResponseAssertion
18.5.5清理數據
18.6讀書筆記
第19章壓力與性能測試專題技術分享
19.1什麼是壓力、性能測試
19.2壓力、性能測試用例設計
19.3壓力、性能測試——JMeter
19.3.1單執行緒添加多個學生
19.3.2多執行緒添加多個學生
19.4生成和分析測試報告
19.4.1生成測試報告
19.4.2分析測試報告
19.5讀書筆記
第四篇師生動手實踐
第20章自己動手完成軟體測試實踐
20.1中心線上的網站測試實踐
20.2國內知名網站或套用測試實踐
20.3如何設計測試案例
20.3.1看清項目測試範圍
20.3.2編寫測試案例
20.4準確匯報Bug的技巧
20.4.1準確匯報Bug的幾條基本準則
20.4.2描述Bug中需要注意的事項
20.4.3在匯報英文Bug時的專業英文描述
20.4.4與外國人進行項目交流常見英文信件含義
20.5尋找軟體產品缺陷獲獎作品欣賞
20.5.1全國大學生尋找產品缺陷(FindBug)技能大賽說明
20.5.2匯報產品缺陷模板
20.5.3參賽選手提交的作品內容
20.5.4大賽組委會審閱評價
20.6讀書筆記
參考文獻
附錄A大學學籍管理系統說明書
附錄B軟體測試常見英文與中文對照描述
附錄C軟體測試工程師經典面試題與參考回答
附錄D作者與貢獻者簡介