Ch11-软件测试自动化-STMT.

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

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

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

资源描述

谢谦软件测试方法和技术第2版第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什么是测试自动化自动化测试=测试工具?用测试工具执行测试的过程?用工具完成测试任务?让我们先看1-2个例子,动手做一做,获得感性认识自动化测试(automatedtest)是相对手工测试而存在的一个概念,由手工逐个地运行测试用例的操作过程被测试工具自动执行的过程所代替。测试工具的使用是自动化测试的主要特征自动化测试的例子(1)先下载并安装SeleniumIDE自动化测试的例子(2)录制操作查看脚本回放脚本自动化测试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对象的识别IEDOMInspectorDOM对象识别工具FireBug对象映射Version1.0Version2.0DeterminesMatchTesterseesToolsees对象库对象库是本地在测试结构范围内存储对像信息.对象库例如对象(属性)包含登陆窗口在记录过程中捕获的:-AgentNamefield-Passwordfield-OKbutton-Cancelbutton-Helpbutton11.2.3脚本技术线性脚本,是录制手工执行的测试用例得到的脚本,这种脚本包含所有的击键、移动、输入数据等,所有录制的测试用例都可以得到完整的回放。结构化脚本,类似于结构化程序设计,具有各种逻辑结构、函数调用功能。数据驱动脚本,将测试输入存储在独立的(数据)文件中,而不是存储在脚本中。关键字驱动脚本,是数据驱动脚本的逻辑扩张线性脚本结构化脚本关键字驱动脚本数据驱动测试脚本OrderIDchangeswitheachorderplacedTestFailswhencomparingstaticbaselinetodynamicdataTestPasseswhencomparingpatternbaselinetodynamicdata动态内容匹配利用模式匹配技术来验证数据如不是验证“OrderID230”,而是“OrderID###”当验证应用的行为时,考虑了各种不同的合法响应另外一个例子11.2.4自动比较静态比较和动态比较,简单比较和复杂比较,敏感性测试比较和健壮性测试比较,比较过滤器。Web验证命令的示例(Selenium)验证点命令对象值verifyTitleMyPageverifyValuenameFieldJohnSmithverifySelecteddorpdown2value=js*123verifyTextPresentYouarenowloggedinverifyAttributetxt1@classbigAndBlodverfyVisiblepostcode测试自动化的基本结构机房客户端文件服务器数据库服务器Web服务器控制程序拷贝测试文件拷贝测试结果分派工作分派工作查询结果Build系统编译获取测试任务、数据更新显示软件包发布指令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自动化测试的引入和应用找准测试自动化的切入点把测试开发纳入整个软件开发体系测试自动化依赖测试流程和测试用例软件测试自动化的投入较大进行资源的合理调度11.4功能测试工具11.4.1关键特性11.4.2Selenium及其应用11.4.3Web功能测试工具11.4.4AutoIT及其客户端测试工具11.4.5嵌入式测试工具GUI测试工具步骤录制测试脚本编辑测试脚本调试脚本执行结果分析对象识别优化脚本验证确定缺陷加验证点示例:QTP11.4.1关键特性支持的脚本语言是VBScript能引用外部的VBS代码库支持录制和回放的功能提供对象识别工具支持多种方法来识别对象支持抽象层和对象库支持数据驱动、关键字驱动测试脚本编辑器支持两种视图支持描述性编程关键特性(2)支持各种类型的验证点设置环境变量错误现场恢复测试结果有多种状态提供调试环境,以及分布式、跨平台执行环境对外提供了大量的API和对象、插件容错处理机制命令行方式运行测试脚本支持远程代理程序的运行11.4.2Selenium及其应用Selenium及其应用适合Web应用的测试,可直接运行在浏览器之上,所见即所得跨平台,支持多操作系统和多种浏览器支持分布式应用的测试,构造一个完整的解决方案支持两种开发脚本的模式testrunner(HTML文件)和driven(脚本语言编写)支持多种脚本语言,包括Java、C#、PHP、Perl、Python和Ruby等IDE界面操作演示录制测试脚本执行测试脚本测试结果Testrunnervs.驱动模式脚本HTML表格方式关键字驱动脚本Java/C#/…强大、灵活与xUnit集成Selenium测试用例开发主文件:TestRunner.html/TestRunner.htaTestsuite/case文件引擎库js文件user-extensions.jsSelenium执行模式11.4.3Web功能测试工具基于Web应用的测试工具主要进行链接检查、HTML检查、Web功能和Web站点安全性等各个方面的测试。常见的Web功能测试工具开源的Web功能测试工具商业的Web功能测试工具MaxQ、CanooWebTest、Slimdog、WatiR、WatiN、WatiJ、FITParasoftWebKing、SOAPtest、WebCheck、…11.4.4AutoIT及其客户端测试工具文件与目录详细信息AutoIt3.exe主程序,可以解释运行UniCode版本的脚本文件。AutoIt.exe主程序,可以解释运行ANSI版本的脚本文件。AU3Info.exeAutoIt窗口信息工具(AutoItWindowInfoTool),识别GUI对象。Aut2Exe/Aut2ExeA.exe用于将au3脚本(UniCode/ANSI版本)编译成exe可执行文件Include官方提供的库文件,提供开发脚本时所需的各种函数。AutoItX可以被嵌入到其它工具和语言中

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

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

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

×
保存成功