软件测试方法和技术-Ch.11软件测试自动化_第1页
软件测试方法和技术-Ch.11软件测试自动化_第2页
软件测试方法和技术-Ch.11软件测试自动化_第3页
软件测试方法和技术-Ch.11软件测试自动化_第4页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件测试方法和技术软件测试方法和技术 - Ch.11软件测试自动化软件测试自动化Zhu.K朱少民朱少民Kerry Zhu第十一章第十一章 软件测试自动化软件测试自动化Zhu.K11.1测试自动化的内涵测试自动化的内涵11.2 测试工具的分类和选择测试工具的分类和选择11.3 测试工具的主流产品介绍测试工具的主流产品介绍 11.4 IBM-Rational产品的整体解决方案产品的整体解决方案11.5 Mercury Interactive产品的整体解决方案产品的整体解决方案11.6 Compuware产品的整体解决方案产品的整体解决方案11.1测试自动化的内涵测试自动化的内涵Zhu.K11.1.

2、1 为什么要软件测试自动化为什么要软件测试自动化11.1.2 自动化测试的引入和应用自动化测试的引入和应用11.1.3 测试自动化的基本结构测试自动化的基本结构11.1.4 测试自动化的原理和方法测试自动化的原理和方法 11.1.5 测试自动化普遍存在的问题测试自动化普遍存在的问题手工测试的局限性手工测试的局限性Zhu.Kp 通过手工测试无法做到覆盖所有代码路径;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, C

4、hinese, Arabic, ThaipOffice 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)Zhu.Kn代码全部代码全部Code Path测试覆盖也几乎不可能测试覆盖也几乎不可能n每一个ifelse或switch语句就会把情况

5、增加一倍n许多异常处理代码在正常使用中不会碰到n许多与时序,死锁,资源冲突,多线程有关的错误很难捕捉到n每一个产品都会有不同的版本外加各自的SP与QFE (Quick Fix Engineering, 又称Hot fix)nNT4, VS6 SP1SP5, Windows 2000 SP1-SP4nVS .NET, SQL Server SP1 SP3n可重复使用的自动测试对产品未来版本与Service Pack的测试将有事半功倍的效果手工测试的局限性手工测试的局限性 (2)Zhu.K自动化测试带来的好处自动化测试带来的好处1. 缩短周期缩短周期 Testing cycle - Regress

6、ion Testing2. Attributes of TA,Speed 速度Efficiency 效率Accuracy and Precise 准确、精确 Relentlessness 无情3. 容易实施、结果可靠4. 做手工不能做Zhu.K手工测试手工测试 耗费时间耗费时间 低可靠性低可靠性 人力资源人力资源 不一致性不一致性 仅对于一次性的测试有益仅对于一次性的测试有益 速度速度 可重复可重复 覆盖率覆盖率 可靠可靠 可以再度使用可以再度使用 重复测试节省时间重复测试节省时间自动测试自动测试手工测试手工测试 vs.自动测试自动测试Zhu.K正确认识测试自动化正确认识测试自动化n不现实的期

7、望注定测试自动化的失败不现实的期望注定测试自动化的失败n测试自动化能:测试自动化能:n显著降低重复手工测试的时间显著降低重复手工测试的时间n建立可靠、重复的测试,减少认为错误建立可靠、重复的测试,减少认为错误n增强测试质量和覆盖率增强测试质量和覆盖率n测试自动化不能:测试自动化不能:n完全替代手工测试和手工测试工程师完全替代手工测试和手工测试工程师n保证保证100%的测试覆盖率的测试覆盖率n弥补测试实践的不足弥补测试实践的不足Zhu.K各自特点各自特点软件测试自动化(TA)虽然具有很多优点,但只是对手工测试的一种补充,TA绝不能代替手工测试,有各自的特点:p 在系统功能逻辑测试、验收测试、适用

