第11章 軟件測試自動化xg_第1頁
第11章 軟件測試自動化xg_第2頁
第11章 軟件測試自動化xg_第3頁
第11章 軟件測試自動化xg_第4頁
第11章 軟件測試自動化xg_第5頁
已閱讀5頁,還剩78頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第11章軟件測試自動化西安財經(jīng)學(xué)院工欲善其事,必先利其器第11章軟件測試自動化11.1測試自動化的內(nèi)涵11.2測試自動化實現(xiàn)的原理11.3測試自動化的實施11.4功能測試工具11.5性能測試工具11.6安全性測試工具11.7缺陷跟蹤系統(tǒng)11.8管理工具11.1測試自動化的內(nèi)涵11.1.1手工測試的局限性11.1.2什么是測試自動化11.1.3軟件測試自動化的優(yōu)勢測試面臨的問題測試用例會越來越多,工作量越來越大,而且許多測試用例會被不斷地重復(fù)執(zhí)行。如果由手工來完成,不僅占用很多人力資源,而且工作重復(fù)單調(diào),會影響測試人員的積極性,降低測試工作人員的熱情…怎么辦?11.1.1手工測試的局限性

通過手工測試(manualtest)無法做到覆蓋所有代碼路徑;許多與時序、死鎖、資源沖突、多線程等有關(guān)的錯誤通過手工測試很難捕捉到。在系統(tǒng)負(fù)載、性能測試時,需要模擬大量數(shù)據(jù)、或大量并發(fā)用戶等各種應(yīng)用場合時,也很難通過手工測試來進行。在進行系統(tǒng)可靠性時,需要模擬系統(tǒng)運行十年、幾十年,以驗證系統(tǒng)能否穩(wěn)定運行,也是手工測試無法模擬的。如果有大量(幾千)的測試用例,需要在短時間內(nèi)完成,手工測試又怎么辦呢?測試可以發(fā)現(xiàn)錯誤,并不能表明程序的正確性。

11.1.2什么是測試自動化自動化測試=測試工具?用測試工具執(zhí)行測試的過程?

用工具完成測試任務(wù)?自動化測試(automatedtest)是相對手工測試而存在的一個概念,由手工逐個地運行測試用例的操作過程被測試工具自動執(zhí)行的過程所代替。測試工具的使用是自動化測試的主要特征自動化測試vs.測試自動化自動化測試焦點集中在測試執(zhí)行,主要是由測試工具自動地完成測試。測試自動化指“一切可以由計算機系統(tǒng)自動完成的測試任務(wù)都已經(jīng)由計算機系統(tǒng)或軟件工具、程序來承擔(dān)并自動執(zhí)行”。自動化測試vs.測試自動化........測試自動化

理念

全過程

所有測試活動包括測試設(shè)計

測試管理........自動化測試

測試工具測試執(zhí)行

單項活動

自動運行的速度快,是手工無法相比的。測試結(jié)果準(zhǔn)確。例如搜索用時及時是0.33秒或0.24秒,系統(tǒng)都會發(fā)現(xiàn)問題,不會忽視任何差異高復(fù)用性。一旦完成所用的測試腳本,可以一勞永逸運行很多遍永不疲勞可靠獨特的能力11.1.3軟件測試自動化的優(yōu)勢自動化測試帶來的好處測試周期縮短更高質(zhì)量的產(chǎn)品軟件過程更規(guī)范高昂的團隊士氣節(jié)省人力資源,降低企業(yè)成本充分利用硬件資源,降低企業(yè)成本。手工測試

發(fā)現(xiàn)缺陷率高容易實施創(chuàng)造性、靈活性

覆蓋率量化困難

重復(fù)測試效率低不一致性、可靠性低依賴人力資源

高效率(速度)高復(fù)用性覆蓋率容易度量準(zhǔn)確、可靠不知疲勞激勵團隊士氣

