第9章 自動化測試_第1頁
第9章 自動化測試_第2頁
第9章 自動化測試_第3頁
第9章 自動化測試_第4頁
第9章 自動化測試_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、第第9章章 自動化測試自動化測試人人 與與 工工 具具工欲善其事工欲善其事必先利其器必先利其器測試面臨的問題測試面臨的問題測試用例越來越多,工作量越來越大,許多測試用例會被重復執(zhí)測試用例越來越多,工作量越來越大,許多測試用例會被重復執(zhí)行。若手工完成,不僅占用很多人力資源,且工作重復單調(diào),影行。若手工完成,不僅占用很多人力資源,且工作重復單調(diào),影響積極性,降低工作熱情響積極性,降低工作熱情 怎么辦?怎么辦?自動化測試自動化測試本本 章章 內(nèi)內(nèi) 容容1 測試自動化的內(nèi)涵測試自動化的內(nèi)涵2 自動化測試的原理自動化測試的原理3 測試工具的分類和選擇測試工具的分類和選擇4 自動化測試的引入自動化測試的引

2、入本本 章章 內(nèi)內(nèi) 容容1 測試自動化的內(nèi)涵測試自動化的內(nèi)涵2 自動化測試的原理自動化測試的原理3 測試工具的分類和選擇測試工具的分類和選擇4 自動化測試的引入自動化測試的引入1 測試自動化的內(nèi)涵測試自動化的內(nèi)涵1.1 簡單的實驗簡單的實驗1.2 自動化測試的例子自動化測試的例子1.3 什么是自動化測試什么是自動化測試1.4 自動化測試的特點和優(yōu)勢自動化測試的特點和優(yōu)勢簡簡 單單 的的 實實 驗驗v批處理批處理文件文件vWord的郵件合并功能的郵件合并功能 “工具工具”“信和郵件信和郵件”“郵件合郵件合并并” Word中的宏中的宏 自動化測試的例子自動化測試的例子v先下載并安裝先下載并安裝Se

3、lenium IDE/projects/ide/ 自動化測試的例子自動化測試的例子1. 錄制操作錄制操作2. 查看腳本查看腳本3. 回放腳本回放腳本自自 動動 化化 測測 試試 (automated test)v定義:是相對手工測試(定義:是相對手工測試(manual test)而存)而存在的一個概念,由手工逐個運行測試用例的操在的一個概念,由手工逐個運行測試用例的操作過程被測試工具自動執(zhí)行的過程所代替。作過程被測試工具自動執(zhí)行的過程所代替。v主要特征:測試工具的使用主要特征:測試工具的使用自動化測試自動化測試 vs. 測試自動化測試自動化v自動化測試自

4、動化測試 焦點集中在測試執(zhí)行,主要是由測試工具焦點集中在測試執(zhí)行,主要是由測試工具自動地完成測試。自動地完成測試。v測試自動化測試自動化 一切可以由計算機系統(tǒng)自動完成的測試任一切可以由計算機系統(tǒng)自動完成的測試任務都已經(jīng)由計算機系統(tǒng)或軟件工具、程序務都已經(jīng)由計算機系統(tǒng)或軟件工具、程序來承擔并自動執(zhí)行。來承擔并自動執(zhí)行。 自動化測試自動化測試 vs. 測試自動化測試自動化.測試自動化測試自動化n 理念理念n 全過程全過程n 所有測試活動所有測試活動n 包括測試設計包括測試設計n 測試管理測試管理.自動化測試自動化測試 n 測試工具測試工具 n 測試執(zhí)行測試執(zhí)行n 單項活動單項活動手工測試的局限性手

5、工測試的局限性p無法做到覆蓋所有代碼路徑無法做到覆蓋所有代碼路徑p很難捕捉到與時序、死鎖、資源沖突、多線程等有關的錯誤很難捕捉到與時序、死鎖、資源沖突、多線程等有關的錯誤p難以實施系統(tǒng)難以實施系統(tǒng)負載負載/ /性能測試性能測試,因為需要模擬大量數(shù)據(jù)或大,因為需要模擬大量數(shù)據(jù)或大量并發(fā)用戶量并發(fā)用戶p難以實施系統(tǒng)難以實施系統(tǒng)可靠性測試可靠性測試,因為需要模擬系統(tǒng)運行十年、甚,因為需要模擬系統(tǒng)運行十年、甚至幾十年至幾十年p難以在短時間內(nèi)完成大量(如幾千個)的難以在短時間內(nèi)完成大量(如幾千個)的(回歸)測試用例(回歸)測試用例p面對測試條件組合爆炸,無能為力或效率非常低面對測試條件組合爆炸,無能為力