8、性测试、涉及物理交互性测试时,多采用黑盒测试的手工测试方法;p 单元测试、集成测试、系统负载或性能、稳定性、可靠性测试等比较适合采用TA;p 对那种不稳定软件的测试、开发周期很短的软件、一次性的软件等不适合测试自动化p 工具本身并没有想象力和灵活性,根据经验报道,自动测试只能发现15%的缺陷,而手工测试可以发现85%的缺陷;TA工具在进行功能测试时,其准确的含义是回归测试工具,因为工具不能发现更多的新问题,但可以保证对已经测试过部分进行测试的准确性和客观性Zhu.K测试自动化项目的本质测试自动化项目的本质p定义:定义:利用GUI自动化测试工具来开发和执行测试脚本,从而验证是否满足需求p本质:本

9、质:测试自动化项目本质上是软件开发项目p一个测试自动化项目必须具有:p清晰定义并严格实施的过程p来自组织各级的支持p周密的计划p具体的设计和架构Zhu.K测试自动化成本测试自动化成本/收益分析收益分析结构结构成本成本收益收益净收净收益益No Automation000Recording and Playback8.3112.7Data-driven structure using datapools8.4189.6Framework structure9.8155.2Framework / data-driven (hybrid) structure focusing on views of

10、the application and using datapools11.6197.4Zhu.K自动化测试的引入和应用自动化测试的引入和应用p 找准测试自动化的切入点找准测试自动化的切入点p 把测试开发纳入整个软件开发体系把测试开发纳入整个软件开发体系p 测试自动化依赖测试流程和测试用例测试自动化依赖测试流程和测试用例p 软件测试自动化的投入较大软件测试自动化的投入较大p 进行资源的合理调度进行资源的合理调度Zhu.K自动化测试工作流程自动化测试工作流程收集测试信息收集测试信息测试需求是什么?那里能得到用到的数据?建立基本测试建立基本测试纪录用户的操作核实成功回放提高基本测试提高基本测试插入

11、测试点驱动测试数据整体测试整体测试关联数据建立综合的测试场景计划计划1创建创建2核实核实 和和 提高提高3整合整合4计划自动化测试计划自动化测试纪录用户操作形纪录用户操作形成基本测试成基本测试对对 回放回放 和和 测试测试提高自动化测试提高自动化测试运行多种测试检运行多种测试检查数据流查数据流Zhu.K测试自动化的基本结构测试自动化的基本结构机房客户端文件服务器数据库服务器Web服务器 控制程序拷贝测试文件拷贝测试结果分派工作分派工作查询结果Build系统编译获取测试任务、数据更新显示软件包Zhu.K发布指令测试自动化的原理和方法测试自动化的原理和方法p 代码分析代码分析: : 类似于高级编译

12、系统,在工具中定义类类似于高级编译系统,在工具中定义类/对象/函数/变量等定义规则、语法规则等,在分析时对代码进行语法扫描,找出不符合编码规范的地方。p 捕获和回放捕获和回放: : 代码分析是一种白盒测试的自动化方法,代码分析是一种白盒测试的自动化方法,捕获和回放则是一种黑盒测试的自动化方法。Zhu.K对象识别对象识别编辑框编辑框下拉框下拉框按钮按钮QuickTest 在支持应用中识别、确定每一个对象是什么类型复选框复选框选择框选择框Zhu.K对象识别对象识别 2n逻辑名称是对象属性之一的值逻辑名称是对象属性之一的值n数值数值 用于识别对象名称用于识别对象名称Nativeclass: Edit

13、Attached Text: Agent Name:Enabled: TrueFocused: TrueHeight: 20Text: HaroldWidth: 119Zhu.K对象识别对象识别 3对象库 是本地在测试结构范围内 存储对像信息.对象库对象库例如对象 (属性) 包含登陆窗口在记录过程中捕获的:- Agent Name field- Password field- OK button- Cancel button- Help buttonZhu.K脚本技术脚本技术p 线性脚本线性脚本,是录制手工执行的测试用例得到的脚本,这种脚本包含所有的击键、移动、输入数据等,所有录制的测试用例都