機械、難以發(fā)現(xiàn)缺陷一次性投入大自動測試手工測試vs.自動測試正確認(rèn)識測試自動化不現(xiàn)實的期望注定測試自動化的失敗測試自動化能:顯著降低重復(fù)手工測試的時間建立可靠、重復(fù)的測試,減少認(rèn)為錯誤增強測試質(zhì)量和覆蓋率測試自動化不能:完全替代手工測試和手工測試工程師保證100%的測試覆蓋率彌補測試實踐的不足各自特點軟件測試自動化(TA)雖然具有很多優(yōu)點,但只是對手工測試的一種補充,TA絕不能代替手工測試,有各自的特點:在系統(tǒng)功能邏輯測試、驗收測試、適用性測試、涉及物理交互性測試時,多采用黑盒測試的手工測試方法;單元測試、集成測試、系統(tǒng)負(fù)載或性能、穩(wěn)定性、可靠性測試等比較適合采用TA;對那種不穩(wěn)定軟件的測試、開發(fā)周期很短的軟件、一次性的軟件等不適合測試自動化工具本身并沒有想象力和靈活性,根據(jù)經(jīng)驗報道,自動測試只能發(fā)現(xiàn)15%的缺陷,而手工測試可以發(fā)現(xiàn)85%的缺陷;TA工具在進行功能測試時,其準(zhǔn)確的含義是回歸測試工具,因為工具不能發(fā)現(xiàn)更多的新問題,但可以保證對已經(jīng)測試過部分進行測試的準(zhǔn)確性和客觀性11.2測試自動化實現(xiàn)的原理11.2.1代碼分析 11.2.2對象識別 11.2.3腳本技術(shù)11.2.4自動比較技術(shù)11.2.5測試自動化系統(tǒng)的構(gòu)成測試自動化的原理和方法

代碼分析:類似于高級編譯系統(tǒng),在工具中定義類/對象/函數(shù)/變量等定義規(guī)則、語法規(guī)則等,在分析時對代碼進行語法掃描,找出不符合編碼規(guī)范的地方。捕獲和回放:代碼分析是一種白盒測試的自動化方法,捕獲和回放則是一種黑盒測試的自動化方法。

直接編寫腳本來操作、控制、驗證對象:包括對象識別、腳本技術(shù)、對運行結(jié)果進行比較自動化測試的流程舉例保存腳本記錄執(zhí)行Log驗證測試結(jié)果啟動應(yīng)用、執(zhí)行腳本調(diào)用腳本創(chuàng)建腳本錄制對象及其操作插入驗證點調(diào)試腳本啟動應(yīng)用測試報告11.2.1代碼分析代碼的靜態(tài)分析的關(guān)鍵是建立各種規(guī)則,而這種規(guī)則的建立是依賴于相應(yīng)編程語言的語法。如依據(jù)EBNF(擴展巴科斯-諾爾范式)對Java代碼的分析。參考ParasoftJtest或C++test舉例代碼掃描編譯器規(guī)則工具11.2.2對象識別Windows對象 Mac對象WebDOM對象邏輯名稱是對象屬性之一的值數(shù)值

用于識別對象名稱Nativeclass: EditAttachedText:AgentName:Enabled: TrueFocused: TrueHeight: 20Text: HaroldWidth: 119Windows對象識別對象識別工具DOM對象的識別IEDOMInspector

DOM對象識別工具FireBug

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

線性腳本結(jié)構(gòu)化腳本關(guān)鍵字驅(qū)動腳本數(shù)據(jù)驅(qū)動測試腳本OrderIDchangeswitheachorderplacedTestFailswhencomparingstaticbaselinetodynamicdataTestPasseswhencomparingpatternbaselinetodynamicdata動態(tài)內(nèi)容匹配利用模式匹配技術(shù)來驗證數(shù)據(jù)如不是驗證“OrderID230”,而是“OrderID###”當(dāng)驗證應(yīng)用的行為時,考慮了各種不同的合法響應(yīng)另外一個例子對象映射Version1.0Version

2.0DeterminesMatch

??Tester

seesTool

