您好,欢迎访问三七文档
当前位置:首页 > 医学/心理学 > 药学 > 第11章软件测试自动化xg.
软件质量保证与测试第11章软件测试自动化西安财经学院软件质量保证与测试工欲善其事,必先利其器软件质量保证与测试第11章软件测试自动化11.1测试自动化的内涵11.2测试自动化实现的原理11.3测试自动化的实施11.4功能测试工具11.5性能测试工具11.6安全性测试工具11.7缺陷跟踪系统11.8管理工具软件质量保证与测试11.1测试自动化的内涵11.1.1手工测试的局限性11.1.2什么是测试自动化11.1.3软件测试自动化的优势软件质量保证与测试测试面临的问题测试用例会越来越多,工作量越来越大,而且许多测试用例会被不断地重复执行。如果由手工来完成,不仅占用很多人力资源,而且工作重复单调,会影响测试人员的积极性,降低测试工作人员的热情…怎么办?软件质量保证与测试11.1.1手工测试的局限性通过手工测试(manualtest)无法做到覆盖所有代码路径;许多与时序、死锁、资源冲突、多线程等有关的错误通过手工测试很难捕捉到。在系统负载、性能测试时,需要模拟大量数据、或大量并发用户等各种应用场合时,也很难通过手工测试来进行。在进行系统可靠性时,需要模拟系统运行十年、几十年,以验证系统能否稳定运行,也是手工测试无法模拟的。如果有大量(几千)的测试用例,需要在短时间内完成,手工测试又怎么办呢?测试可以发现错误,并不能表明程序的正确性。软件质量保证与测试11.1.2什么是测试自动化自动化测试=测试工具?用测试工具执行测试的过程?用工具完成测试任务?自动化测试(automatedtest)是相对手工测试而存在的一个概念,由手工逐个地运行测试用例的操作过程被测试工具自动执行的过程所代替。测试工具的使用是自动化测试的主要特征软件质量保证与测试自动化测试vs.测试自动化自动化测试焦点集中在测试执行,主要是由测试工具自动地完成测试。测试自动化指“一切可以由计算机系统自动完成的测试任务都已经由计算机系统或软件工具、程序来承担并自动执行”。软件质量保证与测试自动化测试vs.测试自动化........测试自动化理念全过程所有测试活动包括测试设计测试管理........自动化测试测试工具测试执行单项活动软件质量保证与测试自动运行的速度快,是手工无法相比的。测试结果准确。例如搜索用时及时是0.33秒或0.24秒,系统都会发现问题,不会忽视任何差异高复用性。一旦完成所用的测试脚本,可以一劳永逸运行很多遍永不疲劳可靠独特的能力11.1.3软件测试自动化的优势软件质量保证与测试自动化测试带来的好处测试周期缩短更高质量的产品软件过程更规范高昂的团队士气节省人力资源,降低企业成本充分利用硬件资源,降低企业成本。软件质量保证与测试手工测试发现缺陷率高容易实施创造性、灵活性覆盖率量化困难重复测试效率低不一致性、可靠性低依赖人力资源高效率(速度)高复用性覆盖率容易度量准确、可靠不知疲劳激励团队士气机械、难以发现缺陷一次性投入大自动测试手工测试vs.自动测试软件质量保证与测试正确认识测试自动化不现实的期望注定测试自动化的失败测试自动化能:显著降低重复手工测试的时间建立可靠、重复的测试,减少认为错误增强测试质量和覆盖率测试自动化不能:完全替代手工测试和手工测试工程师保证100%的测试覆盖率弥补测试实践的不足软件质量保证与测试各自特点软件测试自动化(TA)虽然具有很多优点,但只是对手工测试的一种补充,TA绝不能代替手工测试,有各自的特点:在系统功能逻辑测试、验收测试、适用性测试、涉及物理交互性测试时,多采用黑盒测试的手工测试方法;单元测试、集成测试、系统负载或性能、稳定性、可靠性测试等比较适合采用TA;对那种不稳定软件的测试、开发周期很短的软件、一次性的软件等不适合测试自动化工具本身并没有想象力和灵活性,根据经验报道,自动测试只能发现15%的缺陷,而手工测试可以发现85%的缺陷;TA工具在进行功能测试时,其准确的含义是回归测试工具,因为工具不能发现更多的新问题,但可以保证对已经测试过部分进行测试的准确性和客观性软件质量保证与测试11.2测试自动化实现的原理11.2.1代码分析11.2.2对象识别11.2.3脚本技术11.2.4自动比较技术11.2.5测试自动化系统的构成软件质量保证与测试测试自动化的原理和方法代码分析:类似于高级编译系统,在工具中定义类/对象/函数/变量等定义规则、语法规则等,在分析时对代码进行语法扫描,找出不符合编码规范的地方。捕获和回放:代码分析是一种白盒测试的自动化方法,捕获和回放则是一种黑盒测试的自动化方法。直接编写脚本来操作、控制、验证对象:包括对象识别、脚本技术、对运行结果进行比较软件质量保证与测试自动化测试的流程举例保存脚本记录执行Log验证测试结果启动应用、执行脚本调用脚本创建脚本录制对象及其操作插入验证点调试脚本启动应用测试报告软件质量保证与测试11.2.1代码分析代码的静态分析的关键是建立各种规则,而这种规则的建立是依赖于相应编程语言的语法。如依据EBNF(扩展巴科斯-诺尔范式)对Java代码的分析。参考ParasoftJtest或C++test软件质量保证与测试举例软件质量保证与测试代码扫描编译器规则工具软件质量保证与测试11.2.2对象识别Windows对象Mac对象WebDOM对象软件质量保证与测试逻辑名称是对象属性之一的值数值用于识别对象名称Nativeclass:EditAttachedText:AgentName:Enabled:TrueFocused:TrueHeight:20Text:HaroldWidth:119Windows对象识别软件质量保证与测试对象识别工具软件质量保证与测试DOM对象的识别IEDOMInspector软件质量保证与测试DOM对象识别工具FireBug软件质量保证与测试11.2.3脚本技术线性脚本,是录制手工执行的测试用例得到的脚本,这种脚本包含所有的击键、移动、输入数据等,所有录制的测试用例都可以得到完整的回放。结构化脚本,类似于结构化程序设计,具有各种逻辑结构、函数调用功能。数据驱动脚本,将测试输入存储在独立的(数据)文件中,而不是存储在脚本中。关键字驱动脚本,是数据驱动脚本的逻辑扩张软件质量保证与测试线性脚本软件质量保证与测试结构化脚本软件质量保证与测试关键字驱动脚本软件质量保证与测试数据驱动测试脚本OrderIDchangeswitheachorderplacedTestFailswhencomparingstaticbaselinetodynamicdataTestPasseswhencomparingpatternbaselinetodynamicdata动态内容匹配利用模式匹配技术来验证数据如不是验证“OrderID230”,而是“OrderID###”当验证应用的行为时,考虑了各种不同的合法响应软件质量保证与测试另外一个例子软件质量保证与测试对象映射Version1.0Version2.0DeterminesMatchTesterseesToolsees软件质量保证与测试对象库对象库是本地在测试结构范围内存储对像信息。对象库例如对象(属性)包含登陆窗口在记录过程中捕获的:-AgentNamefield-Passwordfield-OKbutton-Cancelbutton-Helpbutton软件质量保证与测试测试自动化成本/收益分析结构成本收益净收益RecordingandPlayback8.3112.7Data-drivenstructureusingdatapools8.4189.6Frameworkstructure9.8155.2Framework/data-driven(hybrid)structurefocusingonviewsoftheapplicationandusingdatapools11.6197.4软件质量保证与测试11.2.4自动比较静态比较和动态比较,简单比较和复杂比较,敏感性测试比较和健壮性测试比较,。比较过滤器软件质量保证与测试Web验证命令的示例(Selenium)验证点命令对象值verifyTitleMyPageverifyValuenameFieldJohnSmithverifySelecteddorpdown2value=js*123verifyTextPresentYouarenowloggedinverifyAttributetxt1@classbigAndBlodverfyVisiblepostcode软件质量保证与测试11.3测试自动化的实施11.3.1测试工具的分类11.3.2测试工具的选择11.3.3测试自动化普遍存在的问题11.3.4自动化测试的引入和应用软件质量保证与测试11.3.1测试工具的分类根据测试方法不同,分为白盒测试工具和黑盒测试工具、静态测试工具和动态测试工具等。根据工具的来源不同,分为开源测试工具(多数是免费的)和商业测试工具、自主开发的测试工具和第三方测试工具等。根据测试的对象和目的,分为单元测试工具、功能测试工具、性能测试工具、测试管理工具等软件质量保证与测试更细的分类静态测试工具•扫描分析:Findbugs,JTest/C++Test•规则定义动态测试工具•内存检测工具•录制/回放工具•负载测试工具•监控工具软件质量保证与测试11.3.2测试工具的选择需求,自己特定的需求开源、商业、自己开发?功能成熟度运行环境支持、服务价格软件质量保证与测试选择流程软件质量保证与测试11.3.3测试自动化普遍存在的问题不正确的观念或不现实的期望缺乏具有良好素质、经验的测试人才测试工具本身的问题影响测试的质量测试脚本的质量低劣没有进行有效的、充分的培训没有考虑到公司的实际情况,盲目引入测试工具没有形成一个良好的使用测试工具的环境其它问题软件质量保证与测试测试自动化项目的本质测试自动化项目本质上是软件开发项目一个测试自动化项目必须具有:清晰定义并严格实施的过程来自组织各级的支持周密的计划具体的设计和架构软件质量保证与测试对策正确的认识找准测试自动化的切入点把测试脚本开发纳入整个软件开发体系软件程序开发和测试自动化不可分离资源的合理调度测试自动化依赖测试流程和测试用例降低测试自动化的投入、提高其产出软件质量保证与测试11.3.4自动化测试的引入和应用找准测试自动化的切入点把测试开发纳入整个软件开发体系测试自动化依赖测试流程和测试用例软件测试自动化的投入较大进行资源的合理调度软件质量保证与测试自动化测试工作流程收集测试信息•测试需求是什么?•那里能得到用到的数据?建立基本测试•纪录用户的操作•核实成功回放提高基本测试•插入测试点•驱动测试数据整体测试•关联数据•建立综合的测试场景计划1创建2核实和提高3整合4计划自动化测试纪录用户操作形成基本测试对回放和测试提高自动化测试运行多种测试检查数据流软件质量保证与测试测试自动化的基本结构机房客户端文件服务器数据库服务器Web服务器控制程序拷贝测试文件拷贝测试结果分派工作分派工作查询结果Build系统编译获取测试任务、数据更新显示软件包发布指令软件质量保证与测试11.4功能测试工具11.4.1关键特性11.4.2Selenium及其应用11.4.3Web功能测试工具11.4.4AutoIT及其客户端测试工具11.4.5嵌入式测试工具软件质量保证与测试示例:QTP软件质量保证与测试GUI测试工具步骤录制测试脚本编辑测试脚本调试脚本执行结果分析对象识别优化脚本验证确定缺陷加验证点软件质量保证与测试11.4.1关键特性支持的脚本语言是VBScript能引用外部的VBS代码库支持录制和回放的功能提供对象识别工具支持多种方法来识别对象支持抽象层和对象库支持数据驱动、关键字驱动测试脚本编辑器支持两种视图支持描述性编程软件质量
本文标题:第11章软件测试自动化xg.
链接地址:https://www.777doc.com/doc-2153204 .html