6、或效率非常低您的看法?您的看法?自動化測試的特點自動化測試的特點1. 速度快速度快2. 結果準確結果準確。例如搜索用時是。例如搜索用時是0.33秒,系統(tǒng)秒,系統(tǒng)都會發(fā)現(xiàn)問題,不會忽視任何差異都會發(fā)現(xiàn)問題,不會忽視任何差異3. 高復用性高復用性。一旦完成所用的測試腳本,可。一旦完成所用的測試腳本,可以一勞永逸運行很多遍以一勞永逸運行很多遍4. 永不疲勞永不疲勞 5. 可靠可靠 自動化測試帶來的好處自動化測試帶來的好處1. 測試周期縮短測試周期縮短2. 更高質(zhì)量的產(chǎn)品更高質(zhì)量的產(chǎn)品3. 軟件過程更規(guī)范軟件過程更規(guī)范4. 高昂的團隊士氣高昂的團隊士氣5. 節(jié)省人力資源節(jié)省人力資源6. 充分利用硬件資

7、源充分利用硬件資源p 發(fā)現(xiàn)缺陷率高發(fā)現(xiàn)缺陷率高p 容易實施容易實施 p 創(chuàng)造性、創(chuàng)造性、靈活性靈活性p 覆蓋率量化困難覆蓋率量化困難p 重復測試效率低重復測試效率低p 不一致性、可靠性低不一致性、可靠性低p 依賴人力資源依賴人力資源u 高效率(速度)高效率(速度)u 高復用性高復用性u 覆蓋率容易度量覆蓋率容易度量u 準確、準確、可靠可靠u 不知疲勞不知疲勞u 激勵團隊士氣激勵團隊士氣u 機械、難以發(fā)現(xiàn)缺陷機械、難以發(fā)現(xiàn)缺陷u 一次性投入大一次性投入大手工測試手工測試 vs.自動測試自動測試兩者相互補充兩者相互補充p手工測試手工測試適用于:適用于: 功能邏輯測試、驗收測試、適用性測試、交互功能

8、邏輯測試、驗收測試、適用性測試、交互性測試性測試、不穩(wěn)定且開發(fā)周期短或一次性的軟件不穩(wěn)定且開發(fā)周期短或一次性的軟件p自動測試自動測試適用于:適用于: 單元測試、集成測試、系統(tǒng)負載或性能測試、單元測試、集成測試、系統(tǒng)負載或性能測試、可靠性測試可靠性測試工具本身缺乏想象力和創(chuàng)造性工具本身缺乏想象力和創(chuàng)造性自動測試:發(fā)現(xiàn)自動測試:發(fā)現(xiàn)15%的缺陷的缺陷手工測試:發(fā)現(xiàn)手工測試:發(fā)現(xiàn)85%的缺陷的缺陷本本 章章 內(nèi)內(nèi) 容容1 測試自動化的內(nèi)涵測試自動化的內(nèi)涵2 自動化測試的原理自動化測試的原理3 測試工具的分類和選擇測試工具的分類和選擇4 自動化測試的引入自動化測試的引入2 自動化測試的原理自動化測試的

