




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件测试方法和技术
-Ch.11软件测试自动化Zhu.Kerry@朱少民KerryZhu软件测试方法和技术
-Ch.11软件测试自动化Zhu.1第十一章软件测试自动化Zhu.Kerry@11.1测试自动化的内涵11.2测试工具的分类和选择11.3测试工具的主流产品介绍11.4IBM-Rational产品的整体解决方案11.5MercuryInteractive产品的整体解决方案11.6Compuware产品的整体解决方案第十一章软件测试自动化Zhu.Kerry@gmail.co211.1测试自动化的内涵Zhu.Kerry@11.1.1为什么要软件测试自动化11.1.2自动化测试的引入和应用11.1.3测试自动化的基本结构11.1.4测试自动化的原理和方法11.1.5测试自动化普遍存在的问题11.1测试自动化的内涵Zhu.Kerry@gmail.co3手工测试的局限性Zhu.Kerry@通过手工测试无法做到覆盖所有代码路径;许多与时序、死锁、资源冲突、多线程等有关的错误通过手工测试很难捕捉到在系统负载、性能测试时,需要模拟大量数据、或大量并发用户等各种应用场合时,也很难通过手工测试来进行在进行系统可靠性时,需要模拟系统运行十年、几十年,以验证系统能否稳定运行,也是手工测试无法模拟的。如果有大量(几千)的测试用例,需要在短时间内完成,手工测试又怎么办呢?测试可以发现错误,并不能表明程序的正确性。
手工测试的局限性Zhu.Kerry@通过4自动测试定义软件系统功能规格书(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@自动测试定义软件系统手工测试的局限性(2)Zhu.Kerr5代码全部CodePath测试覆盖也几乎不可能每一个if…else…或switch语句就会把情况增加一倍许多异常处理代码在正常使用中不会碰到许多与时序,死锁,资源冲突,多线程有关的错误很难捕捉到每一个产品都会有不同的版本外加各自的SP与QFE(QuickFixEngineering,又称Hotfix)NT4,VS6SP1~SP5,Windows2000SP1-SP4VS.NET,SQLServerSP1–SP3可重复使用的自动测试对产品未来版本与ServicePack的测试将有事半功倍的效果手工测试的局限性(2)Zhu.Kerry@代码全部CodePath测试覆盖也几乎不可能手工测试的局限6自动化测试带来的好处1.缩短周期Testingcycle-RegressionTesting2.AttributesofTA,Speed速度Efficiency效率AccuracyandPrecise准确、精确
Relentlessness无情3.容易实施、结果可靠4.做手工不能做Zhu.Kerry@自动化测试带来的好处1.缩短周期Testingcycl7手工测试耗费时间低可靠性人力资源不一致性仅对于一次性的测试有益速度可重复覆盖率可靠可以再度使用重复测试节省时间自动测试手工测试vs.自动测试Zhu.Kerry@手工测试耗费时间速度自动测试手工测试vs.自动测试Zhu8正确认识测试自动化不现实的期望注定测试自动化的失败测试自动化能:显著降低重复手工测试的时间建立可靠、重复的测试,减少认为错误增强测试质量和覆盖率测试自动化不能:完全替代手工测试和手工测试工程师保证100%的测试覆盖率弥补测试实践的不足Zhu.Kerry@正确认识测试自动化不现实的期望注定测试自动化的失败Zhu.K9各自特点软件测试自动化(TA)虽然具有很多优点,但只是对手工测试的一种补充,TA绝不能代替手工测试,有各自的特点:
在系统功能逻辑测试、验收测试、适用性测试、涉及物理交互性测试时,多采用黑盒测试的手工测试方法;单元测试、集成测试、系统负载或性能、稳定性、可靠性测试等比较适合采用TA;对那种不稳定软件的测试、开发周期很短的软件、一次性的软件等不适合测试自动化工具本身并没有想象力和灵活性,根据经验报道,自动测试只能发现15%的缺陷,而手工测试可以发现85%的缺陷;TA工具在进行功能测试时,其准确的含义是回归测试工具,因为工具不能发现更多的新问题,但可以保证对已经测试过部分进行测试的准确性和客观性
Zhu.Kerry@各自特点软件测试自动化(TA)虽然具有很多优点,但只是对手工10测试自动化项目的本质定义:利用GUI自动化测试工具来开发和执行测试脚本,从而验证是否满足需求本质:测试自动化项目本质上是软件开发项目一个测试自动化项目必须具有:清晰定义并严格实施的过程来自组织各级的支持周密的计划具体的设计和架构Zhu.Kerry@测试自动化项目的本质定义:利用GUI自动化测试工具来开发和执11测试自动化成本/收益分析结构成本收益净收益NoAutomation000RecordingandPlayback8.3112.7Data-drivenstructureusingdatapools8.4189.6Frameworkstructure9.8155.2Framework/data-driven(hybrid)structurefocusingonviewsoftheapplicationandusingdatapools11.6197.4Zhu.Kerry@测试自动化成本/收益分析结构成本收益净收益NoAutoma12自动化测试的引入和应用找准测试自动化的切入点把测试开发纳入整个软件开发体系测试自动化依赖测试流程和测试用例软件测试自动化的投入较大进行资源的合理调度Zhu.Kerry@自动化测试的引入和应用找准测试自动化的切入点Zhu.Ker13自动化测试工作流程收集测试信息测试需求是什么?那里能得到用到的数据?建立基本测试纪录用户的操作核实成功回放提高基本测试插入测试点驱动测试数据整体测试关联数据建立综合的测试场景计划1创建2核实和提高3整合4计划自动化测试纪录用户操作形成基本测试对回放和测试提高自动化测试运行多种测试检查数据流Zhu.Kerry@自动化测试工作流程收集测试信息建立基本测试提高基本测试插入测14测试自动化的基本结构机房客户端文件服务器数据库服务器Web服务器控制程序拷贝测试文件拷贝测试结果分派工作分派工作查询结果Build系统编译获取测试任务、数据更新显示软件包Zhu.Kerry@发布指令测试自动化的基本结构机房客户端文件服务器数据库服务器Web服15测试自动化的原理和方法代码分析:类似于高级编译系统,在工具中定义类/对象/函数/变量等定义规则、语法规则等,在分析时对代码进行语法扫描,找出不符合编码规范的地方。
捕获和回放:代码分析是一种白盒测试的自动化方法,捕获和回放则是一种黑盒测试的自动化方法。Zhu.Kerry@测试自动化的原理和方法代码分析:类似于高级编译系统,在工16对象识别编辑框下拉框按钮QuickTest在支持应用中识别、确定每一个对象是什么类型复选框选择框Zhu.Kerry@对象识别编辑框下拉框按钮QuickTest在支持应用中识别17对象识别-2逻辑名称是对象属性之一的值数值
用于识别对象名称Nativeclass: EditAttachedText:AgentName:Enabled: TrueFocused: TrueHeight: 20Text: HaroldWidth: 119Zhu.Kerry@对象识别-2逻辑名称是对象属性之一的值Nativecla18对象识别-3对象库是本地在测试结构范围内
存储对像信息.对象库例如对象(属性)包含登陆窗口在记录过程中捕获的:-AgentNamefield-Passwordfield-OKbutton-Cancelbutton-HelpbuttonZhu.Kerry@对象识别-3对象库是本地在测试结构范围内存储对像信息19脚本技术
线性脚本,是录制手工执行的测试用例得到的脚本,这种脚本包含所有的击键、移动、输入数据等,所有录制的测试用例都可以得到完整的回放。
结构化脚本,类似于结构化程序设计,具有各种逻辑结构、函数调用功能。
共享脚本,是指某个脚本可以被多个测试用例使用。
数据驱动脚本,将测试输入存储在独立的(数据)文件中,而不是存储在脚本中。
关键字驱动脚本,是数据驱动脚本的逻辑扩张
Zhu.Kerry@脚本技术线性脚本,是录制手工执行的测试用例得到的脚本,这种20Example-1GUIScript(.rec)Low-LevelscriptVUScript(.S)GUIShellScript(.rec)ProjectHeaderFile(.sbh)SQABasicFile(.sbl)Zhu.Kerry@Example-1GUIScript(.rec)Zhu21Scriptexample-2Zhu.Kerry@Scriptexample-2Zhu.Kerry@gma22GUIScriptstypesTS-script
Itincludethescriptwhichcannotbere-used,weoftenuseittogeneratetestlog.B-script TABuildingblock,itincludethescriptwhichcanbere-used.U-script
Usedtomakesureallcodeinafunctioncanworknormally.Zhu.Kerry@GUIScriptstypesTS-scriptZhu.23Samplescript'====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@Samplescript'====SectionTwo24SQAGetPropertyResult=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@SQAGetPropertyObjectScriptin25CheckBox CheckBoxClick,"Name=Overdraft"ComboBox,ComboListBox EditBoxHTMLDocument,HTMLImage,HTMLLinkInputKeys InputKeys"ThisisRobot.{Enter}"UserActioncommandsZhu.Kerry@CheckBox UserActioncommands26自动比较
静态比较和动态比较,简单比较和复杂比较,敏感性测试比较和健壮性测试比较,。比较过滤器
Zhu.Kerry@自动比较静态比较和动态比较,Zhu.Kerry@gma27ComboBoxVPEditBoxVP FileVPHTMLLinkVPHTMLDocumentVP ListViewVP WindowVP JavaListViewVP
SyntaxofWindowVPfunction:Result=
WindowVP
(action%,recMethod$,parameters$)[actioncanbeoneoffollowingvalues]
CompareImageCompareMenuComparePropertiesExists/DoesNotExist…WindowVP(CompareImage,"Caption=Paint","VP=PICT1A")Thisfunctionreturns1iftheactionperformedpassesReturn0iftheactionperformedfails.VerificationPointcommandsZhu.Kerry@ComboBoxVPSyntaxofWindowVP28
测试自动化普遍存在的问题
不正确的观念或不现实的期望缺乏具有良好素质、经验的测试人才
测试工具本身的问题影响测试的质量
没有进行有效的、充分的培训
没有考虑到公司的实际情况,盲目引入测试工具没有形成一个良好的使用测试工具的环境
其它技术问题和组织问题Zhu.Kerry@测试自动化普遍存在的问题不正确的观念或不现实的期望Zhu2911.2测试工具的分类和选择Zhu.Kerry@11.2.1测试工具的分类11.2.2测试工具的选择测试工具是测试自动化的表现11.2测试工具的分类和选择Zhu.Kerry@gmail30测试工具的研究 软件测试的过程是一项很复杂而费时的工作,它不仅执行每一个测试用例,还要设置运行环境、记录输出、运行后清理并记录失败信息。仅仅依靠测试人员手工完成是很困难的。所以必须研究测试工具以帮助测试人员自动或半自动的完成测试。 在资金和人力、时间的供给一定的条件下面,拥有好的测试工具能够提高测试效率从而降低测试成本,则能够选择更高的测试充分性标准进行测试,从而提高软件质量。Zhu.Kerry@测试工具的研究 软件测试的过程是一项很复杂而费时的工作,它31测试工具的例子Zhu.Kerry@测试工具的例子Zhu.Kerry@32测试工具的分类CodeanalysisTools -Staticanalysis -DynamicanalysisTestExecutionTool -CaptureandReplay(Record&Playback) -MonitorTool -StubsandDrivers -AutomatedTestingEnvironmentTestcasegeneratorsZhu.Kerry@测试工具的分类CodeanalysisToolsZhu.33测试工具的选择Zhu.Kerry@测试工具的选择Zhu.Kerry@3411.3测试工具的主流产品介绍
Zhu.Kerry@11.3.1面向开发的单元测试工具11.3.2负载和性能测试工具11.3.3GUI功能测试工具11.3.4基于Web应用的测试工具11.3.5软件测试管理和其他工具11.3测试工具的主流产品介绍Zhu.Kerry@gma35面向开发的单元测试工具根据不同的语言进行分类:C/C++单元级测试工具PanoramaC++,C++Test,NumegaJUnit是一个开发源代码的Java测试框架根据工具的功能特点进行分类:内存资源泄漏检查工具:Numega中的BounceChecker,Rational的Purify等代码覆盖率检查工具:Numega的TrueCoverage,Rational的PureCoverage,TeleLogic公司的Logiscope代码性能检查工具:Logiscope和Macabe等。软件纠错工具RationalPurl等。Zhu.Kerry@面向开发的单元测试工具根据不同的语言进行分类:Zhu.Ker36负载和性能测试工具属性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@负载和性能测试工具属性LoadRunner/MIQALoa37GUI功能测试工具将操作应用程序的各种动作和输入记录下来,包括键盘操作、鼠标点击等捕捉(Record)下来,生成一个脚本文件,这个脚本以后可以被“回放(playback)”。在实际测试过程中,要根据测试需求对录制的脚本进行一些必要的修改或加入一些参数,如选择不同的测试数据、脚本中插入检查点(CheckPoint)进行跟踪调试等。基于GUI功能测试工具主要适合回归测试阶段。当一个应用开发基本完成后,程序界面基本定型,虽然业务的需求会很频繁变化,但测试脚本结构基本不需要改动,只需要做些小调整,就可以自动运行,则可大大提高了测试的效率和测试的准确性。目前主要产品有MI公司的WinRunner,Compuware的QARun,Rational的SQARobot,MSVisualTestSuite等Zhu.Kerry@GUI功能测试工具将操作应用程序的各种动作和输入记录下来,包38GUI自动化测试设计测试用例,并手工进行测试。如果测试未通过,则先改正缺陷,再次执行测试。如果测试通过,利用测试工具运行该测试过程,捕获运行过程需要检测的屏幕对象,并保存。在进行回归测试测试,自动利用测试工具运行测试,并比较运行过程的屏幕对象与保存的屏幕对象比较,从而判断测试用例是否通过。Zhu.Kerry@GUI自动化测试设计测试用例,并手工进行测试。Zhu.Ke39基于Web应用的测试工具基于Web应用的测试工具主要进行链接检查、HTML检查、Web功能和Web站点安全性等各个方面的测试。主要Web测试工具有MI公司的Astra
系列(如Astra
QuickTest
)、RSW公司的E-TestSuite等;Web系统测试工具:WorkBench、WebApplicationStressTool(WAS)、页面链接测试LinkSleuth等。
Zhu.Kerry@基于Web应用的测试工具基于Web应用的测试工具主要进行链接40Website性能测试测什么?各种操作的响应速度最大并发用户数最大数据容量ACT(ApplicationCenterTest)Zhu.Kerry@Website性能测试测什么?各种操作的响应速度ACT(41ACT测试中的常见术语RPS(RequestPerSecond)并发连接数(SimultaneousBrowserConnections)思考时间(ThinkingTime)RPS+SBC+ThinkingTime=Concurrentusers?Zhu.Kerry@ACT测试中的常见术语RPS(RequestPerSe42ACT测试的步骤创建测试脚本手工编写VBScript录音并修改运行测试脚本设定并发用户数设定用户身份运行、观察、获取主观体验理解结果报告图表各项性能统计数字日志文件Zhu.Kerry@ACT测试的步骤创建测试脚本Zhu.Kerry@gmail.43解读ACT测试结果TTFB,TTLBHTTP错误的含义401403404500常见的ACT结果图线Zhu.Kerry@解读ACT测试结果TTFB,TTLB常见的ACT结果图线Z44其他Web负载发生工具Microsoft'sWebApplicationStressToolCyrano'sOpenSTAQuestSoftware'sBenchmarkFactoryEmpirix'sE-TestSuite6.0RadView'sWebLoad5.0RationalSoftware'sRationalRobotMercuryInterctive'sAstraLoadRunner7.5Compuware'sQALoad4.7SegueSoftware'sSilePerformer5.0Zhu.Kerry@其他Web负载发生工具Microsoft'sWebAp4511.4Rational产品的整体解决方案Zhu.Kerry@11.4.1Rational测试产品结构11.4.2Rational全套测试解决方案的特点
TestManager:集中、可伸缩的测试管理平台Robot:传统应用自动化测试工具RobotJ:Web/Java自动测试工具ClearQuest:缺陷跟踪工具11.4Rational产品的整体解决方案Zhu.Kerr46Rational系统测试方案CoverageQuantifyPurifyPlanTestTestManagerDesignTestTestManagerImplementTestRobotRobotJTestManagerExecuteTestRobotRobotJTestManagerEvaluateTestClearQuestTestManagerChangeRequestandConfigurationManagement-ClearQuestandClearCaseLTRationalUnifiedProcessZhu.Kerry@Rational系统测试方案CoverageQuantify47TestManager:控制中心ViewResultsPassFailCoverage
reports
Generate
change
requestsTestDesignOS/VerMemDiskTestIterationsTestConfigurationsTestPlanTestCasesTestInputsAdaptersInputRobotGUI
and
VUScriptsVBor
Java
scriptsExternal
Scripts
onother
OS’sExecutionAdaptersRationalTestManagerZhu.Kerry@TestManager:控制中心ViewResultsP48TestManager和ClearQuest集成Zhu.Kerry@TestManager和ClearQuest集成Zhu.Ke49TestManager:跨越整个测试周期
üZhu.Kerry@TestManager:跨越整个测试周期üZhu.Ker50自动实现缺陷与需求之间的关联Zhu.Kerry@自动实现缺陷与需求之间的关联Zhu.Kerry@gmail.51测试度量:覆盖,趋势等Zhu.Kerry@测试度量:覆盖,趋势等Zhu.Kerry@gmail.c52Robot
GUI的自动功能测试2.执行测试脚本OKFind执行脚本检验结果报告错误迭代1.创建测试脚本选择测试需求录制操作过程(面向对象录制®)插入验证点编辑生成的脚本(可选)
Zhu.Kerry@RobotGUI的自动功能测试2.执行测试脚本OKFin53和白盒工具集成Zhu.Kerry@和白盒工具集成Zhu.Kerry@54RobotJ:测试Java和Web应用ScriptAssureDynamicData
Validation技术保证了即使对象名称发生改变,测试脚本也能正常回放验证动态内容利用Eclipse这一标准的IDE环境,同时提供与版本控制工具的集成Professional
Language
andIDENEW
Technologyfor
JavaandWebBased
ApplicationsZhu.Kerry@RobotJ:测试Java和Web应用ScriptDyna55ScriptAssure:
降低了测试脚本的维护成本Version1.0Version
2.0DeterminesMatch
??Tester
seesTool
seesZhu.Kerry@ScriptAssure:
降低了测试脚本的维护成本Ver56动态数据验证:可伸缩的测试脚本OrderIDchangeswitheachorderplacedTestFailswhencomparingstaticbaselinetodynamicdataTestPasseswhencomparingpatternbaselinetodynamicdata动态内容匹配利用模式匹配技术来验证数据如不是验证“OrderID230”,而是“OrderID###”当验证应用的行为时,考虑了各种不同的合法响应Zhu.Kerry@动态数据验证:可伸缩的测试脚本OrderIDchange57业界标准的IDE和测试脚本语言Eclipse集成环境调试器、代码编辑器使用标准的Java语言作为测试脚本语言Zhu.Kerry@业界标准的IDE和测试脚本语言Eclipse集成环境Zhu.58Zhu.Kerry@11.5.1MI产品结构11.5.2MI三个重量级产品的介绍11.5MI产品的整体解决方案Zhu.Kerry@11.5.1MI产品59MI产品结构Zhu.Kerry@
LoadRunnerWinRunnerTestDirectorAstraQuickTestAstraLoadTest
TopazPrism
ActiveTest
ActiveWatch测试监控软件MSPMI产品结构Zhu.Kerry@Load60被测系统LoadRunner的解决方案Web服务器数据库服务器压力产生虚拟用户压力测试机解决测试资源的限制利用图表工具分析测试结果利用录制的脚本进行回归测试AnalysisController运行大量的“VirtualUsers”在不同的机器上利用“VirtualUsers”代替实际测试人员通过“Controller”管理“Vusers”Zhu.Kerry@61被测系统LoadRunner的解决方案Web服务器数据库压LoadRunner的解决方案支持多种协议和APIZhu.Kerry@62LoadRunner的解决方案支持多种协议和APIZhu.LoadRunner的解决方案能够对多种Server和资源进行监控Web服务器Web应用服务器数据库服务器系统资源Zhu.Kerry@63LoadRunner的解决方案能够对多种Server和资源LoadRunner的解决方案VirtualUserGenerator产生压力和搜集测试结果生成用于“Controller”部署的“Vusers”通过图表分析工具来编译和显示测试结果LoadRunnerControllerLoadRunnerAnalysisZhu.Kerry@64LoadRunner的解决方案VirtualUserG系统性能调优LoadRunner工作流程分析测试结果阶段5LoadRunnerVUGENLoadRunnerCONTROLLER&
ANALYSIS执行场景阶段4设计测试场景阶段3创建WebVirtualUsers阶段2阶段1制定压力测试方案NOTE:
这是LR的一个典型工作流程。为便于理解这个流程,在本教程中有些步骤将按照不同的顺序来介绍。Zhu.Kerry@系统性能调优LoadRunner工作流程分析测试结果阶段6511.6Compuware产品的整体解决方案Zhu.Kerry@11.6.1Compuware产品结构11.6.2Compuware分阶段解决方案11.6Compuware产品的整体解决方案Zhu.Ker66Compuware产品结构Zhu.Kerry@1.黑盒测试工具QACenter
2.白盒测试工具—Numega系列产品
3.Vantage应用级网络性能监控管理软件Compuware产品结构Zhu.Kerry@gmail.c67编码实现阶段Zhu.Kerry@运行期错误检测和诊断工具ErrorDetection、代码覆盖率分析工具CoverageAnalysis、性能分析和优化工具PerformanceAnalysis、设备驱动开发套件NuMegaDriverStudio、JAVA可视线程和事件分析工具JCheck、交互式的存储过程调试和优化工具DBPartnerDebuggerVB源代码分析、错误诊断、处理和恢复工具(CodeReview,SmartCheck,FailSafe等)。编码实现阶段Zhu.Kerry@运行期错68测试阶段Zhu.Kerry@自动捕获和回放工具QARun应用性能加载工具QALoadWeb站点质量分析工具WebCheckweb应用功能测试工具TestPartner测试管理和设计系统QADirector缺陷跟踪系统TrackRecord。测试阶段Zhu.Kerry@自动捕获和回69网络性能测试Zhu.Kerry@网络应用性能分析工具ApplicationExpert网络应用性能监控工具NetworkVantage服务器数据库性能监控工具ServerVantage网络性能测试Zhu.Kerry@网络应用70作业Zhu.Kerry@第十一章2、3、4作业Zhu.Kerry@第十一章2、371Q&AZhu.Kerry@Q&AZhu.Kerry@72软件测试方法和技术
-Ch.11软件测试自动化Zhu.Kerry@朱少民KerryZhu软件测试方法和技术
-Ch.11软件测试自动化Zhu.73第十一章软件测试自动化Zhu.Kerry@11.1测试自动化的内涵11.2测试工具的分类和选择11.3测试工具的主流产品介绍11.4IBM-Rational产品的整体解决方案11.5MercuryInteractive产品的整体解决方案11.6Compuware产品的整体解决方案第十一章软件测试自动化Zhu.Kerry@gmail.co7411.1测试自动化的内涵Zhu.Kerry@11.1.1为什么要软件测试自动化11.1.2自动化测试的引入和应用11.1.3测试自动化的基本结构11.1.4测试自动化的原理和方法11.1.5测试自动化普遍存在的问题11.1测试自动化的内涵Zhu.Kerry@gmail.co75手工测试的局限性Zhu.Kerry@通过手工测试无法做到覆盖所有代码路径;许多与时序、死锁、资源冲突、多线程等有关的错误通过手工测试很难捕捉到在系统负载、性能测试时,需要模拟大量数据、或大量并发用户等各种应用场合时,也很难通过手工测试来进行在进行系统可靠性时,需要模拟系统运行十年、几十年,以验证系统能否稳定运行,也是手工测试无法模拟的。如果有大量(几千)的测试用例,需要在短时间内完成,手工测试又怎么办呢?测试可以发现错误,并不能表明程序的正确性。
手工测试的局限性Zhu.Kerry@通过76自动测试定义软件系统功能规格书(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@自动测试定义软件系统手工测试的局限性(2)Zhu.Kerr77代码全部CodePath测试覆盖也几乎不可能每一个if…else…或switch语句就会把情况增加一倍许多异常处理代码在正常使用中不会碰到许多与时序,死锁,资源冲突,多线程有关的错误很难捕捉到每一个产品都会有不同的版本外加各自的SP与QFE(QuickFixEngineering,又称Hotfix)NT4,VS6SP1~SP5,Windows2000SP1-SP4VS.NET,SQLServerSP1–SP3可重复使用的自动测试对产品未来版本与ServicePack的测试将有事半功倍的效果手工测试的局限性(2)Zhu.Kerry@代码全部CodePath测试覆盖也几乎不可能手工测试的局限78自动化测试带来的好处1.缩短周期Testingcycle-RegressionTesting2.AttributesofTA,Speed速度Efficiency效率AccuracyandPrecise准确、精确
Relentlessness无情3.容易实施、结果可靠4.做手工不能做Zhu.Kerry@自动化测试带来的好处1.缩短周期Testingcycl79手工测试耗费时间低可靠性人力资源不一致性仅对于一次性的测试有益速度可重复覆盖率可靠可以再度使用重复测试节省时间自动测试手工测试vs.自动测试Zhu.Kerry@手工测试耗费时间速度自动测试手工测试vs.自动测试Zhu80正确认识测试自动化不现实的期望注定测试自动化的失败测试自动化能:显著降低重复手工测试的时间建立可靠、重复的测试,减少认为错误增强测试质量和覆盖率测试自动化不能:完全替代手工测试和手工测试工程师保证100%的测试覆盖率弥补测试实践的不足Zhu.Kerry@正确认识测试自动化不现实的期望注定测试自动化的失败Zhu.K81各自特点软件测试自动化(TA)虽然具有很多优点,但只是对手工测试的一种补充,TA绝不能代替手工测试,有各自的特点:
在系统功能逻辑测试、验收测试、适用性测试、涉及物理交互性测试时,多采用黑盒测试的手工测试方法;单元测试、集成测试、系统负载或性能、稳定性、可靠性测试等比较适合采用TA;对那种不稳定软件的测试、开发周期很短的软件、一次性的软件等不适合测试自动化工具本身并没有想象力和灵活性,根据经验报道,自动测试只能发现15%的缺陷,而手工测试可以发现85%的缺陷;TA工具在进行功能测试时,其准确的含义是回归测试工具,因为工具不能发现更多的新问题,但可以保证对已经测试过部分进行测试的准确性和客观性
Zhu.Kerry@各自特点软件测试自动化(TA)虽然具有很多优点,但只是对手工82测试自动化项目的本质定义:利用GUI自动化测试工具来开发和执行测试脚本,从而验证是否满足需求本质:测试自动化项目本质上是软件开发项目一个测试自动化项目必须具有:清晰定义并严格实施的过程来自组织各级的支持周密的计划具体的设计和架构Zhu.Kerry@测试自动化项目的本质定义:利用GUI自动化测试工具来开发和执83测试自动化成本/收益分析结构成本收益净收益NoAutomation000RecordingandPlayback8.3112.7Data-drivenstructureusingdatapools8.4189.6Frameworkstructure9.8155.2Framework/data-driven(hybrid)structurefocusingonviewsoftheapplicationandusingdatapools11.6197.4Zhu.Kerry@测试自动化成本/收益分析结构成本收益净收益NoAutoma84自动化测试的引入和应用找准测试自动化的切入点把测试开发纳入整个软件开发体系测试自动化依赖测试流程和测试用例软件测试自动化的投入较大进行资源的合理调度Zhu.Kerry@自动化测试的引入和应用找准测试自动化的切入点Zhu.Ker85自动化测试工作流程收集测试信息测试需求是什么?那里能得到用到的数据?建立基本测试纪录用户的操作核实成功回放提高基本测试插入测试点驱动测试数据整体测试关联数据建立综合的测试场景计划1创建2核实和提高3整合4计划自动化测试纪录用户操作形成基本测试对回放和测试提高自动化测试运行多种测试检查数据流Zhu.Kerry@自动化测试工作流程收集测试信息建立基本测试提高基本测试插入测86测试自动化的基本结构机房客户端文件服务器数据库服务器Web服务器控制程序拷贝测试文件拷贝测试结果分派工作分派工作查询结果Build系统编译获取测试任务、数据更新显示软件包Zhu.Kerry@发布指令测试自动化的基本结构机房客户端文件服务器数据库服务器Web服87测试自动化的原理和方法代码分析:类似于高级编译系统,在工具中定义类/对象/函数/变量等定义规则、语法规则等,在分析时对代码进行语法扫描,找出不符合编码规范的地方。
捕获和回放:代码分析是一种白盒测试的自动化方法,捕获和回放则是一种黑盒测试的自动化方法。Zhu.Kerry@测试自动化的原理和方法代码分析:类似于高级编译系统,在工88对象识别编辑框下拉框按钮QuickTest在支持应用中识别、确定每一个对象是什么类型复选框选择框Zhu.Kerry@对象识别编辑框下拉框按钮QuickTest在支持应用中识别89对象识别-2逻辑名称是对象属性之一的值数值
用于识别对象名称Nativeclass: EditAttachedText:AgentName:Enabled: TrueFocused: TrueHeight: 20Text: HaroldWidth: 119Zhu.Kerry@对象识别-2逻辑名称是对象属性之一的值Nativecla90对象识别-3对象库是本地在测试结构范围内
存储对像信息.对象库例如对象(属性)包含登陆窗口在记录过程中捕获的:-AgentNamefield-Passwordfield-OKbutton-Cancelbutton-HelpbuttonZhu.Kerry@对象识别-3对象库是本地在测试结构范围内存储对像信息91脚本技术
线性脚本,是录制手工执行的测试用例得到的脚本,这种脚本包含所有的击键、移动、输入数据等,所有录制的测试用例都可以得到完整的回放。
结构化脚本,类似于结构化程序设计,具有各种逻辑结构、函数调用功能。
共享脚本,是指某个脚本可以被多个测试用例使用。
数据驱动脚本,将测试输入存储在独立的(数据)文件中,而不是存储在脚本中。
关键字驱动脚本,是数据驱动脚本的逻辑扩张
Zhu.Kerry@脚本技术线性脚本,是录制手工执行的测试用例得到的脚本,这种92Example-1GUIScript(.rec)Low-LevelscriptVUScript(.S)GUIShellScript(.rec)ProjectHeaderFile(.sbh)SQABasicFile(.sbl)Zhu.Kerry@Example-1GUIScript(.rec)Zhu93Scriptexample-2Zhu.Kerry@Scriptexample-2Zhu.Kerry@gma94GUIScriptstypesTS-script
Itincludethescriptwhichcannotbere-used,weoftenuseittogeneratetestlog.B-script TABuildingblock,itincludethescriptwhichcanbere-used.U-script
Usedtomakesureallcodeinafunctioncanworknormally.Zhu.Kerry@GUIScriptstypesTS-scriptZhu.95Samplescript'====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@Samplescript'====SectionTwo96SQAGetPropertyResult=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@SQAGetPropertyObjectScriptin97CheckBox CheckBoxClick,"Name=Overdraft"ComboBox,ComboListBox EditBoxHTMLDocument,HTMLImage,HTMLLinkInputKeys InputKeys"ThisisRobot.{Enter}"UserActioncommandsZhu.Kerry@CheckBox UserActioncommands98自动比较
静态比较和动态比较,简单比较和复杂比较,敏感性测试比较和健壮性测试比较,。比较过滤器
Zhu.Kerry@自动比较静态比较和动态比较,Zhu.Kerry@gma99ComboBoxVPEditBoxVP FileVPHTMLLinkVPHTMLDocumentVP ListViewVP WindowVP JavaListViewVP
SyntaxofWindowVPfunction:Result=
WindowVP
(action%,recMethod$,parameters$)[actioncanbeoneoffollowingvalues]
CompareImageCompareMenuComparePropertiesExists/DoesNotExist…WindowVP(CompareImage,"Caption=Paint","VP=PICT1A")Thisfunctionreturns1iftheactionperformedpassesReturn0iftheactionperformedfails.VerificationPointcommandsZhu.Kerry@ComboBoxVPSyntaxofWindowVP100
测试自动化普遍存在的问题
不正确的观念或不现实的期望缺乏具有良好素质、经验的测试人才
测试工具本身的问题影响测试的质量
没有进行有效的、充分的培训
没有考虑到公司的实际情况,盲目引入测试工具没有形成一个良好的使用测试工具的环境
其它技术问题和组织问题Zhu.Kerry@测试自动化普遍存在的问题不正确的观念或不现实的期望Zhu10111.2测试工具的分类和选择Zhu.Kerry@11.2.1测试工具的分类11.2.2测试工具的选择测试工具是测试自动化的表现11.2测试工具的分类和选择Zhu.Kerry@gmail102测试工具的研究 软件测试的过程是一项很复杂而费时的工作,它不仅执行每一个测试用例,还要设置运行环境、记录输出、运行后清理并记录失败信息。仅仅依靠测试人员手工完成是很困难的。所以必须研究测试工具以帮助测试人员自动或半自动的完成测试。 在资金和人力、时间的供给一定的条件下面,拥有好的测试工具能够提高测试效率从而降低测试成本,则能够选择更高的测试充分性标准进行测试,从而提高软件质量。Zhu.Kerry@测试工具的研究 软件测试的过程是一项很复杂而费时的工作,它103测试工具的例子Zhu.Kerry@测试工具的例子Zhu.Kerry@104测试工具的分类CodeanalysisTools -Staticanalysis -DynamicanalysisTestExecutionTool -CaptureandReplay(Record&Playback) -MonitorTool -StubsandDrivers -AutomatedTestingEnvironmentTestcasegeneratorsZhu.Kerry@测试工具的分类CodeanalysisToolsZhu.105测试工具的选择Zhu.Kerry@测试工具的选择Zhu.Kerry@10611.3测试工具的主流产品介绍
Zhu.Kerry@11.3.1面向开发的单元测试工具11.3.2负载和性能测试工具11.3.3GUI功能测试工具11.3.4基于Web应用的测试工具11.3.5软件测试管理和其他工具11.3测试工具的主流产品介绍Zhu.Kerry@gma107面向开发的单元测试工具根据不同的语言进行分类:C/C++单元级测试工具PanoramaC++,C++Test,NumegaJUnit是一个开发源代码的Java测试框架根据工具的功能特点进行分类:内存资源泄漏检查工具:Numega中的BounceChecker,Rational的Purify等代码覆盖率检查工具:Numega的TrueCoverage,Rational的PureCoverage,TeleLogic公司的Logiscope代码性能检查工具:Logiscope和Macabe等。软件纠错工具RationalPurl等。Zhu.Kerry@面向开发的单元测试工具根据不同的语言进行分类:Zhu.Ker108负载和性能测试工具属性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@负载和性能测试工具属性LoadRunner/MIQALoa109GUI功能测试工具将操作应用程序的各种动作和输入记录下来,包括键盘操作、鼠标点击等捕捉(Record)下来,生成一个脚本文件,这个脚本以后可以被“回放(playback)”。在实际测试过程中,要根据测试需求对录制的脚本进行一些必要的修改或加入一些参数,如选择不同的测试数据、脚本中插入检查点(CheckPoint)进行跟踪调试等。基于GUI功能测试工具主要适合回归测试阶段。当一个应用开发基本完成后,程序界面基本定型,虽然业务的需求会很频繁变化,但测试脚本结构基本不需要改动,只需要做些小调整,就可以自动运行,则可大大提高了测试的效率和测试的准确性。目前主要产品有MI公司的WinRunner,Compuware的QARun,Rational的SQARobot,MSVisualTestSuite等Zhu.Kerry@GUI功能测试工具将操作应用程序的各种动作和输入记录下来,包110GUI自动化测试设计测试用例,并手工进行测试。如果测试未通过,则先改正缺陷,再次执行测试。如果测试通过,利用测试工具运行该测试过程,捕获运行过程需要检测的屏幕对象,并保存。在进行回归测试测试,自动利用测试工具运行测试,并比较运行过程的屏幕对象与保存的屏幕对象比较,从而判断测试用例是否通过。Zhu.Kerry@GUI自动化测试设计测试用例,并手工进行测试。Zhu.Ke111基于Web应用的测试工具基于Web应用的测试工具主要进行链接检查、HTML检查、Web功能和Web站点安全性等各个方面的测试。主要Web测试工具有MI公司的Astra
系列(如Astra
QuickTest
)、RSW公司的E-TestSuite等;Web系统测试工具:WorkBench、WebApplicationStressTool(WAS)、页面链接测试LinkSleuth等。
Zhu.Kerry@基于Web应用的测试工具基于Web应用的测试工具主要进行链接112Website性能测试测什么?各种操作的响应速度最大并发用户数最大数据容量ACT(ApplicationCenterTest)Zhu.Kerry@Website性能测试测什么?各种操作的响应速度ACT(113ACT测试中的常见术语RPS(RequestPerSecond)并发连接数(SimultaneousBrowserConnections)思考时间(ThinkingTime)RPS+SBC+ThinkingTime=Concurrentusers?Zhu.Kerry@ACT测试中的常见术语RPS(RequestPerSe114ACT测试的步骤创建测试脚本手工编写VBScript录音并修改运行测试脚本设定并发用户数设定用户身份运行、观察、获取主观体验理解结果报告图表各项性能统计数字日志文件Zhu.Kerry@ACT测试的步骤创建测试脚本Zhu.Kerry@gmail.115解读ACT测试结果TTFB,TTLBHTTP错误的含义401403404500常见的ACT结果图线Zhu.Kerry@解读ACT测试结果TTFB,TTLB常见的ACT结果图线Z116其他Web负载发生工具Microsoft'sWebApplicationStressToolCyrano'sOpenSTAQuestSoftware'sBenchmarkFactoryEmpirix'sE-TestSuite6.0RadView'sWebLoad5.0RationalSoftware'sRationalRobotMercuryInterctive'sAstraLoadRunner7.5Compuware'sQALoad4.7SegueSoftware'sSilePerformer5.0Zhu.Kerry@其他Web负载发生工具Microsoft'sWebAp11711.4Rational产品的整体解决方案Zhu.Kerry@11.4.1Rational测试产品结构11.4.2Rational全套测试解决方案的特点
TestManager:集中、可伸缩的测试管理平台Robot:传统应用自动化测试工具RobotJ:Web/Java自动测试工具ClearQuest:缺陷跟踪工具11.4Rational产品的整体解决方案Zhu.Kerr118Rational系统测试方案CoverageQuantifyPurifyPlanTestTestManagerDesignTestTestManagerImplementTestRobotRobotJTestManagerExecuteTestRobotRobotJTestManagerEvaluateTestClearQuestTestManagerChangeRequestandConfigurationManagement-ClearQuestandClearCaseLTRationalUnifiedProcessZh
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 烟花爆炸安全知识题库及答案解析
- 证券从业资格考试 五科及答案解析
- 九年级化学重点知识点归纳与总结
- 安全员c2会考题库里面的题不及答案解析
- 安全人员岗位笔试题库及答案解析
- 地表水质量检测方法及报表模板
- 广东石化新安全题库及答案解析
- 基金从业考试能一科一科及答案解析
- 护理科研知识竞赛题库及答案解析
- 母婴高级护理师题库及答案解析
- 空调购销合同+空调安装合同
- 中医病证诊断疗效
- 【黄连中黄连素的检测方案设计4200字(论文)】
- 会议纪要记录模板
- 早期生产遏制GP-12工作要求
- GB/T 16463-1996广播节目声音质量主观评价方法和技术指标要求
- GB/T 15972.20-2021光纤试验方法规范第20部分:尺寸参数的测量方法和试验程序光纤几何参数
- GA/T 1068-2015刑事案件命名规则
- 刘德武《如何画正方形》课件
- 政务礼仪-位次礼仪课件
- 绝缘电阻和接地电阻的测量实验
评论
0/150
提交评论