Ch11-软件测试自动化-STMT

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

软件测试方法和技术-Ch.11软件测试自动化Zhu.Kerry@gmail.com朱少民KerryZhu第十一章软件测试自动化Zhu.Kerry@gmail.com11.1测试自动化的内涵11.2测试工具的分类和选择11.3测试工具的主流产品介绍11.4IBM-Rational产品的整体解决方案11.5MercuryInteractive产品的整体解决方案11.6Compuware产品的整体解决方案11.1测试自动化的内涵Zhu.Kerry@gmail.com11.1.1为什么要软件测试自动化11.1.2自动化测试的引入和应用11.1.3测试自动化的基本结构11.1.4测试自动化的原理和方法11.1.5测试自动化普遍存在的问题手工测试的局限性Zhu.Kerry@gmail.com通过手工测试无法做到覆盖所有代码路径;许多与时序、死锁、资源冲突、多线程等有关的错误通过手工测试很难捕捉到在系统负载、性能测试时,需要模拟大量数据、或大量并发用户等各种应用场合时,也很难通过手工测试来进行在进行系统可靠性时,需要模拟系统运行十年、几十年,以验证系统能否稳定运行,也是手工测试无法模拟的。如果有大量(几千)的测试用例,需要在短时间内完成,手工测试又怎么办呢?测试可以发现错误,并不能表明程序的正确性。自动测试定义软件系统功能规格书(Spec)只是从书面上的一套软件产品是由一套完整的可运行的测试来定义的测试所有可能情况将遭遇“组合爆炸”问题Win98,WinME,WinNT,Win2k,WinXP,WinXPTablePCEd,WinXPMediaCenterEd,Longhorn,etcEnglish,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@gmail.com代码全部CodePath测试覆盖也几乎不可能每一个if…else…或switch语句就会把情况增加一倍许多异常处理代码在正常使用中不会碰到许多与时序,死锁,资源冲突,多线程有关的错误很难捕捉到每一个产品都会有不同的版本外加各自的SP与QFE(QuickFixEngineering,又称Hotfix)NT4,VS6SP1~SP5,Windows2000SP1-SP4VS.NET,SQLServerSP1–SP3可重复使用的自动测试对产品未来版本与ServicePack的测试将有事半功倍的效果手工测试的局限性(2)Zhu.Kerry@gmail.com自动化测试带来的好处1.缩短周期Testingcycle-RegressionTesting2.AttributesofTA,•Speed速度•Efficiency效率•AccuracyandPrecise准确、精确•Relentlessness无情3.容易实施、结果可靠4.做手工不能做Zhu.Kerry@gmail.com手工测试•耗费时间•低可靠性•人力资源•不一致性•仅对于一次性的测试有益速度可重复覆盖率可靠可以再度使用重复测试节省时间自动测试手工测试vs.自动测试Zhu.Kerry@gmail.com正确认识测试自动化不现实的期望注定测试自动化的失败测试自动化能:显著降低重复手工测试的时间建立可靠、重复的测试,减少认为错误增强测试质量和覆盖率测试自动化不能:完全替代手工测试和手工测试工程师保证100%的测试覆盖率弥补测试实践的不足Zhu.Kerry@gmail.com各自特点软件测试自动化(TA)虽然具有很多优点,但只是对手工测试的一种补充,TA绝不能代替手工测试,有各自的特点:在系统功能逻辑测试、验收测试、适用性测试、涉及物理交互性测试时,多采用黑盒测试的手工测试方法;单元测试、集成测试、系统负载或性能、稳定性、可靠性测试等比较适合采用TA;对那种不稳定软件的测试、开发周期很短的软件、一次性的软件等不适合测试自动化工具本身并没有想象力和灵活性,根据经验报道,自动测试只能发现15%的缺陷,而手工测试可以发现85%的缺陷;TA工具在进行功能测试时,其准确的含义是回归测试工具,因为工具不能发现更多的新问题,但可以保证对已经测试过部分进行测试的准确性和客观性Zhu.Kerry@gmail.com测试自动化项目的本质定义:利用GUI自动化测试工具来开发和执行测试脚本,从而验证是否满足需求本质:测试自动化项目本质上是软件开发项目一个测试自动化项目必须具有:清晰定义并严格实施的过程来自组织各级的支持周密的计划具体的设计和架构Zhu.Kerry@gmail.com测试自动化成本/收益分析结构成本收益净收益NoAutomation000RecordingandPlayback8.3112.7Data-drivenstructureusingdatapools8.4189.6Frameworkstructure9.8155.2Framework/data-driven(hybrid)structurefocusingonviewsoftheapplicationandusingdatapools11.6197.4Zhu.Kerry@gmail.com自动化测试的引入和应用找准测试自动化的切入点把测试开发纳入整个软件开发体系测试自动化依赖测试流程和测试用例软件测试自动化的投入较大进行资源的合理调度Zhu.Kerry@gmail.com自动化测试工作流程收集测试信息•测试需求是什么?•那里能得到用到的数据?建立基本测试•纪录用户的操作•核实成功回放提高基本测试•插入测试点•驱动测试数据整体测试•关联数据•建立综合的测试场景计划1创建2核实和提高3整合4计划自动化测试纪录用户操作形成基本测试对回放和测试提高自动化测试运行多种测试检查数据流Zhu.Kerry@gmail.com测试自动化的基本结构机房客户端文件服务器数据库服务器Web服务器控制程序拷贝测试文件拷贝测试结果分派工作分派工作查询结果Build系统编译获取测试任务、数据更新显示软件包Zhu.Kerry@gmail.com发布指令测试自动化的原理和方法代码分析:类似于高级编译系统,在工具中定义类/对象/函数/变量等定义规则、语法规则等,在分析时对代码进行语法扫描,找出不符合编码规范的地方。捕获和回放:代码分析是一种白盒测试的自动化方法,捕获和回放则是一种黑盒测试的自动化方法。Zhu.Kerry@gmail.com对象识别编辑框下拉框按钮QuickTest在支持应用中识别、确定每一个对象是什么类型复选框选择框Zhu.Kerry@gmail.com对象识别-2逻辑名称是对象属性之一的值数值用于识别对象名称Nativeclass:EditAttachedText:AgentName:Enabled:TrueFocused:TrueHeight:20Text:HaroldWidth:119Zhu.Kerry@gmail.com对象识别-3对象库是本地在测试结构范围内存储对像信息.对象库例如对象(属性)包含登陆窗口在记录过程中捕获的:-AgentNamefield-Passwordfield-OKbutton-Cancelbutton-HelpbuttonZhu.Kerry@gmail.com脚本技术线性脚本,是录制手工执行的测试用例得到的脚本,这种脚本包含所有的击键、移动、输入数据等,所有录制的测试用例都可以得到完整的回放。结构化脚本,类似于结构化程序设计,具有各种逻辑结构、函数调用功能。共享脚本,是指某个脚本可以被多个测试用例使用。数据驱动脚本,将测试输入存储在独立的(数据)文件中,而不是存储在脚本中。关键字驱动脚本,是数据驱动脚本的逻辑扩张Zhu.Kerry@gmail.comExample-1•GUIScript(.rec)•Low-Levelscript•VUScript(.S)•GUIShellScript(.rec)•ProjectHeaderFile(.sbh)•SQABasicFile(.sbl)Zhu.Kerry@gmail.comScriptexample-2Zhu.Kerry@gmail.comGUIScriptstypes•TS-scriptItincludethescriptwhichcannotbere-used,weoftenuseittogeneratetestlog.•B-scriptTABuildingblock,itincludethescriptwhichcanbere-used.•U-scriptUsedtomakesureallcodeinafunctioncanworknormally.Zhu.Kerry@gmail.comSamplescript'====SectionTwo-headerfile,publicvariablesandconstantsdeclarationarea================'$includertpCMCSanity0225_BB_X.sbh'$IncludertpCMC5_BB.sbh'$includertpReportLog.sbh'====SectionThree-UnittestscriptingareaforthissubroutineorfunctionSubMainCallScriptrtpCMCSanity0225_initDimResultAsIntegerDimmeetingTopicAsString'Iftherealreadyameetingmeeting,didn'tstartagainSQASuspendLogOutputResult=WindowVP(Exists,Caption={*+MEETING_CLIENT_CAPTION+*},VP=WindowExistence;Wait=1,3)SQAResumeLogOutputIfResult=0ThenResult=func_MiscScheduleStartMeetingSimple(PAGE_CAPTION,meetingTopic,MEETING_PASSWD)Else…EndIfZhu.Kerry@gmail.com•SQAGetPropertyResult=SQAGetProperty(ObjectRec,State,CheckState)•SQAGetPropertyAsStringResult=SQAGetPropertyAsString(\;Caption=Notepad-(Untitled),WindowState,StateString)•SQASetPropertySQASetPropertyName=FirstName,Text,Michael“•SQAWaitForObjectResult=SQAWaitForObject(Type=PushButton;Text=OK,120000)ObjectScriptingcommandsZhu.Kerry@gmail.com•CheckBoxCheckBoxClick,Name=Overdraft•ComboBox,ComboListBox•EditBox•HTMLDocument,HTMLImage,HTMLLink•InputKeysInputKeysThisisRobot.{Enter}UserActioncommandsZhu.Kerry@gmail.com自动比较静态比较和动态比较,简单比较和复杂比较,敏感性测试比较和健壮性

1 / 72
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功