14、可以得到完整的回放。p 结构化脚本结构化脚本,类似于结构化程序设计,具有各种逻辑结构、函数调用功能。p 共享脚本共享脚本,是指某个脚本可以被多个测试用例使用。p 数据驱动脚本数据驱动脚本,将测试输入存储在独立的(数据)文件中,而不是存储在脚本中。p 关键字驱动脚本关键字驱动脚本,是数据驱动脚本的逻辑扩张Zhu.KExample -1GUI Script (.rec)Low-Level scriptVU Script (.S)GUI Shell Script (.rec)Project Header File (.sbh)SQABasic File (.sbl)Zhu.KScript examp

15、le -2Zhu.KGUI Scripts typesTS-scriptIt include the script which can not be re-used, we often use it to generate 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.Zhu.KSample script=Section Two - header fi

16、le, public variables and constants declaration area= $include rtpCMCSanity0225_BB_X.sbh$Include rtpCMC5_BB.sbh$include 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

17、If there already a meeting meeting, didnt start again SQASuspendLogOutput Result = WindowVP (Exists, Caption=* +MEETING_CLIENT_CAPTION+ *, VP=Window Existence;Wait=1,3) SQAResumeLogOutput If Result = 0 ThenResult = func_MiscScheduleStartMeetingSimple (PAGE_CAPTION, meetingTopic, MEETING_PASSWD)ElseE

18、nd IfZhu.KSQAGetProperty Result = SQAGetProperty (ObjectRec, State, CheckState)SQAGetPropertyAsString Result = SQAGetPropertyAsString(;Caption=Notepad - (Untitled), WindowState, StateString)SQASetProperty SQASetProperty Name=FirstName, Text, Michael“SQAWaitForObject Result = SQAWaitForObject(Type=Pu

19、shButton;Text=OK, 120000)Object Scripting commands Zhu.KCheckBox CheckBox Click, Name=OverdraftComboBox, ComboListBoxEditBoxHTMLDocument , HTMLImage , HTMLLink InputKeysInputKeys This is Robot.EnterUser Action commandsZhu.K自动比较自动比较 p 静态比较和动态比较, p 简单比较和复杂比较, p 敏感性测试比较和健壮性测试比较,。p 比较过滤器Zhu.KComboBoxVPE

20、ditBoxVPFileVPHTMLLinkVP HTMLDocumentVP ListViewVPWindowVPJavaListViewVP Syntax of WindowVP function: Result = WindowVP (action%, recMethod$, parameters$) action can be one of following values CompareImage CompareMenu CompareProperties Exists/DoesNotExist WindowVP (CompareImage, Caption=Paint, VP=PI

21、CT1A) This function returns 1 if the action performed passes Return 0 if the action performed fails. Verification Point commandsZhu.K 测试自动化普遍存在的问题测试自动化普遍存在的问题p 不正确的观念或不现实的期望不正确的观念或不现实的期望p 缺乏具有良好素质、经验的测试人才缺乏具有良好素质、经验的测试人才p 测试工具本身的问题影响测试的质量测试工具本身的问题影响测试的质量p 没有进行有效的、充分的培训没有进行有效的、充分的培训p 没有考虑到公司的实际情况,盲目引

22、入测试工具没有考虑到公司的实际情况,盲目引入测试工具p 没有形成一个良好的使用测试工具的环境没有形成一个良好的使用测试工具的环境p 其它技术问题和组织问题其它技术问题和组织问题Zhu.K11.2 测试工具的分类和选择测试工具的分类和选择Zhu.K11.2.1 测试工具的分类测试工具的分类11.2.2 测试工具的选择测试工具的选择测试工具是测试自动化的表现测试工具的研究测试工具的研究软件测试的过程是一项很复杂而费时的工作,它不仅执行每一个测试用例,还要设置运行环境、记录输出、运行后清理并记录失败信息。仅仅依靠测试人员手工完成是很困难的。所以必须研究测试工具以帮助测试人员自动或半自动的完成测试。在

23、资金和人力、时间的供给一定的条件下面,拥有好的测试工具能够提高测试效率从而降低测试成本,则能够选择更高的测试充分性标准进行测试,从而提高软件质量。Zhu.K测试工具的例子测试工具的例子Zhu.K测试工具的分类测试工具的分类Code analysis Tools- Static analysis- Dynamic analysisTest Execution Tool- Capture and Replay ( Record & Playback)- Monitor Tool- Stubs and Drivers- Automated Testing EnvironmentTest case g