9、原理2.1 代碼分析代碼分析2.2 GUI對象識別對象識別2.3 自動比較技術自動比較技術2.4 腳本技術腳本技術自動化測試的流程舉例自動化測試的流程舉例保存腳本記錄執(zhí)行Log驗證測試結果啟動應用、執(zhí)行腳本調(diào)用腳本創(chuàng)建腳本錄制對象及其操作插入驗證點調(diào)試腳本啟動應用測試報告測試工具實現(xiàn)的原理測試工具實現(xiàn)的原理p 代碼掃描及其分析代碼掃描及其分析 p 對象識別對象識別p 捕獲和回放(捕獲和回放(record/playback)p 腳本技術腳本技術p 自動結果比較自動結果比較代代 碼碼 分分 析析v代碼的靜態(tài)分析的關鍵是代碼的靜態(tài)分析的關鍵是建立各種規(guī)則建立各種規(guī)則,而這種規(guī)則的建立是依賴于相應編程

10、語言而這種規(guī)則的建立是依賴于相應編程語言的的語法語法。如依據(jù)。如依據(jù)EBNF(擴展巴科斯(擴展巴科斯-諾爾諾爾范式)范式) 對對 Java代碼的分析。代碼的分析。v參考參考Parasoft Jtest 或或C+test代碼規(guī)則表示舉例代碼規(guī)則表示舉例代代 碼碼 掃掃 描描p 編譯器編譯器 p 規(guī)則規(guī)則p 工具工具v邏輯名稱:是對象屬性之一的值邏輯名稱:是對象屬性之一的值v數(shù)值數(shù)值:用于識別對象名稱用于識別對象名稱Nativeclass: EditAttached Text: Agent Name:Enabled: TrueFocused: TrueHeight: 20Text: HaroldW

11、idth: 119Windows對象識別對象識別Windows對象識別對象識別 2對象庫:本地在測試結構范圍內(nèi)存儲對象信息。對象庫:本地在測試結構范圍內(nèi)存儲對象信息。對象庫對象庫例如對象例如對象 (屬性屬性) 包含登陸包含登陸窗口在記錄過程中捕獲的窗口在記錄過程中捕獲的:- Agent Name field- Password field- OK button- Cancel button- Help button對象識別工具對象識別工具DOM對象的識別對象的識別IE DOM Inspector DOM對象識別工具對象識別工具FireBug 腳腳 本本 技技 術術p 線性腳本線性腳本:錄制手工

12、執(zhí)行的測試用例得到的腳本,這:錄制手工執(zhí)行的測試用例得到的腳本,這種腳本包含所有的擊鍵、移動、輸入數(shù)據(jù)等,所有錄制種腳本包含所有的擊鍵、移動、輸入數(shù)據(jù)等,所有錄制的測試用例都可以得到完整的回放。的測試用例都可以得到完整的回放。p 結構化腳本結構化腳本:類似于結構化程序設計,具有各種邏輯:類似于結構化程序設計,具有各種邏輯結構、函數(shù)調(diào)用功能。結構、函數(shù)調(diào)用功能。p 數(shù)據(jù)驅動腳本數(shù)據(jù)驅動腳本:將測試輸入存儲在獨立的(數(shù)據(jù))文:將測試輸入存儲在獨立的(數(shù)據(jù))文件中,而不是存儲在腳本中。件中,而不是存儲在腳本中。p 關鍵字驅動腳本關鍵字驅動腳本:數(shù)據(jù)驅動腳本的邏輯擴張。:數(shù)據(jù)驅動腳本的邏輯擴張。 線線

13、 性性 腳腳 本本結結 構構 化化 腳腳 本本關鍵字驅動腳本關鍵字驅動腳本數(shù)據(jù)驅動測試腳本數(shù)據(jù)驅動測試腳本Order ID changes with each order placedTest Fails when comparing static baseline to dynamic dataTest Passes when comparing pattern baseline to dynamic data動態(tài)內(nèi)容匹配動態(tài)內(nèi)容匹配利用模式匹配技術來驗證數(shù)據(jù)利用模式匹配技術來驗證數(shù)據(jù)如不是驗證如不是驗證 “Order ID 230”, 而是而是 “Order ID #” 當驗證應用的行為時

14、,考慮了各種不同的合法響應當驗證應用的行為時,考慮了各種不同的合法響應另外一個例子另外一個例子對對 象象 映映 射射Determines MatchTesterseesToolsees自自 動動 比比 較較 p 靜態(tài)比較和動態(tài)比較靜態(tài)比較和動態(tài)比較p 簡單比較和復雜比較簡單比較和復雜比較 p 敏感性測試比較和健壯性測試比較敏感性測試比較和健壯性測試比較p 比較過濾器比較過濾器Selenium中驗證命令的示例中驗證命令的示例 驗證點命令驗證點命令對象對象值值verifyTitle My Page verifyValue nameField John Smith verifySelected do

15、rpdown2 value=js*123 verifyTextPresent You are now logged in verifyAttribute txt1class bigAndBlod verfyVisible postcode ComboBoxVPEditBoxVPFileVPHTMLLinkVP HTMLDocumentVPListViewVPWindowVPJavaListViewVP Syntax of WindowVP function: Result = WindowVP (action%, recMethod$, parameters$) action can be o

16、ne of following values CompareImage CompareMenu CompareProperties Exists/DoesNotExist WindowVP (CompareImage, Caption=Paint, VP=PICT1A) This function returns 1 if the action performed passes Return 0 if the action performed fails. Robot驗證點驗證點本本 章章 內(nèi)內(nèi) 容容4.1 測試自動化的內(nèi)涵測試自動化的內(nèi)涵4.2 自動化測試的原理自動化測試的原理4.3 測試工

17、具的分類和選擇測試工具的分類和選擇4.4 自動化測試的引入自動化測試的引入各類測試工具各類測試工具1. 按測試方法分:按測試方法分: 白盒白盒和和黑盒黑盒測試工具、測試工具、靜態(tài)靜態(tài)和和動態(tài)動態(tài)測試工具測試工具2.按工具來源分:按工具來源分: 開源(多數(shù)免費)和商業(yè)測試工具、開源(多數(shù)免費)和商業(yè)測試工具、 自主開發(fā)和第三方測試工具自主開發(fā)和第三方測試工具3.按測試對象和目的分:按測試對象和目的分: 單元單元、功能功能、性能性能測試工具、測試工具、測試測試管理工具管理工具測試工具的分類測試工具的分類靜態(tài)測試工具靜態(tài)測試工具 - 掃描分析:掃描分析:Findbugs, JTest/C+Test-

18、 規(guī)則定義規(guī)則定義動態(tài)測試工具動態(tài)測試工具- 內(nèi)存檢測工具內(nèi)存檢測工具- 錄制錄制/回放工具回放工具- 負載測試工具負載測試工具- 監(jiān)控工具監(jiān)控工具商業(yè)工具解決方案商業(yè)工具解決方案v 單元測試單元測試:Parasoft JTest /C+test, PR QAC/C+、CompuWare DevPartner for Visual C+ CompuWare BounceChecker, IBM Rational PurifyPlus/PureCoverage, CompuWare TrueCoverage, TeleLogic Logiscopv 功能測試功能測試:HP QTP/WinRunn

19、er, IBM Rational Functional Tester/Robot, Segue SilkTest, Oracle Empirix e-Test Suite , Compuware Test Partner, Parasoft WebKingv 性能測試性能測試:HP LoadRunner, Borland SilkPerformer, IBM Rational Performance Tester, Radview WebLoad, Compuware QA Load開源工具解決方案開源工具解決方案v 單元測試:單元測試:JUnit & XUnit 家族家族 v 功能測試:功能

20、測試:Selenium、Abbot AutoIT/AutoHotkey v 性能測試:性能測試:JMeterv 數(shù)據(jù)庫:數(shù)據(jù)庫:DBprobev 網(wǎng)絡監(jiān)控:網(wǎng)絡監(jiān)控:Wireshark/Ethereal, Netcat, Snort DemovJUnitDemovSelenium工具選擇的過程工具選擇的過程本本 章章 內(nèi)內(nèi) 容容1 測試自動化的內(nèi)涵測試自動化的內(nèi)涵2 自動化測試的原理自動化測試的原理3 測試工具的分類和選擇測試工具的分類和選擇4 自動化測試的引入自動化測試的引入正確認識測試自動化正確認識測試自動化v不現(xiàn)實的期望注定測

21、試自動化的失敗不現(xiàn)實的期望注定測試自動化的失敗v測試自動化測試自動化能能: 顯著降低重復手工測試的時間顯著降低重復手工測試的時間 建立可靠、重復的測試,減少人為錯誤建立可靠、重復的測試,減少人為錯誤 增強測試質(zhì)量和覆蓋率增強測試質(zhì)量和覆蓋率v測試自動化測試自動化不能不能: 完全替代手工測試和手工測試工程師完全替代手工測試和手工測試工程師 保證保證100%100%的測試覆蓋率的測試覆蓋率 彌補測試實踐的不足彌補測試實踐的不足 測試自動化普遍存在的問題測試自動化普遍存在的問題p 不正確的觀念或不現(xiàn)實的期望不正確的觀念或不現(xiàn)實的期望p 缺乏具有良好素質(zhì)、經(jīng)驗的測試人才缺乏具有良好素質(zhì)、經(jīng)驗的測試人才p 測試工具本身的問題影響測試的質(zhì)量測試工具本身的問題影響測試的質(zhì)量p 測試腳本的質(zhì)量低劣測試腳本的質(zhì)量低劣p 沒有進行有效的、充分的培訓沒有進行有效的、充分的培訓p 沒有考慮到公司的實際情況,盲目引入測試工具沒有考慮到公司的實際情況,盲目引入測試工具p 沒有形成一個良好的使用測試工具的環(huán)境沒有形成一個良好的使用測試工具的環(huán)境對對 策策p 正確的認識正確的認識 p 找準測試自動化的切入點找準測試自動化的切入點p 把測試腳本開發(fā)納入整個軟件開發(fā)體系把測試腳本開發(fā)納入整個軟件開發(fā)體系p 軟件程序開發(fā)和測試自動化不可分離軟件程序開發(fā)和測試自動化不可分離 p

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論