




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、軟件測試方法和技術軟件測試方法和技術 - Ch.11軟件測試自動化軟件測試自動化朱少民朱少民Kerry Zhu第十一章第十一章 軟件測試自動化軟件測試自動化11.1測試自動化的內涵測試自動化的內涵11.2 測試工具的分類和選擇測試工具的分類和選擇11.3 測試工具的主流產品介紹測試工具的主流產品介紹 11.4 IBM-Rational產品的整體解決方案產品的整體解決方案11.5 Mercury Interactive產品的整體解決方案產品的整體解決方案11.6 Compuware產品的整體解決方案產品的整體解決方案11.1測試自動化的內涵測試自動化的內涵11.1.1 為什么要軟件測試自動化為什
2、么要軟件測試自動化11.1.2 自動化測試的引入和應用自動化測試的引入和應用11.1.3 測試自動化的基本結構測試自動化的基本結構11.1.4 測試自動化的原理和方法測試自動化的原理和方法 11.1.5 測試自動化普遍存在的問題測試自動化普遍存在的問題手工測試的局限性手工測試的局限性p 通過手工測試無法做到覆蓋所有代碼路徑;p 許多與時序、死鎖、資源沖突、多線程等有關的錯誤通過手工測試很難捕捉到p 在系統負載、性能測試時,需要模擬大量數據、或大量并發用戶等各種應用場合時,也很難通過手工測試來進行p 在進行系統可靠性時,需要模擬系統運行十年、幾十年,以驗證系統能否穩定運行,也是手工測試無法模擬的
3、。p 如果有大量(幾千)的測試用例,需要在短時間內完成,手工測試又怎么辦呢?p 測試可以發現錯誤,并不能表明程序的正確性。p自動測試定義軟件系統自動測試定義軟件系統p功能規格書(Spec)只是從書面上的p一套軟件產品是由一套完整的可運行的測試來定義的p測試所有可能情況將遭遇測試所有可能情況將遭遇“組合爆炸組合爆炸”問題問題pWin98, WinME, WinNT, Win2k, WinXP, WinXP TablePC Ed, WinXP MediaCenter Ed, Longhorn, etcpEnglish, German, Japanese, Chinese, Arabic, Thai
4、pOffice 97, Office2000, Office XP, Office 2003pX86 32-bit, Intel 64-bit, AMD 64-bit, Alpha, MIPSpSQL Server 6.5, SQL Server 7.0, SQL Server 2000p Visual Studio 6, VS .NET, VS .NET 2003, Whidbey手工測試的局限性手工測試的局限性 (2)n代碼全部代碼全部Code Path測試覆蓋也幾乎不可能測試覆蓋也幾乎不可能n每一個ifelse或switch語句就會把情況增加一倍n許多異常處理代碼在正常使用中不會碰到n許
5、多與時序,死鎖,資源沖突,多線程有關的錯誤很難捕捉到n每一個產品都會有不同的版本外加各自的SP與QFE (Quick Fix Engineering, 又稱Hot fix)nNT4, VS6 SP1SP5, Windows 2000 SP1-SP4nVS .NET, SQL Server SP1 SP3n可重復使用的自動測試對產品未來版本與Service Pack的測試將有事半功倍的效果手工測試的局限性手工測試的局限性 (2)自動化測試帶來的好處自動化測試帶來的好處1. 縮短周期縮短周期 Testing cycle - Regression Testing2. Attributes of TA
6、,Speed 速度Efficiency 效率Accuracy and Precise 準確、精確 Relentlessness 無情3. 容易實施、結果可靠4. 做手工不能做手工測試手工測試 耗費時間耗費時間 低可靠性低可靠性 人力資源人力資源 不一致性不一致性 僅對于一次性的測試有益僅對于一次性的測試有益 速度速度 可重復可重復 覆蓋率覆蓋率 可靠可靠 可以再度使用可以再度使用 重復測試節省時間重復測試節省時間自動測試自動測試手工測試手工測試 vs.自動測試自動測試正確認識測試自動化正確認識測試自動化n不現實的期望注定測試自動化的失敗不現實的期望注定測試自動化的失敗n測試自動化能:測試自動化
7、能:n顯著降低重復手工測試的時間顯著降低重復手工測試的時間n建立可靠、重復的測試,減少認為錯誤建立可靠、重復的測試,減少認為錯誤n增強測試質量和覆蓋率增強測試質量和覆蓋率n測試自動化不能:測試自動化不能:n完全替代手工測試和手工測試工程師完全替代手工測試和手工測試工程師n保證保證100%的測試覆蓋率的測試覆蓋率n彌補測試實踐的不足彌補測試實踐的不足各自特點各自特點軟件測試自動化(TA)雖然具有很多優點,但只是對手工測試的一種補充,TA絕不能代替手工測試,有各自的特點:p 在系統功能邏輯測試、驗收測試、適用性測試、涉及物理交互性測試時,多采用黑盒測試的手工測試方法;p 單元測試、集成測試、系統負
8、載或性能、穩定性、可靠性測試等比較適合采用TA;p 對那種不穩定軟件的測試、開發周期很短的軟件、一次性的軟件等不適合測試自動化p 工具本身并沒有想象力和靈活性,根據經驗報道,自動測試只能發現15%的缺陷,而手工測試可以發現85%的缺陷;TA工具在進行功能測試時,其準確的含義是回歸測試工具,因為工具不能發現更多的新問題,但可以保證對已經測試過部分進行測試的準確性和客觀性測試自動化項目的本質測試自動化項目的本質p定義:定義:利用GUI自動化測試工具來開發和執行測試腳本,從而驗證是否滿足需求p本質:本質:測試自動化項目本質上是軟件開發項目p一個測試自動化項目必須具有:p清晰定義并嚴格實施的過程p來自
9、組織各級的支持p周密的計劃p具體的設計和架構測試自動化成本測試自動化成本/收益分析收益分析結構結構成本成本收益收益凈收凈收益益No Automation000Recording and Playback8.3112.7Data-driven structure using datapools8.4189.6Framework structure9.8155.2Framework / data-driven (hybrid) structure focusing on views of the application and using datapools11.6197.4自動化測試的引入和應用
10、自動化測試的引入和應用p 找準測試自動化的切入點找準測試自動化的切入點p 把測試開發納入整個軟件開發體系把測試開發納入整個軟件開發體系p 測試自動化依賴測試流程和測試用例測試自動化依賴測試流程和測試用例p 軟件測試自動化的投入較大軟件測試自動化的投入較大p 進行資源的合理調度進行資源的合理調度自動化測試工作流程自動化測試工作流程收集測試信息收集測試信息測試需求是什么?那里能得到用到的數據?建立基本測試建立基本測試紀錄用戶的操作核實成功回放提高基本測試提高基本測試插入測試點驅動測試數據整體測試整體測試關聯數據建立綜合的測試場景計劃計劃1創建創建2核實核實 和和 提高提高3整合整合4計劃自動化測試
11、計劃自動化測試紀錄用戶操作形紀錄用戶操作形成基本測試成基本測試對對 回放回放 和和 測試測試提高自動化測試提高自動化測試運行多種測試檢運行多種測試檢查數據流查數據流測試自動化的基本結構測試自動化的基本結構機房客戶端文件服務器數據庫服務器Web服務器 控制程序拷貝測試文件拷貝測試結果分派工作分派工作查詢結果Build系統編譯獲取測試任務、數據更新顯示軟件包發布指令測試自動化的原理和方法測試自動化的原理和方法p 代碼分析代碼分析: : 類似于高級編譯系統,在工具中定義類類似于高級編譯系統,在工具中定義類/對象/函數/變量等定義規則、語法規則等,在分析時對代碼進行語法掃描,找出不符合編碼規范的地方。
12、p 捕獲和回放捕獲和回放: : 代碼分析是一種白盒測試的自動化方法,代碼分析是一種白盒測試的自動化方法,捕獲和回放則是一種黑盒測試的自動化方法。對象識別對象識別編輯框編輯框下拉框下拉框按鈕按鈕QuickTest 在支持應用中識別、確定每一個對象是什么類型復選框復選框選擇框選擇框對象識別對象識別 2n邏輯名稱是對象屬性之一的值邏輯名稱是對象屬性之一的值n數值數值 用于識別對象名稱用于識別對象名稱Nativeclass: EditAttached Text: Agent Name:Enabled: TrueFocused: TrueHeight: 20Text: HaroldWidth: 119對
13、象識別對象識別 3對象庫 是本地在測試結構范圍內 存儲對像信息.對象庫對象庫例如對象 (屬性) 包含登陸窗口在記錄過程中捕獲的:- Agent Name field- Password field- OK button- Cancel button- Help button腳本技術腳本技術p 線性腳本線性腳本,是錄制手工執行的測試用例得到的腳本,這種腳本包含所有的擊鍵、移動、輸入數據等,所有錄制的測試用例都可以得到完整的回放。p 結構化腳本結構化腳本,類似于結構化程序設計,具有各種邏輯結構、函數調用功能。p 共享腳本共享腳本,是指某個腳本可以被多個測試用例使用。p 數據驅動腳本數據驅動腳本,將
14、測試輸入存儲在獨立的(數據)文件中,而不是存儲在腳本中。p 關鍵字驅動腳本關鍵字驅動腳本,是數據驅動腳本的邏輯擴張Example -1GUI Script (.rec)Low-Level scriptVU Script (.S)GUI Shell Script (.rec)Project Header File (.sbh)SQABasic File (.sbl)Script example -2GUI Scripts typesTS-scriptIt include the script which can not be re-used, we often use it to generat
15、e test log.B-scriptTA Building block, it include the script which can be re-used.U-scriptUsed to make sure all code in a function can work normally.Sample script=Section Two - header file, public variables and constants declaration area= $include rtpCMCSanity0225_BB_X.sbh$Include rtpCMC5_BB.sbh$incl
16、ude rtpReportLog.sbh=Section Three - Unit test scripting area for this subroutine or function Sub Main CallScript rtpCMCSanity0225_init Dim Result As Integer Dim meetingTopic As String If there already a meeting meeting, didnt start again SQASuspendLogOutput Result = WindowVP (Exists, Caption=* +MEE
17、TING_CLIENT_CAPTION+ *, VP=Window Existence;Wait=1,3) SQAResumeLogOutput If Result = 0 ThenResult = func_MiscScheduleStartMeetingSimple (PAGE_CAPTION, meetingTopic, MEETING_PASSWD)ElseEnd IfSQAGetProperty Result = SQAGetProperty (ObjectRec, State, CheckState)SQAGetPropertyAsString Result = SQAGetPro
18、pertyAsString(;Caption=Notepad - (Untitled), WindowState, StateString)SQASetProperty SQASetProperty Name=FirstName, Text, Michael“SQAWaitForObject Result = SQAWaitForObject(Type=PushButton;Text=OK, 120000)Object Scripting commands CheckBox CheckBox Click, Name=OverdraftComboBox, ComboListBoxEditBoxH
19、TMLDocument , HTMLImage , HTMLLink InputKeysInputKeys This is Robot.EnterUser Action commands自動比較自動比較 p 靜態比較和動態比較, p 簡單比較和復雜比較, p 敏感性測試比較和健壯性測試比較,。p 比較過濾器ComboBoxVPEditBoxVPFileVPHTMLLinkVP HTMLDocumentVP ListViewVPWindowVPJavaListViewVP Syntax of WindowVP function: Result = WindowVP (action%, recMe
20、thod$, parameters$) action can be one 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. Verification Point commands 測試自動化普
21、遍存在的問題測試自動化普遍存在的問題p 不正確的觀念或不現實的期望不正確的觀念或不現實的期望p 缺乏具有良好素質、經驗的測試人才缺乏具有良好素質、經驗的測試人才p 測試工具本身的問題影響測試的質量測試工具本身的問題影響測試的質量p 沒有進行有效的、充分的培訓沒有進行有效的、充分的培訓p 沒有考慮到公司的實際情況,盲目引入測試工具沒有考慮到公司的實際情況,盲目引入測試工具p 沒有形成一個良好的使用測試工具的環境沒有形成一個良好的使用測試工具的環境p 其它技術問題和組織問題其它技術問題和組織問題11.2 測試工具的分類和選擇測試工具的分類和選擇11.2.1 測試工具的分類測試工具的分類11.2.2
22、 測試工具的選擇測試工具的選擇測試工具是測試自動化的表現測試工具的研究測試工具的研究軟件測試的過程是一項很復雜而費時的工作,它不僅執行每一個測試用例,還要設置運行環境、記錄輸出、運行后清理并記錄失敗信息。僅僅依靠測試人員手工完成是很困難的。所以必須研究測試工具以幫助測試人員自動或半自動的完成測試。在資金和人力、時間的供給一定的條件下面,擁有好的測試工具能夠提高測試效率從而降低測試成本,則能夠選擇更高的測試充分性標準進行測試,從而提高軟件質量。測試工具的例子測試工具的例子測試工具的分類測試工具的分類Code analysis Tools- Static analysis- Dynamic ana
23、lysisTest Execution Tool- Capture and Replay ( Record & Playback)- Monitor Tool- Stubs and Drivers- Automated Testing EnvironmentTest case generators測試工具的選擇測試工具的選擇11.3 測試工具的主流產品介紹測試工具的主流產品介紹 11.3.1 面向開發的單元測試工具面向開發的單元測試工具11.3.2 負載和性能測試工具負載和性能測試工具11.3.3 GUI功能測試工具功能測試工具11.3.4 基于基于Web應用的測試工具應用的測試工具1
24、1.3.5 軟件測試管理和其他工具軟件測試管理和其他工具面向開發的單元測試工具面向開發的單元測試工具根據不同的語言進行分類:pC/C+單元級測試工具Panorama C+,C+Test, Numega pJUnit是一個開發源代碼的Java測試框架根據工具的功能特點進行分類:p 內存資源泄漏檢查工具:Numega中的BounceChecker, Rational的Purify等p 代碼覆蓋率檢查工具:Numega的TrueCoverage, Rational的PureCoverage,TeleLogic公司的Logiscopep 代碼性能檢查工具:Logiscope和 Macabe等。p 軟件
25、糾錯工具Rational Purl等。負載和性能測試工具負載和性能測試工具屬性屬性LoadRunner /MIQALoad /CompuwareWebLoad/Radview價格昂貴較貴一般安裝配置簡單簡單一般操作性較復雜簡單簡單支持測試對象各種中間件/數據庫/應用服務器的性能監控/企業架構(j2ee和.net)的測試客戶/服務器系統、企業資源配置(ERP)和電子商務應用Web Application支持平臺windows,unix或linuxHP-UX, IBM AIX,Sun Solaris, Linux, NT/2kUnix Windows支持數據庫DB2, SQLserver, Orc
26、ale, 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報表定制功能YYYGUI功能測試工具功能測試工具將操
27、作應用程序的各種動作和輸入記錄下來,包括鍵盤操作、鼠標點擊等捕捉(Record)下來,生成一個腳本文件,這個腳本以后可以被“回放( playback)” 。在實際測試過程中,要根據測試需求對錄制的腳本進行一些必要的修改或加入一些參數,如選擇不同的測試數據、腳本中插入檢查點(Check Point)進行跟蹤調試等。基于GUI功能測試工具主要適合回歸測試階段。當一個應用開發基本完成后,程序界面基本定型,雖然業務的需求會很頻繁變化,但測試腳本結構基本不需要改動,只需要做些小調整,就可以自動運行,則可大大提高了測試的效率和測試的準確性。目前主要產品有MI公司的 WinRunner, Compuware
28、的QARun, Rational的 SQA Robot,MS Visual Test Suite等GUI自動化測試自動化測試p 設計測試用例,并手工進行測試。p 如果測試未通過,則先改正缺陷,再次執行測試。p 如果測試通過,利用測試工具運行該測試過程,捕獲運行過程需要檢測的屏幕對象,并保存。p 在進行回歸測試測試,自動利用測試工具運行測試,并比較運行過程的屏幕對象與保存的屏幕對象比較,從而判斷測試用例是否通過。基于基于Web應用的測試工具應用的測試工具基于Web應用的測試工具主要進行鏈接檢查、HTML檢查、Web功能和Web站點安全性等各個方面的測試。主要Web測試工具有MI公司的Astra
29、系列(如Astra QuickTest )、RSW公司的 E-Test Suite等;Web系統測試工具: WorkBench、Web Application Stress Tool(WAS)、頁面鏈接測試Link Sleuth等。Website性能測試測什么?性能測試測什么?各種操作的響應速度最大并發用戶數最大數據容量ACT ACT (Application Center Test) ACT測試中的常見術語測試中的常見術語nRPS (Request Per Second)n并發連接數 (Simultaneous Browser Connections)n思考時間 (Thinking Time
30、)nRPS + SBC + Thinking Time = Concurrent users?ACT測試的步驟測試的步驟n創建測試腳本n手工編寫VBScriptn錄音并修改n運行測試腳本n設定并發用戶數n設定用戶身份n運行、觀察、獲取主觀體驗n理解結果報告n圖表n各項性能統計數字n日志文件解讀解讀ACT測試結果測試結果nTTFB, TTLBnHTTP錯誤的含義n401n403n404n500常見的ACT結果圖線其他其他Web負載發生工具負載發生工具p Microsofts Web Application Stress Toolp Cyranos OpenSTAp Quest Softwares
31、 Benchmark Factoryp Empirixs E-Test Suite 6.0p RadViews WebLoad 5.0p Rational Softwares Rational Robotp Mercury Interctives Astra LoadRunner 7.5p Compuwares QA Load 4.7p Segue Softwares SilePerformer 5.011.4 Rational產品的整體解決方案產品的整體解決方案11.4.1 Rational測試產品結構測試產品結構11.4.2 Rational 全套測試解決方案的特點全套測試解決方案的特點
32、TestManager: 集中、可伸縮的測試管理平臺Robot:傳統應用自動化測試工具RobotJ:Web/Java自動測試工具ClearQuest:缺陷跟蹤工具Rational系統測試方案系統測試方案CoverageQuantifyPurifyPlanTestTestManagerDesignTestTestManagerImplementTestRobotRobotJTestManagerExecuteTestRobotRobotJTestManagerEvaluateTestClearQuestTestManagerChange Request and Configuration Man
33、agement - ClearQuest and ClearCase LTRational Unified ProcessTestManager: 控制中心控制中心TestManager和和ClearQuest集成集成TestManager: 跨越整個測試周期跨越整個測試周期 自動實現缺陷與需求之間的關聯自動實現缺陷與需求之間的關聯測試度量測試度量: 覆蓋覆蓋, 趨勢等趨勢等Robot GUI的自動功能測試的自動功能測試2. 2. 執行測試腳本執行測試腳本OKFind執行腳本執行腳本檢驗結果檢驗結果報告錯誤報告錯誤迭代迭代1. 1. 創建測試腳本創建測試腳本選擇測試需求錄制操作過程(面向對象錄
34、制)插入驗證點編輯生成的腳本(可選) 和白盒工具集成和白盒工具集成RobotJ:測試測試Java和和Web應用應用Script AssureDynamic DataValidation 技術保證了即使對象名稱發生改變,測試腳本也能正常回放驗證動態內容利用Eclipse這一標準的IDE環境,同時提供與版本控制工具的集成ProfessionalLanguageand IDENEWTechnology forJava and Web BasedApplicationsScriptAssure: 降低了測試腳本的維護成本降低了測試腳本的維護成本Determines MatchTesterseesToo
35、lsees動態數據驗證動態數據驗證:可伸縮的測試腳本可伸縮的測試腳本Order ID changes with each order placedTest Fails when comparing static baseline to dynamic dataTest Passes when comparing pattern baseline to dynamic data動態內容匹配動態內容匹配利用模式匹配技術來驗證數據利用模式匹配技術來驗證數據如不是驗證 “Order ID 230”, 而是 “Order ID #” 當驗證應用的行為時,考慮了各種不同的合法響應業界標準的業界標準的IDE
36、和測試腳本語言和測試腳本語言Eclipse集成環境集成環境調試器、代碼編輯器調試器、代碼編輯器使用標準的使用標準的Java語言作為語言作為測試腳本語言測試腳本語言11.5.1 MI產品結構產品結構11.5.2 MI三個重量級產品的介紹三個重量級產品的介紹11.5 MI產品的整體解決方案產品的整體解決方案MI產品結構產品結構 LoadRunner WinRunner TestDirector Astra QuickTest Astra LoadTest Topaz Prism ActiveTest ActiveWatch測試測試監控監控軟件軟件MSP61被測系統被測系統LoadRunner 的解決方案的解決方案Web服務器服務器數據庫數據庫服務器服務器壓力產生壓力產生虛擬用虛擬用戶壓力戶壓力測試機測試機解決測試資源的限制解決測試資源的限制 利用圖表工具分析測試結果利用圖表工具分析測試結果 利用錄制的腳本進行回歸測試利用錄制的腳本進行回歸測試AnalysisController 運行大量的運行大量的“Virtual Users”在不同的機器上在不同的機器上 利用利用 “Virtual Users”代替實際測試人員代替實際測試人員 通過通過“Controller”管理管理“ Vusers”62LoadRu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- HRBP崗位面試問題及答案
- 2025屆湖南省邵東縣第四中學高二下化學期末統考試題含解析
- 2025屆安徽省舒城干汊河中學高二化學第二學期期末質量跟蹤監視模擬試題含解析
- 吉林省普通中學2025年化學高一下期末統考試題含解析
- 2025屆安徽省壽縣一中化學高一下期末質量跟蹤監視試題含解析
- 2025屆寧夏石嘴山市第一高級中學高二下化學期末質量跟蹤監視試題含解析
- 江蘇省南京一中2025屆高一下化學期末復習檢測試題含解析
- 2025屆廣東省深圳市耀華實驗學校高一化學第二學期期末檢測試題含解析
- 山東省棲霞二中2025屆高一下化學期末聯考模擬試題含解析
- 殘聯康復資金管理辦法
- 港口裝卸作業培訓
- 2025年湖北省武漢市中考數學真題(無答案)
- 鉗工考試試題及答案
- 2025至2030中國牙科氧化鋯塊行業發展趨勢分析與未來投資戰略咨詢研究報告
- 拖欠維修費車輛以車抵債協議范本
- 2025至2030中國復印機行業發展趨勢分析與未來投資戰略咨詢研究報告
- 暑假安全家長會4
- 2024年安徽省泗縣衛生局公開招聘試題帶答案
- 2025年北京市高考化學試卷真題(含答案)
- 2025年重慶市中考化學試卷真題(含標準答案)
- JG/T 202-2007工程管道用聚氨酯、蛭石絕熱材料支吊架
評論
0/150
提交評論