本書共13章,前兩章闡述了軟件測試的過程和管理、軟件測試的標準和文檔等軟件測試領域的基礎原理,第3章引入了時下比較熱門的Web應用軟件測試,前三章是基礎內容的闡述,使讀者形成軟件測試過程管理的基本概念;從第4章開始引入自動化測試,內容囊括軟件測試自動化基礎、原理、管理及流程等基礎內容,介紹了市面上不同種類的自動化測試工具,從擴展深入的角度列舉出了自動化測試失敗的原因以及需要避免的陷阱;在第11章和第12章闡述了測試數據自動化管理的設計和案例解析過程設計;最后,擴展到主流自動化測試軟件QTP的用法。
隨著軟件測試行業在國內的蓬勃發展,軟件自動化測試引起了極大的關注。盡管軟件測試不能實現完全徹底的自動化,但是絕大部分煩瑣重復的操作轉向自動化,無論從人力資源節省,還是工作效率的角度,都無疑是明智之舉。
但是怎樣通過自動化測試個性化地生成適合企業內部需求的自動化是比較關鍵的問題。在功能測試自動化及性能測試自動化等領域,企業可以依靠強大的第三方測試工具作為解決方案,例如QTP、WinRunner、Selenium等,但在具體實踐中,企業依靠某個單一的工具,很難較為成功地實施自動化測試。這種困難來源于兩方面的因素: 第一是理論與實踐的沖突。自動化測試的理論賦予我們將測試工作自動化的便利,但伴隨這種便利而來的是實踐過程中并不能完整地解決測試質量與效率、投入與產出等一系列現實因素之間存在的矛盾。也就是說,自動化測試工具所能實現的自動化只是測試實施的一部分,并不完備。第二是自動化測試人員產出的腳本如果沒有測試框架的規范和指導,也不具有什么現實意義。在企業自動化測試實踐中,往往需要首先創建一個完整而務實的自動化測試框架,據以真正地實現高效、高質量的自動化測試。
本書特色
本書以軟件測試過程管理基礎知識、Web應用軟件測試、軟件測試自動化基礎及原理,以及流程控制等方方面面的內容為基礎,介紹了市面上不同種類的自動化測試工具以及自動化測試關鍵點和管理方法,以測試數據的自動化設計以及整個案例解析技術的流程來實現全文構思,通過實用性強的知識論述企業中的軟件自動化測試實施。該書中涉及的案例大多來自于企業實踐,在實用性上無疑是非常具有優勢的。讀者通過對本書內容的學習,不但能獲取到軟件自動化測試的基本知識,還能掌握很多軟件自動化測試的實用技能。
本書組織
本書前兩章闡述了軟件測試的過程和管理、軟件測試的標準和文檔等軟件測試領域里的基礎原理,第3章引入了時下比較熱門的Web應用軟件測試。前三章是基礎內容的闡述,使讀者形成軟件測試過程管理的基本概念,從第4章開始引入自動化測試。第4~10章屬于對自動化測試基礎原理及測試特點討論的范疇,討論了自動化測試的基礎原理與方法、自動化測試類型、自動化測試工具及流程、自動化測試的管理,以及在自動化測試中需要注意避免的誤區。第11章專門討論了在軟件自動化測試中,如何實現測試過程中的數據管理。第12、13章則實際地闡述企業中自動化測試的過程,第12章由案例解析技術入手,討論自動化實踐過程中的設計、腳本形成、數據處理等問題,第13章則介紹了主流自動化測試工具——QTP的使用方法。
本書由李千目主編,陶傳奇、劉曉遷、張宏、張功萱副主編。何光明、王珊珊、盧振俠、石雅琴、楊橙、陳莉萍、陳鳳、曹冬梅等也參與了本書的資料收集、校對等工作。
作者
2015年2月
第1章軟件測試過程和管理/1
1.1軟件測試過程/1
1.1.1測試過程的概念/1
1.1.2測試過程的抽象模型/1
1.1.3測試階段中的測試活動/2
1.2測試過程組織與管理/2
1.2.1軟件測試過程管理的特點/2
1.2.2軟件測試過程管理的原則/3
1.2.3軟件測試過程的人員組織/3
1.3測試計劃的制訂/4
1.3.1測試計劃的整體目標/4
1.3.2定義軟件測試項目的標準/4
1.3.3測試實施策略的制定/4
1.3.4測試計劃活動的細分/5
1.3.5測試計劃的要點/5
1.3.6編制測試計劃的技巧/5
1.4測試方案的確定/6
1.4.1軟件測試設計和開發主要內容/6
1.4.2軟件測試設計要點/6
1.4.3測試用例的設計方法/6
1.4.4測試用例的管理/6
1.4.5測試開發/7
1.5測試環境管理/7
1.5.1測試環境的定義/7
1.5.2測試環境是測試的基礎/8
1.5.3測試環境的各要素/8
1.6測試執行的管理/9
1.6.1測試用例執行的跟蹤/9
1.6.2缺陷的跟蹤和管理/9
1.6.3與項目組外部人員的溝通/91.6.4測試執行結束/10
1.7測試質量分析/10
1.7.1評估系統測試的覆蓋程度/10
1.7.2軟件缺陷分析方法/11
1.8測試文檔管理/11
1.8.1測試文檔的分類管理/11
1.8.2測試文檔的存儲和共享/11
1.8.3文檔模板/11
1.9測試的復用與維護/12
1.9.1測試過程的復用與維護/12
1.9.2測試用例和軟件缺陷報告的復用/12
1.10本章小結/12第2章軟件測試的標準和文檔/13
2.1軟件測試規范/13
2.2軟件測試文檔編制規范/14
2.3本章小結/15第3章Web應用軟件測試/16
3.1Web應用軟件/16
3.1.1Web應用軟件的概念/16
3.1.2Web應用軟件的特點/16
3.1.3Web應用軟件的基本結構/16
3.1.4Web應用軟件的常用開發技術/16
3.2應用服務器的分類和特征/17
3.2.1三層和多層體系結構/17
3.2.2應用服務器的分類/17
3.2.3應用服務器對Web應用軟件測試的
影響/17
3.3Web應用軟件的測試策略/18
3.3.1表示層的測試/18
3.3.2業務層的測試/18
3.3.3數據層的測試/18
3.3.4層間的集成測試/19
3.4Web應用軟件的系統測試技術/19
3.4.1功能測試/19
3.4.2性能測試/19
3.4.3易用性測試/20
3.4.4內容測試/20
3.4.5安全性測試/20
3.4.6接口測試/20
3.5Web應用軟件的系統安全檢測與防護/21
3.5.1入侵檢測/21
3.5.2漏洞掃描/21
3.5.3安全策略/21
3.6本章小結/22第4章測試自動化設計基礎/23
4.1測試與自動化測試/23
4.1.1測試/23
4.1.2自動化測試/24
4.2測試自動化的承諾/24
4.3測試自動化的限制/25
4.3.1測試自動化無法智能化/26
4.3.2自動化測試無法完全代替手工測試/26
4.3.3測試自動化無法提升測試的有效性/26
4.3.4測試自動化將制約開發的效率/26
4.4測試自動化過程/26
4.4.1自動化測試前期過程/27
4.4.2輸入/27
4.4.3執行/28
4.4.4輸出/28
4.4.5比較/28
4.4.6缺陷發布與影像回放/28
4.5本章小結/30第5章自動化測試的原理與方法/31
5.1代碼分析/32
5.2對象識別/32
5.3捕獲和回放/33
5.4腳本技術/33
5.5自動比較技術/35
5.6本章小結/36第6章自動化測試類型/37
6.1按照開發階段劃分/37
6.1.1自動化單元測試/37
6.1.2自動化集成測試/38
6.1.3自動化系統測試/39
6.2按照主要用途劃分/41
6.2.1自動化功能測試/41
6.2.2自動化負載壓力測試/42
6.3本章小結/44第7章自動化測試流程/45
7.1自動化測試過程/45
7.2自動化測試生命周期/46
7.3本章小結/48第8章自動化測試工具/49
8.1工具類型/49
8.2選擇標準/49
8.3工具原理/50
8.4本章小結/51第9章自動化測試失敗的原因以及需要避免的陷阱/52
9.1通常RandD不重視自動化測試或手動
測試的工作/52
9.2自動化測試神話與實現/53
9.2.1自動測試計劃的生成/54
9.2.2測試工具適合所有場景/54
9.2.3測試工作立即減少/54
9.2.4計劃立即縮減/55
9.2.5工具的易用性/55
9.2.6任何應用都可以使用AST/56
9.2.7100%測試覆蓋率/57
9.2.8捕獲/回放等同AST/57
9.2.9AST是手動測試活動/58
9.2.10忘記了測試的目的是找出缺陷/58
9.2.11側重于系統測試自動化而非自動化
單元測試/59
9.3軟件開發時缺乏針對AST的考慮/59
9.3.1在應用中構建可測試性/59
9.3.2遵循開放架構標準/61
9.3.3遵循標準文檔格式/62
9.3.4標準化的測試文檔用例/62
9.3.5遵循編碼標準/63
9.3.6使用OMG的IDL/63
9.3.7GUI測試建議/63
9.3.8GUI對象命名標準/64
9.3.9代碼重用的庫概念/64
9.4不知如何選擇工具/64
9.5缺乏企業案例/66
9.6本章小結/66第10章管理自動化測試/67
10.1編寫有效的測試腳本和測試數據/67
10.2管理手工和自動化測試腳本/68
10.3測試套件維護/68
10.4本章小結/69第11章測試數據自動化管理的設計/71
11.1測試數據自動化管理設計要素/71
11.2測試數據的維度/72
11.3測試數據的分類/73
11.3.1業務數據/73
11.3.2待測的對象/74
11.4測試數據之間的關系/75
11.4.1數據的權重/75
11.4.2數據的內在約束/76
11.4.3數據的唯一性/76
11.5測試字段之間的關聯與組合/77
11.5.1字段之間的關聯/77
11.5.2字段之間的約束/79
11.5.3字段之間的組合/80
11.6測試數據設計要素/80
11.7數據運行控制/81
11.7.1手工測試數據運行控制模式/81
11.7.2測試數據關系提煉角度/81
11.7.3測試數據運行控制思維導圖/83
11.7.4數據運行控制設計所涉及的問題/84
11.8測試數據自動化設計/85
11.8.1測試數據保存約定/86
11.8.2數據字典/86
11.8.3數據運行控制模型/86
11.8.4數據關系運算模式/88
11.8.5數據關系運算/90
11.9數據處理模型的實現/93
11.9.1數據存儲層實現/93
11.9.2數據關系處理實現/100
11.9.3數據格式定義與實例調用/106
11.9.4QTP調用實例/107
11.10C#實現數據管理程序實例/109
11.10.1設計結構簡介/109
11.10.2案例管理控制過程/109
11.10.3數據關系設計/110
11.10.4數據組合生成過程/112
11.10.5自動生成用例/115
11.10.6修改用例/116
11.10.7COM數據調用接口簡介/117
11.10.8QTP即插即用接口與VBS調用
方法/119
11.11本章小結/120第12章案例解析過程設計/122
12.1初識案例解析技術/123
12.1.1案例解析技術產生的原因/123
12.1.2案例解析技術的優勢/126
12.1.3案例解析技術的缺點/127
12.2案例解析技術腳本形成要素/128
12.2.1測試腳本結構分析/129
12.2.2操作三種類型的數據分析/129
12.3案例解析技術設計藍圖/130
12.3.1案例解析技術所涵蓋的模塊/131
12.3.2案例解析技術設計結構圖/132
12.4自動化測試案例編寫規則設計/132
12.4.1自動化測試案例規則提煉/132
12.4.2自動化測試案例的規則映射/133
12.4.3自動化測試案例編寫設計/134
12.4.4自動化案例管理媒介/136
12.4.5自動化測試案例編寫的基本模式/136
12.4.6待測對象與案例關系的映射/137
12.5自動化測試對象管理/138
12.5.1獲取待測對象屬性以及對象之間
的模式/138
12.5.2對象采集的兩種策略/142
12.5.3對象的保存模式和讀取/155
12.6錯誤處理與缺陷發送/159
12.6.1傳統的錯誤處理模式/159
12.6.2錯誤處理模式的三種測試設計
技術/160
12.6.3錯誤處理程序實例講解/163
12.6.4缺陷發送處理技術/166
12.7自動化測試運行調度/172
12.7.1作業的調度/173
12.7.2調度的前置任務/174
12.7.3運行控制/176
12.7.4調度的后置任務/181
12.8本章小結/182第13章QTP基本使用方法/183
13.1QTP簡介/183
13.1.1自動化測試的好處/183
13.1.2QuickTest 工作流程/183
13.1.3QTP程序界面/184
13.1.4Mercury Tours示范網站/186
13.2錄制/執行測試腳本/187
13.2.1錄制前的準備/187
13.2.2錄制測試腳本/187
13.2.3執行測試腳本/190
13.2.4分析測試結果/191
13.3建立檢查點/193
13.3.1QuickTest 檢查點種類/193
13.3.2創建檢查點/193
13.3.3執行并分析使用檢查點的測試
腳本/198
13.4參數化/201
13.4.1參數化步驟和檢查點中的值/202
13.4.2參數種類/204
13.4.3參數化腳本測試/207
13.5輸出值/210
13.5.1創建輸出值/210
13.5.2輸出屬性值/212
13.5.3在腳本中建立輸出值/215
13.6本章小結/217
參考文獻/218