24、eneratorsZhu.K测试工具的选择测试工具的选择Zhu.K11.3 测试工具的主流产品介绍测试工具的主流产品介绍 Zhu.K11.3.1 面向开发的单元测试工具面向开发的单元测试工具11.3.2 负载和性能测试工具负载和性能测试工具11.3.3 GUI功能测试工具功能测试工具11.3.4 基于基于Web应用的测试工具应用的测试工具11.3.5 软件测试管理和其他工具软件测试管理和其他工具面向开发的单元测试工具面向开发的单元测试工具根据不同的语言进行分类:pC/C+单元级测试工具Panorama C+,C+Test, Numega pJUnit是一个开发源代码的Java测试框架根据工具的

25、功能特点进行分类:p 内存资源泄漏检查工具:Numega中的BounceChecker, Rational的Purify等p 代码覆盖率检查工具:Numega的TrueCoverage, Rational的PureCoverage,TeleLogic公司的Logiscopep 代码性能检查工具:Logiscope和 Macabe等。p 软件纠错工具Rational Purl等。Zhu.K负载和性能测试工具负载和性能测试工具属性属性LoadRunner /MIQALoad /CompuwareWebLoad/Radview价格昂贵较贵一般安装配置简单简单一般操作性较复杂简单简单支持测试对象各种中

26、间件/数据库/应用服务器的性能监控/企业架构(j2ee和.net)的测试客户/服务器系统、企业资源配置(ERP)和电子商务应用Web Application支持平台windows,unix或linuxHP-UX, IBM AIX,Sun Solaris, Linux, NT/2kUnix Windows支持数据库DB2, SQLserver, Orcale, SybaseADO, DB2, Oracle, Sybase, SQLserver, OdbcADO, DB2, Oracle, Sybase, SQLserver, Odbc支持协议web,http(s), soap, streamin

27、g, 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.KGUI功能测试工具功能测试工具将操作应用程序的各种动作和输入记录下来,包括键盘操作、鼠标点击等捕捉(Record)下来,生成一个脚本文件,这个脚本以后可以被“回放( playback)” 。在实际测试过程中,要根据测试需求对录制的脚本进行一些必要的修改或加入一些参数,如选

28、择不同的测试数据、脚本中插入检查点(Check Point)进行跟踪调试等。基于GUI功能测试工具主要适合回归测试阶段。当一个应用开发基本完成后,程序界面基本定型,虽然业务的需求会很频繁变化,但测试脚本结构基本不需要改动,只需要做些小调整,就可以自动运行,则可大大提高了测试的效率和测试的准确性。目前主要产品有MI公司的 WinRunner, Compuware的QARun, Rational的 SQA Robot,MS Visual Test Suite等Zhu.KGUI自动化测试自动化测试p 设计测试用例,并手工进行测试。p 如果测试未通过,则先改正缺陷,再次执行测试。p 如果测试通过,利用

29、测试工具运行该测试过程,捕获运行过程需要检测的屏幕对象,并保存。p 在进行回归测试测试,自动利用测试工具运行测试,并比较运行过程的屏幕对象与保存的屏幕对象比较,从而判断测试用例是否通过。Zhu.K基于基于Web应用的测试工具应用的测试工具基于Web应用的测试工具主要进行链接检查、HTML检查、Web功能和Web站点安全性等各个方面的测试。主要Web测试工具有MI公司的Astra 系列(如Astra QuickTest )、RSW公司的 E-Test Suite等;Web系统测试工具: WorkBench、Web Application Stress Tool(WAS)、页面链接测试Link S

30、leuth等。Zhu.KWebsite性能测试测什么?性能测试测什么?各种操作的响应速度最大并发用户数最大数据容量ACT ACT (Application Center Test) Zhu.KACT测试中的常见术语测试中的常见术语nRPS (Request Per Second)n并发连接数 (Simultaneous Browser Connections)n思考时间 (Thinking Time)nRPS + SBC + Thinking Time = Concurrent users?Zhu.KACT测试的步骤测试的步骤n创建测试脚本n手工编写VBScriptn录音并修改n运行测试脚本n

