



版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
軟件測試方法和技術
-Ch.11軟件測試自動化Zhu.Kerry@朱少民KerryZhu第一頁,共七十三頁。第十一章軟件測試自動化Zhu.Kerry@11.1測試自動化的內涵11.2測試工具的分類和選擇11.3測試工具的主流產品介紹11.4IBM-Rational產品的整體解決方案11.5MercuryInteractive產品的整體解決方案11.6Compuware產品的整體解決方案第二頁,共七十三頁。11.1測試自動化的內涵Zhu.Kerry@11.1.1為什么要軟件測試自動化11.1.2自動化測試的引入和應用11.1.3測試自動化的基本結構11.1.4測試自動化的原理和方法11.1.5測試自動化普遍存在的問題第三頁,共七十三頁。手工測試的局限性Zhu.Kerry@通過手工測試無法做到覆蓋所有代碼路徑;許多與時序、死鎖、資源沖突、多線程等有關的錯誤通過手工測試很難捕捉到在系統負載、性能測試時,需要模擬大量數據、或大量并發用戶等各種應用場合時,也很難通過手工測試來進行在進行系統可靠性時,需要模擬系統運行十年、幾十年,以驗證系統能否穩定運行,也是手工測試無法模擬的。如果有大量(幾千)的測試用例,需要在短時間內完成,手工測試又怎么辦呢?測試可以發現錯誤,并不能表明程序的正確性。
第四頁,共七十三頁。自動測試定義軟件系統功能規格書(Spec)只是從書面上的一套軟件產品是由一套完整的可運行的測試來定義的測試所有可能情況將遭遇“組合爆炸”問題Win98,WinME,WinNT,Win2k,WinXP,WinXPTablePCEd,WinXPMediaCenterEd,Longhorn,etcEnglish,German,Japanese,Chinese,Arabic,Thai…Office97,Office2000,OfficeXP,Office2003…X8632-bit,Intel64-bit,AMD64-bit,Alpha,MIPS…SQLServer6.5,SQLServer7.0,SQLServer2000…VisualStudio6,VS.NET,VS.NET2003,Whidbey…手工測試的局限性
(2)Zhu.Kerry@第五頁,共七十三頁。代碼全部CodePath測試覆蓋也幾乎不可能每一個if…else…或switch語句就會把情況增加一倍許多異常處理代碼在正常使用中不會碰到許多與時序,死鎖,資源沖突,多線程有關的錯誤很難捕捉到每一個產品都會有不同的版本外加各自的SP與QFE(QuickFixEngineering,又稱Hotfix)NT4,VS6SP1~SP5,Windows2000SP1-SP4VS.NET,SQLServerSP1–SP3可重復使用的自動測試對產品未來版本與ServicePack的測試將有事半功倍的效果手工測試的局限性(2)Zhu.Kerry@第六頁,共七十三頁。自動化測試帶來的好處1.縮短周期Testingcycle-RegressionTesting2.AttributesofTA,Speed速度Efficiency效率AccuracyandPrecise準確、精確
Relentlessness無情3.容易實施、結果可靠4.做手工不能做Zhu.Kerry@第七頁,共七十三頁。手工測試耗費時間低可靠性人力資源不一致性僅對于一次性的測試有益速度可重復覆蓋率可靠可以再度使用重復測試節省時間自動測試手工測試vs.自動測試Zhu.Kerry@第八頁,共七十三頁。正確認識測試自動化不現實的期望注定測試自動化的失敗測試自動化能:顯著降低重復手工測試的時間建立可靠、重復的測試,減少認為錯誤增強測試質量和覆蓋率測試自動化不能:完全替代手工測試和手工測試工程師保證100%的測試覆蓋率彌補測試實踐的不足Zhu.Kerry@第九頁,共七十三頁。各自特點軟件測試自動化(TA)雖然具有很多優點,但只是對手工測試的一種補充,TA絕不能代替手工測試,有各自的特點:
在系統功能邏輯測試、驗收測試、適用性測試、涉及物理交互性測試時,多采用黑盒測試的手工測試方法;單元測試、集成測試、系統負載或性能、穩定性、可靠性測試等比較適合采用TA;對那種不穩定軟件的測試、開發周期很短的軟件、一次性的軟件等不適合測試自動化工具本身并沒有想象力和靈活性,根據經驗報道,自動測試只能發現15%的缺陷,而手工測試可以發現85%的缺陷;TA工具在進行功能測試時,其準確的含義是回歸測試工具,因為工具不能發現更多的新問題,但可以保證對已經測試過部分進行測試的準確性和客觀性
Zhu.Kerry@第十頁,共七十三頁。測試自動化項目的本質定義:利用GUI自動化測試工具來開發和執行測試腳本,從而驗證是否滿足需求本質:測試自動化項目本質上是軟件開發項目一個測試自動化項目必須具有:清晰定義并嚴格實施的過程來自組織各級的支持周密的計劃具體的設計和架構Zhu.Kerry@第十一頁,共七十三頁。測試自動化成本/收益分析結構成本收益凈收益NoAutomation000RecordingandPlayback8.3112.7Data-drivenstructureusingdatapools8.4189.6Frameworkstructure9.8155.2Framework/data-driven(hybrid)structurefocusingonviewsoftheapplicationandusingdatapools11.6197.4Zhu.Kerry@第十二頁,共七十三頁。自動化測試的引入和應用找準測試自動化的切入點把測試開發納入整個軟件開發體系測試自動化依賴測試流程和測試用例軟件測試自動化的投入較大進行資源的合理調度Zhu.Kerry@第十三頁,共七十三頁。自動化測試工作流程收集測試信息測試需求是什么?那里能得到用到的數據?建立基本測試紀錄用戶的操作核實成功回放提高基本測試插入測試點驅動測試數據整體測試關聯數據建立綜合的測試場景計劃1創建2核實和提高3整合4計劃自動化測試紀錄用戶操作形成基本測試對回放和測試提高自動化測試運行多種測試檢查數據流Zhu.Kerry@第十四頁,共七十三頁。測試自動化的基本結構機房客戶端文件服務器數據庫服務器Web服務器控制程序拷貝測試文件拷貝測試結果分派工作分派工作查詢結果Build系統編譯獲取測試任務、數據更新顯示軟件包Zhu.Kerry@發布指令第十五頁,共七十三頁。測試自動化的原理和方法代碼分析:類似于高級編譯系統,在工具中定義類/對象/函數/變量等定義規則、語法規則等,在分析時對代碼進行語法掃描,找出不符合編碼規范的地方。
捕獲和回放:代碼分析是一種白盒測試的自動化方法,捕獲和回放則是一種黑盒測試的自動化方法。Zhu.Kerry@第十六頁,共七十三頁。對象識別編輯框下拉框按鈕QuickTest在支持應用中識別、確定每一個對象是什么類型復選框選擇框Zhu.Kerry@第十七頁,共七十三頁。對象識別-2邏輯名稱是對象屬性之一的值數值
用于識別對象名稱Nativeclass: EditAttachedText:AgentName:Enabled: TrueFocused: TrueHeight: 20Text: HaroldWidth: 119Zhu.Kerry@第十八頁,共七十三頁。對象識別-3對象庫是本地在測試結構范圍內
存儲對像信息.對象庫例如對象(屬性)包含登陸窗口在記錄過程中捕獲的:-AgentNamefield-Passwordfield-OKbutton-Cancelbutton-HelpbuttonZhu.Kerry@第十九頁,共七十三頁。腳本技術
線性腳本,是錄制手工執行的測試用例得到的腳本,這種腳本包含所有的擊鍵、移動、輸入數據等,所有錄制的測試用例都可以得到完整的回放。
結構化腳本,類似于結構化程序設計,具有各種邏輯結構、函數調用功能。
共享腳本,是指某個腳本可以被多個測試用例使用。
數據驅動腳本,將測試輸入存儲在獨立的(數據)文件中,而不是存儲在腳本中。
關鍵字驅動腳本,是數據驅動腳本的邏輯擴張
Zhu.Kerry@第二十頁,共七十三頁。Example-1GUIScript(.rec)Low-LevelscriptVUScript(.S)GUIShellScript(.rec)ProjectHeaderFile(.sbh)SQABasicFile(.sbl)Zhu.Kerry@第二十一頁,共七十三頁。Scriptexample-2Zhu.Kerry@第二十二頁,共七十三頁。GUIScriptstypesTS-script
Itincludethescriptwhichcannotbere-used,weoftenuseittogeneratetestlog.B-script TABuildingblock,itincludethescriptwhichcanbere-used.U-script
Usedtomakesureallcodeinafunctioncanworknormally.Zhu.Kerry@第二十三頁,共七十三頁。Samplescript'====SectionTwo-headerfile,publicvariablesandconstantsdeclarationarea================'$include"rtpCMCSanity0225_BB_X.sbh"'$Include"rtpCMC5_BB.sbh"'$include"rtpReportLog.sbh"'====SectionThree-UnittestscriptingareaforthissubroutineorfunctionSubMain
CallScript"rtpCMCSanity0225_init"
DimResultAsInteger
DimmeetingTopicAsString
'Iftherealreadyameetingmeeting,didn'tstartagain
SQASuspendLogOutput Result=WindowVP(Exists,"Caption={*"+MEETING_CLIENT_CAPTION+"*}","VP=WindowExistence;Wait=1,3")
SQAResumeLogOutput
IfResult=0Then Result=func_MiscScheduleStartMeetingSimple(PAGE_CAPTION,meetingTopic,MEETING_PASSWD)
Else …
EndIfZhu.Kerry@第二十四頁,共七十三頁。SQAGetPropertyResult=SQAGetProperty(ObjectRec,"State",CheckState) SQAGetPropertyAsString
Result=SQAGetPropertyAsString("\;Caption=Notepad-(Untitled)","WindowState",StateString)SQASetPropertySQASetProperty"Name=FirstName","Text","Michael“SQAWaitForObjectResult=SQAWaitForObject("Type=PushButton;Text=OK",120000) ObjectScriptingcommands
Zhu.Kerry@第二十五頁,共七十三頁。CheckBox CheckBoxClick,"Name=Overdraft"ComboBox,ComboListBox EditBoxHTMLDocument,HTMLImage,HTMLLinkInputKeys InputKeys"ThisisRobot.{Enter}"UserActioncommandsZhu.Kerry@第二十六頁,共七十三頁。自動比較
靜態比較和動態比較,簡單比較和復雜比較,敏感性測試比較和健壯性測試比較,。比較過濾器
Zhu.Kerry@第二十七頁,共七十三頁。ComboBoxVPEditBoxVP FileVPHTMLLinkVPHTMLDocumentVP ListViewVP WindowVP JavaListViewVP
SyntaxofWindowVPfunction:Result=
WindowVP
(action%,recMethod$,parameters$)[actioncanbeoneoffollowingvalues]
CompareImageCompareMenuComparePropertiesExists/DoesNotExist…WindowVP(CompareImage,"Caption=Paint","VP=PICT1A")Thisfunctionreturns1iftheactionperformedpassesReturn0iftheactionperformedfails.VerificationPointcommandsZhu.Kerry@第二十八頁,共七十三頁。
測試自動化普遍存在的問題
不正確的觀念或不現實的期望缺乏具有良好素質、經驗的測試人才
測試工具本身的問題影響測試的質量
沒有進行有效的、充分的培訓
沒有考慮到公司的實際情況,盲目引入測試工具沒有形成一個良好的使用測試工具的環境
其它技術問題和組織問題Zhu.Kerry@第二十九頁,共七十三頁。11.2測試工具的分類和選擇Zhu.Kerry@11.2.1測試工具的分類11.2.2測試工具的選擇測試工具是測試自動化的表現第三十頁,共七十三頁。測試工具的研究 軟件測試的過程是一項很復雜而費時的工作,它不僅執行每一個測試用例,還要設置運行環境、記錄輸出、運行后清理并記錄失敗信息。僅僅依靠測試人員手工完成是很困難的。所以必須研究測試工具以幫助測試人員自動或半自動的完成測試。 在資金和人力、時間的供給一定的條件下面,擁有好的測試工具能夠提高測試效率從而降低測試成本,則能夠選擇更高的測試充分性標準進行測試,從而提高軟件質量。Zhu.Kerry@第三十一頁,共七十三頁。測試工具的例子Zhu.Kerry@第三十二頁,共七十三頁。測試工具的分類CodeanalysisTools -Staticanalysis -DynamicanalysisTestExecutionTool -CaptureandReplay(Record&Playback) -MonitorTool -StubsandDrivers -AutomatedTestingEnvironmentTestcasegeneratorsZhu.Kerry@第三十三頁,共七十三頁。測試工具的選擇Zhu.Kerry@第三十四頁,共七十三頁。11.3測試工具的主流產品介紹
Zhu.Kerry@11.3.1面向開發的單元測試工具11.3.2負載和性能測試工具11.3.3GUI功能測試工具11.3.4基于Web應用的測試工具11.3.5軟件測試管理和其他工具第三十五頁,共七十三頁。面向開發的單元測試工具根據不同的語言進行分類:C/C++單元級測試工具PanoramaC++,C++Test,NumegaJUnit是一個開發源代碼的Java測試框架根據工具的功能特點進行分類:內存資源泄漏檢查工具:Numega中的BounceChecker,Rational的Purify等代碼覆蓋率檢查工具:Numega的TrueCoverage,Rational的PureCoverage,TeleLogic公司的Logiscope代碼性能檢查工具:Logiscope和Macabe等。軟件糾錯工具RationalPurl等。Zhu.Kerry@第三十六頁,共七十三頁。負載和性能測試工具屬性LoadRunner/MIQALoad/CompuwareWebLoad/Radview價格昂貴較貴一般安裝配置簡單簡單一般操作性較復雜簡單簡單支持測試對象各種中間件/數據庫/應用服務器的性能監控/企業架構(j2ee和.net)的測試客戶/服務器系統、企業資源配置(ERP)和電子商務應用WebApplication支持平臺windows,unix或linuxHP-UX,IBMAIX,SunSolaris,Linux,NT/2kUnixWindows支持數據庫DB2,SQLserver,Orcale,SybaseADO,DB2,Oracle,Sybase,SQLserver,OdbcADO,DB2,Oracle,Sybase,SQLserver,Odbc支持協議web,http(s),soap,streaming,wap,winsock,xmlhttp,ssl,oap,xml,streaming,mediaxml,java,ejb,activex,wap,http,snmp,real/m$streaming腳本語言類似C++C/C++和VC++Javascript自動數據生成YYY腳本調試YYY報表定制功能YYYZhu.Kerry@第三十七頁,共七十三頁。GUI功能測試工具將操作應用程序的各種動作和輸入記錄下來,包括鍵盤操作、鼠標點擊等捕捉(Record)下來,生成一個腳本文件,這個腳本以后可以被“回放(playback)”。在實際測試過程中,要根據測試需求對錄制的腳本進行一些必要的修改或加入一些參數,如選擇不同的測試數據、腳本中插入檢查點(CheckPoint)進行跟蹤調試等。基于GUI功能測試工具主要適合回歸測試階段。當一個應用開發基本完成后,程序界面基本定型,雖然業務的需求會很頻繁變化,但測試腳本結構基本不需要改動,只需要做些小調整,就可以自動運行,則可大大提高了測試的效率和測試的準確性。目前主要產品有MI公司的WinRunner,Compuware的QARun,Rational的SQARobot,MSVisualTestSuite等Zhu.Kerry@第三十八頁,共七十三頁。GUI自動化測試設計測試用例,并手工進行測試。如果測試未通過,則先改正缺陷,再次執行測試。如果測試通過,利用測試工具運行該測試過程,捕獲運行過程需要檢測的屏幕對象,并保存。在進行回歸測試測試,自動利用測試工具運行測試,并比較運行過程的屏幕對象與保存的屏幕對象比較,從而判斷測試用例是否通過。Zhu.Kerry@第三十九頁,共七十三頁。基于Web應用的測試工具基于Web應用的測試工具主要進行鏈接檢查、HTML檢查、Web功能和Web站點安全性等各個方面的測試。主要Web測試工具有MI公司的Astra
系列(如Astra
QuickTest
)、RSW公司的E-TestSuite等;Web系統測試工具:WorkBench、WebApplicationStressTool(WAS)、頁面鏈接測試LinkSleuth等。
Zhu.Kerry@第四十頁,共七十三頁。Website性能測試測什么?各種操作的響應速度最大并發用戶數最大數據容量ACT(ApplicationCenterTest)Zhu.Kerry@第四十一頁,共七十三頁。ACT測試中的常見術語RPS(RequestPerSecond)并發連接數(SimultaneousBrowserConnections)思考時間(ThinkingTime)RPS+SBC+ThinkingTime=Concurrentusers?Zhu.Kerry@第四十二頁,共七十三頁。ACT測試的步驟創建測試腳本手工編寫VBScript錄音并修改運行測試腳本設定并發用戶數設定用戶身份運行、觀察、獲取主觀體驗理解結果報告圖表各項性能統計數字日志文件Zhu.Kerry@第四十三頁,共七十三頁。解讀ACT測試結果TTFB,TTLBHTTP錯誤的含義401403404500常見的ACT結果圖線Zhu.Kerry@第四十四頁,共七十三頁。其他Web負載發生工具Microsoft'sWebApplicationStressToolCyrano'sOpenSTAQuestSoftware'sBenchmarkFactoryEmpirix'sE-TestSuite6.0RadView'sWebLoad5.0RationalSoftware'sRationalRobotMercuryInterctive'sAstraLoadRunner7.5Compuware'sQALoad4.7SegueSoftware'sSilePerformer5.0Zhu.Kerry@第四十五頁,共七十三頁。11.4Rational產品的整體解決方案Zhu.Kerry@11.4.1Rational測試產品結構11.4.2Rational全套測試解決方案的特點
TestManager:集中、可伸縮的測試管理平臺Robot:傳統應用自動化測試工具RobotJ:Web/Java自動測試工具ClearQuest:缺陷跟蹤工具第四十六頁,共七十三頁。Rational系統測試方案CoverageQuantifyPurifyPlanTestTestManagerDesignTestTestManagerImplementTestRobotRobotJTestManagerExecuteTestRobotRobotJTestManagerEvaluateTestClearQuestTestManagerChangeRequestandConfigurationManagement-ClearQuestandClearCaseLTRationalUnifiedProcessZhu.Kerry@第四十七頁,共七十三頁。TestManager:控制中心ViewResultsPassFailCoverage
reports
Generate
change
requestsTestDesignOS/VerMemDiskTestIterationsTestConfigurationsTestPlanTestCasesTestInputsAdaptersInputRobotGUI
and
VUScriptsVBor
Java
scriptsExternal
Scripts
onother
OS’sExecutionAdaptersRationalTestManagerZhu.Kerry@第四十八頁,共七十三頁。TestManager和ClearQuest集成Zhu.Kerry@第四十九頁,共七十三頁。TestManager:跨越整個測試周期
üZhu.Kerry@第五十頁,共七十三頁。自動實現缺陷與需求之間的關聯Zhu.Kerry@第五十一頁,共七十三頁。測試度量:覆蓋,趨勢等Zhu.Kerry@第五十二頁,共七十三頁。Robot
GUI的自動功能測試2.執行測試腳本OKFind執行腳本檢驗結果報告錯誤迭代1.創建測試腳本選擇測試需求錄制操作過程(面向對象錄制?)插入驗證點編輯生成的腳本(可選)
Zhu.Kerry@第五十三頁,共七十三頁。和白盒工具集成Zhu.Kerry@第五十四頁,共七十三頁。RobotJ:測試Java和Web應用ScriptAssureDynamicData
Validation技術保證了即使對象名稱發生改變,測試腳本也能正常回放驗證動態內容利用Eclipse這一標準的IDE環境,同時提供與版本控制工具的集成Professional
Language
andIDENEW
Technologyfor
JavaandWebBased
ApplicationsZhu.Kerry@第五十五頁,共七十三頁。ScriptAssure:
降低了測試腳本的維護成本Version1.0Version
2.0DeterminesMatch
??Tester
seesTool
seesZhu.Kerry@第五十六頁,共七十三頁。動態數據驗證:可伸縮的測試腳本OrderIDchangeswitheachorderplacedTestFailswhencomparingstaticbaselinetodynamicdataTestPasseswhencomparingpatternbaselinetodynamicdata動態內容匹配利用模式匹配技術來驗證數據如不是驗證“OrderID230”,而是“OrderID###”當驗證應用的行為時,考慮了各種不同的合法響應Zhu.Kerry@第五十七頁,共七十三頁。業界標準的IDE和測試腳本語言Eclipse集成環境調試器、代碼編輯器使用標準的Java語言作為測試腳本語言Zhu.Kerry@第五十八頁,共七十三頁。Zhu.Kerry@11.5.1MI產品結構11.5.2MI三個重量級產品的介紹11.5MI產品的整體解決方案第五十九頁,共七十三頁。MI產品結構Zhu.Kerry@
LoadRunnerWinRunnerTestDirectorAstraQuickTestAstraLoadTest
TopazPrism
ActiveTest
ActiveWatch測試監控軟件MSP第六十頁,共七十三頁。被測系統LoadRunner的解決方案Web服務器數據庫服務器壓力產生虛擬用戶壓力測試機解決測試資源的限制利用圖表工具分析測試結果利用錄制的腳本進行回歸測試AnalysisController運行大量的“VirtualUsers”在不同的機器上利用“VirtualUsers”代替實際測試人員通過“Controller”管理“Vusers”Zhu.Kerry@第六十一頁,共七十三頁。61LoadRunner的解決方案支持多種協議和APIZhu.Kerry@第六十二頁,共七十三頁。62LoadRunner的解決方案能夠對多種Server和資源進行監控Web服務器Web應用服務器數據庫服務器系統資源Zhu.Kerry@第六十三頁,共七十三頁。63LoadRunner的解決方案VirtualUserGenerator產生壓力和搜集測試結果生成用于“Controller”部署的“Vusers”通過圖表分析工具來編譯和顯示測試結果LoadRunnerControllerLoadRunnerAnalysis
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司接待車管理制度
- 辦公司規范管理制度
- 單位內停車管理制度
- 合伙開公司管理制度
- 小公司5s管理制度
- 小工裝公司管理制度
- 總公司餐飲管理制度
- 新高考學校管理制度
- 核醫學病人管理制度
- 檔案建立與管理制度
- 回顧性中醫醫術實踐資料(醫案)表
- 英語四級考試試題與答案
- 天津市寶坻區2022-2023學年數學五年級第二學期期末考試試題含解析
- 醫德醫風教育培訓內容【5篇】
- 2023-2024學年湖北省恩施市小學語文六年級期末評估測試題附參考答案和詳細解析
- 住院患者突發呼吸困難應急預案與處理流程
- 2021局限期小細胞肺癌放療原則、規范與進展
- 土木工程施工組織課程設計
- 大學主校區電力增容及改造工程一期(配電房增容及改造)施工組織設計
- 十字繡繡線號對照表
- 農業項目投資計劃書的范文(6篇)
評論
0/150
提交評論