sees對象庫對象庫是本地在測試結(jié)構(gòu)范圍內(nèi)存儲對像信息。對象庫例如對象(屬性)包含登陸窗口在記錄過程中捕獲的:-AgentNamefield-Passwordfield-OKbutton-Cancelbutton-Helpbutton測試自動化成本/收益分析結(jié)構(gòu)成本收益凈收益RecordingandPlayback8.3112.7Data-drivenstructureusingdatapools8.4189.6Frameworkstructure9.8155.2Framework/data-driven(hybrid)structurefocusingonviewsoftheapplicationandusingdatapools11.6197.411.2.4自動比較

靜態(tài)比較和動態(tài)比較,簡單比較和復(fù)雜比較,敏感性測試比較和健壯性測試比較,。比較過濾器

Web驗證命令的示例(Selenium)

驗證點命令對象值verifyTitleMyPageverifyValuenameFieldJohnSmithverifySelecteddorpdown2value=js*123verifyTextPresentYouarenowloggedin

verifyAttributetxt1@classbigAndBlodverfyVisiblepostcode

11.3測試自動化的實施11.3.1測試工具的分類 11.3.2測試工具的選擇 11.3.3測試自動化普遍存在的問題 11.3.4自動化測試的引入和應(yīng)用11.3.1測試工具的分類根據(jù)測試方法不同,分為白盒測試工具和黑盒測試工具、靜態(tài)測試工具和動態(tài)測試工具等。根據(jù)工具的來源不同,分為開源測試工具(多數(shù)是免費的)和商業(yè)測試工具、自主開發(fā)的測試工具和第三方測試工具等。根據(jù)測試的對象和目的,分為單元測試工具、功能測試工具、性能測試工具、測試管理工具等

更細(xì)的分類靜態(tài)測試工具

掃描分析:Findbugs,JTest/C++Test

規(guī)則定義動態(tài)測試工具

內(nèi)存檢測工具

錄制/回放工具

負(fù)載測試工具

監(jiān)控工具11.3.2測試工具的選擇

需求,自己特定的需求開源、商業(yè)、自己開發(fā)?功能成熟度運行環(huán)境支持、服務(wù)價格選擇流程

11.3.3測試自動化普遍存在的問題

不正確的觀念或不現(xiàn)實的期望缺乏具有良好素質(zhì)、經(jīng)驗的測試人才

測試工具本身的問題影響測試的質(zhì)量測試腳本的質(zhì)量低劣

沒有進行有效的、充分的培訓(xùn)

沒有考慮到公司的實際情況,盲目引入測試工具沒有形成一個良好的使用測試工具的環(huán)境

其它問題測試自動化項目的本質(zhì)測試自動化項目本質(zhì)上是軟件開發(fā)項目一個測試自動化項目必須具有:清晰定義并嚴(yán)格實施的過程來自組織各級的支持周密的計劃具體的設(shè)計和架構(gòu)對策

正確的認(rèn)識找準(zhǔn)測試自動化的切入點把測試腳本開發(fā)納入整個軟件開發(fā)體系軟件程序開發(fā)和測試自動化不可分離資源的合理調(diào)度測試自動化依賴測試流程和測試用例降低測試自動化的投入、提高其產(chǎn)出11.3.4自動化測試的引入和應(yīng)用

找準(zhǔn)測試自動化的切入點把測試開發(fā)納入整個軟件開發(fā)體系測試自動化依賴測試流程和測試用例軟件測試自動化的投入較大進行資源的合理調(diào)度自動化測試工作流程收集測試信息測試需求是什么?那里能得到用到的數(shù)據(jù)?建立基本測試紀(jì)錄用戶的操作核實成功回放提高基本測試插入測試點驅(qū)動測試數(shù)據(jù)整體測試關(guān)聯(lián)數(shù)據(jù)建立綜合的測試場景計劃1創(chuàng)建2核實和提高3整合4計劃自動化測試紀(jì)錄用戶操作形成基本測試對回放和測試提高自動化測試運行多種測試檢查數(shù)據(jù)流測試自動化的基本結(jié)構(gòu)機房客戶端文件服務(wù)器數(shù)據(jù)庫服務(wù)器Web服務(wù)器控制程序拷貝測試文件拷貝測試結(jié)果分派工作分派工作查詢結(jié)果Build系統(tǒng)編譯獲取測試任務(wù)、數(shù)據(jù)更新顯示軟件包發(fā)布指令11.4功能測試工具11.4.1關(guān)鍵特性 11.4.2Selenium及其應(yīng)用 11.4.3Web功能測試工具11.4.4AutoIT及其客戶端測試工具 11.4.5嵌入式測試工具

