編輯推薦
本書結合工具、實例代碼充分深入地講解自動化測試,填補了國內自動化功能測試方面以及QTP方面書籍的空白。
本書詳細地介紹了軟體自動化測試工具QTP——對於自動化測試工具理論和實踐的初學者,這本書是個福音!讀完本書之後,你對測試工 具QTP會有非常全面的了解。它揭開了QTP神秘的面紗。
本書結合產例,對QTP的基本功能進行了系統化的講解,對學習QTP的測試人員,是一本不錯的入門級教程。
內容簡介
本書面向使用QuickTest Professional測試工具進行自動化功能測試的測試工程師,以及希望了解自動化功能測試的測試員。本書以循序漸進的方式講解了自動化功能測試的基本知識,結合QuickTest Professional的使用,深入講解自動化測試腳本的開發,涉及目前流行的數據驅動測試方法、關鍵字驅動測試方法等方面的內容,並且詳細講解了如何使用QuickTest Professional測試Windows控制項、ActiveX控制項、VB控制項、Web控制項等。
對於希望了解和使用QuickTest Professional的外掛程式技術的測試工程師,還詳細講解了QuickTest Professional的.NET外掛程式的使用,包括利用.NET外掛程式測試.NET Windows Form、Web Form,以及最新的WPF控制項。同時還介紹了.NET外掛程式的擴展技術,以及QuickTest Professional的自動化對象模型的使用方法。
本書在講解自動化測試腳本開發知識和QuickTest Professional的使用的過程中,通過詳細的例子進行分析和講解,讓讀者可以通過例子進行理解,並且可以自己進行嘗試,非常適合獨立學習和研究自動化測試技術的初級測試工程師參考使用。
作者簡介
陳能技,廣州賽騰睿信息科技有限公司測試經驗、質量保障部主管。CSDN部落格專家、51Testing部落格專家。
畢業於廣東工業大學計算機學院。多年從事計算機軟體測試和質量改進工作,曾擔任程式設計師、測試工程師、技術支持工程師、QA、內審員等職務,具有豐富的測試團隊組建、自動化測試管理經驗。目前專注於軟體自動化測試及管理領域,倡導實用主義測試理論,堅信“Seeing is NOT believing,Testing is believing!”
圖書目錄
第1篇 自動化測試基礎篇
第1章 軟體測試基礎
1.1 軟體缺陷與軟體測試
1.1.1 軟體缺陷與硬體缺陷的異同
1.1.2 如何通過軟體測試發現軟體缺陷
1.2軟體質量與軟體測試
1.2.1 軟體質量管理在項目管理中的地位
1.2.2 軟體開發模式與軟體測試
1.2.3 軟體開發模式與自動化測試
1.2.4 軟體測試能保證軟體質量嗎
1.3 軟體開發與軟體測試
1.3.1 軟體開發與軟體測試的對立統一
1.3.2 測試人員需要的開發技術
第2章 軟體自動化測試
2.1 手工測試與自動化測試
2.1.1 手工測試的缺點
2.1.2 什麼時候使用自動化測試
2.1.3 自動化測試——你準備好了嗎
2.2 如何開展自動化測試
2.2.1 選取合適的測試項目來開展自動化測試
2.2.2 自動化測試介入的時機
2.2.3 自動化測試工程師的基本素質和技能要求
2.2.4 自動化測試的成本
2.3 自動化測試方案
2.3.1 選擇自動化測試方案
2.3.2 自動化測試腳本的編寫方法
2.3.3 線性腳本的編寫方法
2.3.4 結構化腳本的編寫方法
2.3.5 共享腳本的編寫方法
2.3.6 數據驅動腳本的編寫方法
2.3.7 關鍵字驅動腳本的編寫方法
2.3.8 合理選擇自動化測試腳本開發方法
2.4 實用性自動化測試策略
2.4.1 自動化測試工具的問題
2.4.2 自動化測試的管理規範
2.4.3 自動化測試中人的因素
第3章 軟體自動化測試工具
3.1 自動化測試工具類型
3.1.1 商業測試工具
3.1.2 開源測試工具
3.1.3 自主開發測試工具
3.2 自動化測試工具選型
3.2.1 測試工具評估
3.2.2 測試工具試用
3.2.3 自動化測試工具的培訓
3.3 自動化測試工具的原理
3.3.1 基於代碼層面的功能自動化測試工具
3.3.2 基於瀏覽器和DOM對象模型的功能自動化測試工具
3.3.3 基於GUI對象識別的測試工具原理
3.3.4 反射機制在自動化功能測試工具中的使用
3.3.5 UI Automation在自動化功能測試工具中的使用
3.3.6 QTP對象識別技術
第2篇 QTP使用基礎篇
第4章 QuickTest Professional的安裝和配置
4.1 QTP 9.2的安裝
4.1.1 安裝要求
4.1.2 QTP 9.2支持的環境和程式
4.1.3 QTP 9.2支持的外掛程式
4.1.4 安裝步驟
4.2 QTP 9.2的基本配置
4.2.1 QTP的幫助文檔
4.2.2 QTP的視頻教程
4.2.3 QTP自帶的樣例程式
4.2.4 啟動QTP
4.2.5 外掛程式載入設定與管理
4.2.6 創建一個空的測試項目
4.2.7 錄製和測試運行設定
4.2.8 指定需要錄製的應用程式
4.2.9 使用QTP編寫第一個自動化測試腳本
第5章 QuickTest Professional的基本使用方法
5.1 QTP基本功能的使用
5.1.1 QTP自動化測試的基本過程
5.1.2 在關鍵字視圖中編輯測試腳本
5.1.3 在關鍵字視圖中為測試步驟添加注釋
5.1.4 在關鍵字視圖中添加測試信息的輸出
5.1.5 插入檢查點(Checkpoint)
5.1.6 在關鍵字視圖中插入新的測試步驟
5.1.7 在專家視圖中編輯測試腳本
5.1.8 腳本編輯器的使用
5.2 編輯測試腳本
5.2.1 識別對象
5.2.2 Object Spy的使用
5.2.3 對象庫管理
5.2.4 把測試對象添加到對象庫中
5.2.5 導出對象庫檔案
5.2.6 在測試腳本中訪問對象庫的測試對象
5.2.7 添加新的Action
5.2.8 關聯Action的對象庫
5.2.9 編輯新的Action
5.2.10 在函式館中創建自定義函式
5.3 運行和調試測試腳本
5.3.1 語法檢查
5.3.2 使用斷點
5.3.3單步調試
5.3.4 調試查看器的使用
5.3.5 運行整個測試
5.3.6 運行部分測試
5.3.7 批量運行測試
5.4 分析測試結果
5.4.1 選擇測試運行結果的存儲位置
5.4.2 查看概要測試運行結果
5.4.3 查看檢查點的結果
5.4.4 查看測試過程的截屏
5.5 利用Active Screen來編輯測試腳本
5.5.1 查看Active Screen
5.5.2 Active Screen的設定
5.5.3 在Active Screen中選擇並添加對象到對象庫
5.5.4 選擇Active Screen中的對象並輸出其對象屬性
5.5.5 在Active Screen中插入檢查點
5.5.6 在Active Screen中選擇對象並添加測試步驟
第6章 QuickTest Professional與其他工具的整合
6.1 與WinRunner的整合
6.1.1 在QTP中調用WinRunner的測試腳本
6.1.2 在QTP中調用WinRunner的函式
6.2 QTP與LoadRunner的整合
6.2.1 在QTP中為LoadRunner設計測試腳本
6.2.2 使用Silent Test Runner模擬LoadRunner的調用
6.2.3 在LoadRunner中插入和運行QTP腳本
6.2.4 在LoadRunner中運行QTP腳本需要注意的幾點
第3篇 QTP腳本開發篇
第7章 關鍵字驅動測試
7.1 關鍵字驅動測試方法
7.1.1 什麼是關鍵字驅動測試方法
7.1.2 關鍵字測試驅動框架
7.1.3 關鍵字驅動實現自動化測試的階段劃分
7.1.4 什麼時候使用關鍵字驅動測試方法
7.2 可視化編輯測試步驟
7.2.1 編輯對象庫
7.2.2 選擇測試對象
7.2.3 選擇測試對象相應的操作
7.2.4 設定測試邏輯
7.3 檢查點的使用
7.3.1 為測試添加檢查點
7.3.2 檢查點類型
7.3.3 添加標準檢查點
7.3.4 添加圖像檢查點
7.3.5 添加點陣圖檢查點
7.3.6 添加表格檢查點
7.3.7 添加文本檢查點
7.3.8 添加文本區域檢查點
7.3.9 添加可訪問性檢查點
7.3.10 添加頁面檢查點
7.3.11 添加資料庫檢查點
7.3.12 添加XML檢查點
第8章 數據驅動測試
8.1 數據驅動測試方法
8.1.1 什麼時候使用數據驅動測試方法
8.1.2 數據驅動測試的一般步驟
8.2 參數化測試
8.2.1 通過參數化測試來提高測試的靈活性
8.2.2 參數化測試步驟
8.2.3 使用隨機數來進行參數化
8.2.4 參數化檢查點
8.2.5 設定數據表格疊代方式
8.3 Action測試輸入的參數化
8.3.1 編輯Action的屬性
8.3.2 添加Action的輸入參數
8.3.3 調用Action
8.4 使用環境變數的參數化
8.4.1 定義和設定環境變數
8.4.2 在測試步驟中綁定環境變數值
8.4.3 導出環境變數到XML檔案
8.4.4 導入外部環境變數檔案
8.5 使用數據驅動器來參數化測試
8.5.1 數據驅動器的使用方法
8.5.2 數據驅動嚮導
第9章 VBScript基礎
9.1 腳本語言簡介
9.1.1 Windows腳本語言
9.1.2 測試工具的“廠商語言”
9.2 VBScript語言基礎
9.2.1 VBScript的數據類型
9.2.2 變數子類型(Variant Subtypes)
9.2.3 VBScript的變數
9.2.4 VBScript的運算符
9.2.5 VBScript的條件語句
9.2.6 VBScript的循環語句
9.2.7 VBScript的Sub與Function
9.2.8 VBScript的數組
9.3 VBScript與正則表達式
9.3.1 正則表達式簡介
9.3.2 在VBScript中使用正則表達式
9.3.3 正則表達式在自動化測試中的使用
第10章 QTP測試腳本開發
第11章 QTP描述性編程 222
第12章 使用QTP測試標準Windows對象
第13章 使用QTP測試ActiveX對象
13.1 ActiveX對象的測試
13.1.1 Object屬性的使用
13.1.2 AcxUtil對象的FireEvent方法的使用
13.2 各類ActiveX控制項的測試
13.2.1 RadioButton類ActiveX控制項的測試
13.2.2 CheckBox類ActiveX控制項的測試
13.2.3 Calendar類ActiveX控制項的測試
13.2.4 Label類ActiveX控制項的測試
13.2.5 ProgressBar類ActiveX控制項的測試
13.2.6 SliderBar類ActiveX控制項的測試
13.2.7 LED類ActiveX控制項的測試
13.2.8 ListBox類ActiveX控制項的測試
第14章 使用QTP測試VB對象
14.1 Visual Basic控制項的測試
14.2 對各類VB控制項的測試
14.2.1 VbButton對象的測試
14.2.2 VbCheckBox對象的測試
14.2.3 VbComboBox對象的測試
14.2.4 VbEdit對象的測試
14.2.5 VbEditor對象的測試
14.2.6 VbFrame對象的測試
14.2.7 VbLabel對象的測試
14.2.8 VbList對象的測試
14.2.9 VbRadioButton對象的測試
14.2.10 VbScrollBar對象的測試
14.2.11 VbWindow對象的測試
第15章 使用QTP測試標準Web對象
15.1 Web對象的測試
15.1.1 載入Web外掛程式
15.1.2 Web的錄製和運行設定
15.1.3 QTP支持的瀏覽器
15.1.4 Windows Applications的錄製和運行設定
15.1.5 設定IE的“Enable Tabbed Browsering”選項
15.1.6 使用Object屬性訪問DOM對象
15.1.7 使用Browser對象控制瀏覽器的導航
15.2 對各類Web對象的測試
15.2.1 Page對象的測試
15.2.2 Frame對象的測試
15.2.3 Image對象的測試
15.2.4 Link對象的測試
15.2.5 WebButton對象的測試
15.2.6 WebCheckBox對象的測試
15.2.7 WebEdit對象的測試
15.2.8 WebFile對象的測試
15.2.9 WebList對象的測試
15.2.10 WebRadioGroup對象的測試
15.2.11 WebTable對象的測試
15.2.12 WebXML對象的測試
15.2.13 WebElement對象的測試
第4篇 QTP高級技術篇
第16章 QTP的外掛程式技術
16.1 QTP外掛程式簡介
16.1.1 查看外掛程式安裝和載入情況
16.1.2 外掛程式分離的好處
16.2 內建外掛程式與外部外掛程式
16.2.1 內建外掛程式
16.2.2 外部外掛程式
16.2.3 外掛程式的安裝
16.3 外掛程式載入與外掛程式管理
16.3.1 QTP的外掛程式載入過程分析
16.3.2 關聯QTP外掛程式與測試腳本
16.3.3 外掛程式關聯管理
16.3.4 通過編程方式啟動QTP並載入外掛程式
16.3.5 外掛程式與檢查點類型的關係
第17章 使用QTP的.NET外掛程式測試.NET平台軟體
17.1 QTP的.NET外掛程式
17.1.1 .NET外掛程式安裝與設定
17.1.2 .NET Windows Forms Spy的使用
17.1.3 利用.NET Windows Forms Spy來分析.NET控制項
17.2 測試.NET Windows Forms控制項
17.2.1 QTP支持的.NET Windows Forms控制項
17.2.2 通過Object屬性來獲取對象的內部屬性
17.2.3 通過Object屬性訪問並執行控制項方法
17.2.4 查看Object屬性的兩種方法
17.3 測試WPF控制項
17.3.1 載入WPF外掛程式
17.3.2 QTP支持的WPF控制項
17.3.3 訪問WPF控制項的內部屬性和方法
17.4 測試.NET Web Forms控制項
17.4.1 QTP支持的.NET Web Forms控制項
17.4.2 測試.NET Web Forms的程式的前提條件
17.4.3 利用Object屬性來增強.NET Web Forms程式的測試
第18章 QTP的.NET外掛程式擴展技術及其使用 323
18.1 QTP的.NET外掛程式提供的擴展模組
18.1.1 .NET外掛程式的擴展模組機制介紹
18.1.2 使用.NET Windows Forms Spy來協助開發擴展性
18.2 使用C#對QTP的.NET外掛程式進行擴展
18.2.1 安裝Custom Server模板
18.2.2 建立.NET控制項的測試擴展項目
18.2.3 實現控制項錄製邏輯
18.2.4 註冊TrackBar控制項的事件處理器
18.2.5 實現控制項的運行邏輯
18.2.6 對QTP進行配置
18.2.7 擴展項目的運行
第19章 QTP的自動化對象模型及其使用
19.1 QTP自動化對象模型簡介
19.1.1 什麼時候使用自動化對象模型庫
19.1.2 選擇開發語言和環境
19.1.3 對象模型庫基本元素
19.2 在C#中使用QTP自動化對象模型
19.2.1 引用對象庫
19.2.2 在C#中調用QTP對象模型庫
19.3 常用的自動化對象模型方法介紹
19.3.1 在C#中啟動QTP並載入指定外掛程式
19.3.2 在VBScript腳本中設定QTP選項
19.3.3 導出QTP選項設定到VBScript腳本
19.3.4 在VBScript腳本中設定QTP的環境變數
19.3.5 在VBScript腳本中設定測試運行選項
19.3.6 導出QTP測試設定到VBScript腳本中
第20章 使用QTP開發一個猴子測試工具
第21章 使用QTP測試Web Service
第22章 如何編寫高質量的QTP測試腳本
圖書章節
第1篇 自動化測試基礎篇
第1章軟體測試基礎
軟體測試是軟體質量保證的重要手段,通過軟體測試發現軟體缺陷,從而修改缺陷,提高軟體的質量水平。本章介紹軟體測試的基本知識,包括軟體缺陷與軟體測試的關係,軟體質量與軟體測試的關係,以及軟體開發與軟體測試的關係。
本章內容也是軟體自動化測試的基礎知識。
1.1 軟體缺陷與軟體測試
在軟體測試領域,至今為止,還沒有一種有效的缺陷檢測機制,可以完全發現所有的缺陷。因為軟體缺陷與硬體缺陷存在很多不同之處。
1.1.1 軟體缺陷與硬體缺陷的異同
軟體缺陷與硬體缺陷一樣,會對產品的使用方造成困擾。但是軟體缺陷在一般情況下,不會對用戶造成直接的人身傷害,所以很多人沒有意識到軟體缺陷的危害性和嚴重性。然而,在一些依賴軟體進行業務處理的領域,軟體缺陷可能造成重大的經濟損失,甚至危及人身安全,例如,2007年4月,某個軟體缺陷導致某捷運系統的列車火災,軟體未能檢測和防止剩餘動力在設備中的使用,導致列車過熱而起火。
美國標準和技術研究機構(National Institute of Standards and Technology)在2002年公布的一項關於軟體缺陷引起的經濟損失的報告中的數據表明:由於軟體缺陷造成的美國經濟損失高達595億美元。
因此,軟體缺陷與硬體缺陷一樣,可能會對用戶造成重大的損失,人們需要像對待硬體缺陷一樣重視軟體缺陷。很多硬體缺陷的出錯模式是可以預見的,而軟體缺陷的可預見性則沒有那么強。軟體缺陷的一個重要特點是它的隱蔽性,由於軟體的複雜度高、狀態空間廣闊,因此,要覆蓋軟體所有可能的行為幾乎是不可能的。