31、设定并发用户数n设定用户身份n运行、观察、获取主观体验n理解结果报告n图表n各项性能统计数字n日志文件Zhu.K解读解读ACT测试结果测试结果nTTFB, TTLBnHTTP错误的含义n401n403n404n500常见的ACT结果图线Zhu.K其他其他Web负载发生工具负载发生工具p Microsofts Web Application Stress Toolp Cyranos OpenSTAp Quest Softwares Benchmark Factoryp Empirixs E-Test Suite 6.0p RadViews WebLoad 5.0p Rational Softwa

32、res Rational Robotp Mercury Interctives Astra LoadRunner 7.5p Compuwares QA Load 4.7p Segue Softwares SilePerformer 5.0Zhu.K11.4 Rational产品的整体解决方案产品的整体解决方案Zhu.K11.4.1 Rational测试产品结构测试产品结构11.4.2 Rational 全套测试解决方案的特点全套测试解决方案的特点 TestManager: 集中、可伸缩的测试管理平台Robot:传统应用自动化测试工具RobotJ:Web/Java自动测试工具ClearQuest

33、:缺陷跟踪工具Rational系统测试方案系统测试方案CoverageQuantifyPurifyPlanTestTestManagerDesignTestTestManagerImplementTestRobotRobotJTestManagerExecuteTestRobotRobotJTestManagerEvaluateTestClearQuestTestManagerChange Request and Configuration Management - ClearQuest and ClearCase LTRational Unified ProcessZhu.KTestMana

34、ger: 控制中心控制中心Zhu.KTestManager和和ClearQuest集成集成Zhu.KTestManager: 跨越整个测试周期跨越整个测试周期 Zhu.K自动实现缺陷与需求之间的关联自动实现缺陷与需求之间的关联Zhu.K测试度量测试度量: 覆盖覆盖, 趋势等趋势等Zhu.KRobot GUI的自动功能测试的自动功能测试2. 2. 执行测试脚本执行测试脚本OKFind执行脚本执行脚本检验结果检验结果报告错误报告错误迭代迭代1. 1. 创建测试脚本创建测试脚本选择测试需求录制操作过程(面向对象录制)插入验证点编辑生成的脚本(可选) Zhu.K和白盒工具集成和白盒工具集成Zhu.KR

35、obotJ:测试测试Java和和Web应用应用Script AssureDynamic DataValidation 技术保证了即使对象名称发生改变,测试脚本也能正常回放验证动态内容利用Eclipse这一标准的IDE环境,同时提供与版本控制工具的集成ProfessionalLanguageand IDENEWTechnology forJava and Web BasedApplicationsZhu.KScriptAssure: 降低了测试脚本的维护成本降低了测试脚本的维护成本Determines MatchTesterseesToolseesZhu.K动态数据验证动态数据验证:可伸缩的测试

36、脚本可伸缩的测试脚本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 #” 当验证应用的行为时,考虑了各种不同的合法响应Zhu.K业界标准的业界标准的IDE和测试脚本语言和测试脚本语言Eclip

37、se集成环境集成环境调试器、代码编辑器调试器、代码编辑器使用标准的使用标准的Java语言作为语言作为测试脚本语言测试脚本语言Zhu.KZhu.K11.5 MI产品的整体解决方案产品的整体解决方案60被测系统被测系统LoadRunner 的解决方案的解决方案Web服务器服务器数据库数据库服务器服务器压力产生压力产生虚拟用虚拟用户压力户压力测试机测试机解决测试资源的限制解决测试资源的限制 利用图表工具分析测试结果利用图表工具分析测试结果 利用录制的脚本进行回归测试利用录制的脚本进行回归测试AnalysisController 运行大量的运行大量的“Virtual Users”在不同的机器上在不同的机器上 利用利用 “Virtual Users”代替实际测试人员代替实际测试人员 通过通过“Controller”管理管理“ Vusers”Zhu.K61LoadRu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论