示例:QTPGUI測試工具步驟

錄制測試腳本編輯測試腳本調(diào)試腳本執(zhí)行結(jié)果分析對象識別優(yōu)化腳本驗證確定缺陷加驗證點11.4.1關(guān)鍵特性支持的腳本語言是VBScript能引用外部的VBS代碼庫支持錄制和回放的功能提供對象識別工具支持多種方法來識別對象支持抽象層和對象庫支持?jǐn)?shù)據(jù)驅(qū)動、關(guān)鍵字驅(qū)動測試腳本編輯器支持兩種視圖支持描述性編程關(guān)鍵特性(2)支持各種類型的驗證點設(shè)置環(huán)境變量錯誤現(xiàn)場恢復(fù)測試結(jié)果有多種狀態(tài)提供調(diào)試環(huán)境,以及分布式、跨平臺執(zhí)行環(huán)境對外提供了大量的API和對象、插件容錯處理機制命令行方式運行測試腳本支持遠(yuǎn)程代理程序的運行11.4.2Selenium及其應(yīng)用Selenium及其應(yīng)用適合Web應(yīng)用的測試,可直接運行在瀏覽器之上,所見即所得跨平臺,支持多操作系統(tǒng)和多種瀏覽器支持分布式應(yīng)用的測試,構(gòu)造一個完整的解決方案支持兩種開發(fā)腳本的模式testrunner(HTML文件)和driven(腳本語言編寫支持多種腳本語言,包括Java、C#、PHP、Perl、Python和Ruby等IDE界面操作演示錄制測試腳本執(zhí)行測試腳本測試結(jié)果Testrunnervs.驅(qū)動模式腳本HTML表格方式關(guān)鍵字驅(qū)動腳本Java/C#/…強大、靈活與xUnit集成Selenium測試用例開發(fā)主文件:TestRunner.html/TestRunner.htaTestsuite/case文件引擎庫js文件user-extensions.jsSelenium執(zhí)行模式11.4.3Web功能測試工具基于Web應(yīng)用的測試工具主要進行鏈接檢查、HTML檢查、Web功能和Web站點安全性等各個方面的測試。常見的Web功能測試工具

開源的Web功能測試工具MaxQ、CanooWebTest、Slimdog、WatiR、WatiN、WatiJ、FIT商業(yè)的Web功能測試工具ParasoftWebKing、SOAPtest、WebCheck、…11.4.4AutoIT及其客戶端測試工具文件與目錄詳細(xì)信息AutoIt3.exe主程序,可以解釋運行UniCode版本的腳本文件。AutoIt.exe主程序,可以解釋運行ANSI版本的腳本文件。AU3Info.exeAutoIt窗口信息工具(AutoItWindowInfoTool),識別GUI對象。Aut2Exe/Aut2ExeA.exe用于將au3腳本(UniCode/ANSI版本)編譯成exe可執(zhí)行文件Include官方提供的庫文件,提供開發(fā)腳本時所需的各種函數(shù)。AutoItX可以被嵌入到其它工具和語言中去,包含DLL版本的

AutoItv3以及ActiveX/COM

DLL界面SciTeAutoIT的腳本編輯器窗口信息工具其它客戶端測試工具開源的客戶端功能測試工具Twist、AutoHotKey、Abbot、Squish、Sahi、WebInject、Tagit、…商業(yè)的客戶端功能測試工具HPQTP、IBMRationalFunctionalTester、Robot、CompuwareTestPartner、SegueSilkTest、AdventNetQengine、OracleEmpirixe-TestSuite11.4.5嵌入式測試工具AppliedMicrosystems公司的CodeTestLDRA公司的Testbed、RTInsightProIBMRationalTestRealTime(RTRT)TeleLogic公司LogiscopeGammaRay系列產(chǎn)品

LynxReal-Timesystems公司LynxInsure++

ElviorLtd公司的MessageMaster實時地將測試信息通過網(wǎng)線/串口傳到宿主機(Host)上,并實時在線地顯示。因此,對源代碼的插裝和目標(biāo)機上的信息收集與回傳成為嵌入式測試工具要解決的關(guān)鍵問題11.5性能測試工具11.5.1JMeter及其應(yīng)用 11.5.2性能測試工具的主要特性11.5.3常見的性能測試工具11.5.1JMeter及其應(yīng)用JMeter-2JMeter-311.5.2性能測試工具的主要特性能模擬實際用戶的操作行為,記錄和回放多用戶測試中的事務(wù)處理過程,自動生成相應(yīng)的測試腳本能針對腳本進行修改,增加邏輯控制、完成參數(shù)化和數(shù)據(jù)關(guān)聯(lián)可以設(shè)置不同的應(yīng)用環(huán)境和場景,通過虛擬用戶執(zhí)行相應(yīng)的測試腳本通過系統(tǒng)監(jiān)控工具獲得系統(tǒng)性能的相關(guān)指標(biāo)的值11.5.3常見的性能測試工具HPLoadRunner開源工具Siege(/JoeDog/Siege)是一個開源的Web壓力測試和評測工具。OpenSTA,可以模擬大量的虛擬用戶來完成性能測試,并通過scrīpt來完成豐富的自定義設(shè)置。詳見/index.php。DBMonster是一個生成隨機數(shù)據(jù)、用來測試SQL數(shù)據(jù)庫的壓力測試工具,詳見http://dbmonster.kernelpanic.pl/。LoadSim——網(wǎng)絡(luò)應(yīng)用程序的負(fù)載模擬器。更多的性能測試工具,可訪問/performance.php

商業(yè)工具

HPLoadRunnerIBMRationalPerformanceTesterRadviewWebLoadCompuwareQA

LoadQuestBenchmarkFactory微軟WAS(WebAccessStresstest)PaesslerWebserverStressToolMINQPureLoad11.6安全性測試工具安全測試工具的評估標(biāo)準(zhǔn)支持常見的Web服務(wù)器平臺能同時提供對源代碼和二進制文件進行掃描的功能漏洞檢測和糾正分析檢測實時系統(tǒng)的問題不改變被測試的軟件,不影響代碼良好的報告非安全專業(yè)人士也易于上手可管理部署的多種掃描器、盡可能小的錯誤誤差等常見的安全性測試工具AcunetixWebVulnerabilityScanner商業(yè)級的Web漏洞掃描程序。Burpsuite可用于攻擊Web應(yīng)用程序的集成平臺,Nikto、Wikto、N-Stealth等Web服務(wù)器掃描程序。Parosproxy可評估Web應(yīng)用程序的漏洞。SPIDynamicsWebInspectWeb應(yīng)用程序掃描程序TamperIE

是一個小巧的XSS漏洞檢測輔助工具Tripwire常用的開放源碼的完整性檢查工具Wapiti由Python語言編寫的,直接對網(wǎng)頁進行掃描WatchfireAppScan商業(yè)的Web漏洞掃描程序WebScarab分析使用HTTP和HTTPS協(xié)議進行通信的應(yīng)用程序Whisker是使用LibWhisker的掃描程序,適合于HTTP測試常用的網(wǎng)絡(luò)監(jiān)控工具有Nessus、Ethereal/Wireshark、Snort、Switzerland和Netcat。11.7缺陷跟蹤系統(tǒng)基于缺陷數(shù)據(jù)庫,可統(tǒng)一數(shù)據(jù)格式、完成數(shù)據(jù)校驗,而且確保每一個缺陷不會被忽視基于數(shù)據(jù)庫系統(tǒng),有利于建立各種動態(tài)的數(shù)據(jù)報表,用于項

溫馨提示

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

最新文檔

評論

0/150

提交評論