




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件测试自动化二零一四年六月 专业:计算机科学与技术 班 级: 1101_ 学 号: 学生姓名: 于青霞_ 指导教师: 张建东_完成时间:2019年1月18日湖南理工学院摘要自动化测试是相对手工测试而存在的一个概念,由手工逐个地运行测试用例的操作过程被测试工具或系统自动执行的过程所代替,包括输入数据自动生成、结果的验证、自动发送测试报告等。主要是通过所开发的软件测试工具、脚本等来实现,但软件测试仅仅使用测试工具还不够,还需要借助网络通信环境、邮件系统、系统Shell命令、后台运行程序、改进的开发流程等,由系统自动完成软件测试的各项工作。测试自动化是软件测试中提高测试效率、覆盖率和可靠性等的重要手段,也可以说,测试自动化是软件测试不可分割的一部分。【关键字】自动化 测试工具 效率目录摘要2前言4一、 测试自动化的内涵4(一) 手工测试的局限性4(二) 什么是测试自动化4二、 测试自动化实现的原理4(一) 代码分析4(二) 对象识别5(三) 脚本技术5(四) 自动比较技术5(五) 测试自动化系统的构成5三、 测试自动化的引入和应用5四、 软件自动化的优劣势6五、 总结6参考文献6软件测试自动化前言软件测试时一项艰苦的工作,需要投入大量的时间和精力,据统计,软件测试会占用整个开发时间的40%甚至更高。而且软件测试工作具有较大的重复性,我们知道,软件在发布之前都要进行几轮测试,也就是说大量的测试用例会被执行几遍。在测试后期所进行的回归测试,大部分测试工作也是重复的。对于为了解决软件缺陷、需求变化、代码修改很少,而为了覆盖代码改动所造成的影响而需要进行的大量的测试这种情况,虽然回归测试找到软件缺陷的可能性很小,效率比较低,但又是必要的。此后,软件产品版本不断更新,不断增加功能或者修改功能,期间所进行的测试工作重复性也很高,所以这些因素驱动着软件自动化的产生和发展。1、 测试自动化的内涵(1) 手工测试的局限性测试人员在进行手工测试时,具有创造性,可以举一反三,而且对于那些复杂的逻辑判断、界面是否友好,手工测试具有明显的优势。但是,简单的功能性测试用例在每一轮测试中都不能少,而且具有一定的机械性、重复性,其工作量往往很大,无法体现手工测试优越性。如果让手工做重复的测试,容易引起测试人员的乏味,严重影响工作情绪等。而且,手工测试在某些方面甚至束手无策、无法实现测试的目标,存在着一定的局限性。(2) 什么是测试自动化自动化测试是把人为驱动的测试行为转化为机器执行的一种过程,即模拟手工测试步骤,通过执行由程序语言编制的测试脚本。自动地完成软件的单元测试、功能测试、负载测试或性能测试等全部工作。自动化意味着测试全过程的自动化和测试管理工作的自动化。虽然软件测试过程不能完全实现自动化,但是,我们理应每时每刻想这个方向努力,不断地问自己-这些测试工作能否由软件系统或者工具来自动完成?在测试计划、设计、实施和管理的任何时刻,始终寻求更有效、更可靠地方法和手段,以有助于提高测试的效率。所有有人更希望将测试自动化解释为“能够使测试过程简单并有效率、使测试过程更为快捷而没有延误的方法或努力”。“全过程的自动化测试”思想是非常重要的,会改变我们测试工作的思维、改变我们测试的生活,将测试带到一个新的境界。2、 测试自动化实现的原理(1) 代码分析最早进行代码分析的工具室编译器。但是,早期的编译器对那些语法上正确但是非常可疑的代码结构置之不理。1979年,贝尔实验室的Steve Johnson 在PCC基础上开发出代码分析工具Lint,能检查出更多不符合规范的错误以及函数接口参数不一致性问题等,完成代码健壮性检查。代码分析工具还体现在集成开发环境(IDE)中,多数IDE的代码编辑器都可以实时进行代码检查,直接定位和高亮显示警告信息和可能的错误。除了基本的分析、内建的静态分析外,大部分IDE都有可选的插件来执行更全面的代码分析。(2) 对象识别通过寻找UI上的对象来确定操作的目标能够实现对用户界面的操作,GUI对象的识别工具比较多,微软Visual Studio 中就柏涵了Spy+,它可以用来识别各种Windows 的GUI对象。要识别对象,就是获得UI对象的ID、对象名、然后根据对象的ID、对象名,确定其属性值等数据。基于GUI对象识别和控制的自动化测试工具,在脚本语言中一般使用Windows User Interface 一类的API调用来识别、操作GUI对象。Windows UI API 函数封装了操作应用软件所需的接口函数,包括键盘和鼠标的捕获,以及窗口、按钮、选择项等的识别和操作。除了Windows API函数调用方法之外,还有其他的一些技术可以采用,如反射机制。通过反射来加载被测试程序,获取被测试程序的各种属性,触发被测试程序的各种事件,从而达到自动化测试的目的。在.NET、C+、Java程序语言中都提供了反射机制,增加了这些非动态语言的动态性,可以在程序运行时动态地创建类的实例,并绑定到现有对象,然后调用类的方法或访问其字段和属性,这也为自动化测试提供了一种获取对象信息的途径。(3) 脚本技术脚本是一组测试工具执行的指令集合,也是计算机程序的一种形式。脚本可以通过录制测试的操作产生,然后再做修改,可以减少脚本开发的工作量。当然,也可以直接用脚本语言编写脚本。自动化测试脚本不仅包含操作数据和指令,还包括同步、比较信息、捕获何种屏幕数据及存储在何处、从另一个数据源读取数据时从何处读取和控制信息等。脚本技术不仅用在功能测试上,来模拟用户的操作然后进行比较,而且可以用在性能、负载测试上,模拟并发用户进行相同或者不同的操作,以给系统或服务器足够的负载,以检查系统或服务器的响应速度、数据吞吐能力等。脚本可以分为线性脚本、结构化脚本、数据脚本和关键字驱动脚本。在脚本开发过程中,常常将这几种脚本结构合起来使用。(4) 自动比较技术自动执行测试脚本时,预期输出时事先定义的或插入脚本中,然后再测试过程中运行脚本,将捕获的结果和预先准备的输出进行比较,从而确定测试用例是否通过。所以,自动比较在软件测试自动化中就非常重要。简单比较,就是对执行过程中输出的数值和期望获得的数值进行比较。复杂的比较,比如:比较文件名、文件大小、文件内容,还有Windows窗口或控件的属性,甚至比较整个屏幕或屏幕上某个区域图像等。在软件自动化测试脚本中,一般存在两类比较模式-验证(Verify)和断言(Assert),其比较能力是相近的,Assert命令都有对应的Verify命令,但对验证结果的处理技术是不一样的。当Assert失败时,则退出当前测试;当Verify失败时,测试会继续运行。(5) 测试自动化系统的构成测试自动化的基本结构由6部分组成。构建、存放程序软件包的文件服务器;存储测试用例和测试结果的数据库服务器;执行测试的运行环境-测试实验室,或一组测试用的服务器或PC;控制服务器;Web服务器;客户端程序。3、 测试自动化的引入和应用在全面启动软件测试自动化之前,首先要建立对软件测试自动化正确的认识观。软件测试自动化只是对手工测试的一种补充,绝不能代替手工测试。多数情况下,将手工测试和自动化测试相结合,以最有效的方法来完成测试任务。找准测试自动化的切入点。当开始启动测试自动化时,不要希望一下子就能做很多事情,可以从最基本的测试工作切入,如验证信构建的软件包是否有严重的或致命的问题,即验证当前软件包的基本功能是否正常工作。把测试开发纳入整个软件开发体系。为了良好实施自动化测试,在产品软件设计阶段就应该很好地考虑自动化测试的要求,保证软件的可测试性,软件系统中每个元素的可存取性。另外,测试脚本也应看做程序,所以应该要遵守已有的、规范的编程标准和规则,并纳入整个开发过程中。测试自动化依赖测试流程和测试用例。不管是手工测试还是自动化测试,关键是测试流程的建立和测试用例的设计,只有在良好的测试用例基础上,编写测试脚本,执行测试或运行测试脚本,才能保证测试的执行效果。软件测试自动化的投入较大。除了购买软件测试工具所投入的资金和人员培训成本之外,还要用很多时间去开发和维护测试脚本。进行资源的合理调度。理想情况下,从写第一行代码时就开始进行每日软件包构建,每日自动化的基本验证测试。这种做法能使软件的开发状态得到频繁的更新,能够及早地发现设计和集成的缺陷。4、 软件自动化的优劣势自动化测试是由计算机系统自动来完成,由此自动化测试的优势也很明显,自动运行的速度快、执行效率高;永不疲劳;测试结果准确;具有可靠性和可复用性并且具有有些手工测试做不到的特别能力。正因为这些优势,软件测试自动化给人们带来了许多益处,比如:缩短软件开发测试周期;是产品具有更高的质量;软件过程更规范;测试效率高,充分利用硬件资源;节省人力资源,降低测试成本;增强测试的稳定性和可靠性;提高软件测试的准确度和精确度。有利必有弊,有些软件公司在实施自动化测试时并没有达到预期效果,主要有以下几个方面。测试人员有不正确的观念或不现实的期望;缺乏具有良好素质、经验的测试人才;测试工具本身的问题影响测试的质量;测试人员没有进行有效的,充分的培训;测试人员没
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 麻纤维保暖性能提升方案实施分析报告
- 家畜饲养员质量管控考核试卷及答案
- 水产品质量安全与检测技术
- 牧草栽培工安全规范考核试卷及答案
- 陶瓷企业供应链数字化转型分析报告
- 二年级数学教学改进策略报告
- 内蒙古开鲁县高中政治 6.1 源远流长的中华文化说课稿 新人教版必修3
- Unit8 Topic3 SectionA 说课稿及反思 2025-2026学年仁爱科普版英语七年级下册
- 密度测量实验数据分析报告
- 2025-2030儿童AR教具硬件迭代与内容开发生态分析报告
- 广告标识牌采购投标方案
- (高清版)DG∕TJ 08-59-2019 钢锭铣削型钢纤维混凝土应用技术标准
- 2025年浦发银行校园招聘笔试参考题库(含答案)
- 部编新人教版三年级上册语文教材培训
- 2024-2025学年浙江省金华市东阳市七年级(上)期末数学试卷(含答案)
- 学校“1530”安全教育记录表(2024年秋季全学期)
- 仪表设备管理实施细则
- 磷化工工艺流程
- 2025云南红河州红投永良矿业限公司招聘2人高频重点模拟试卷提升(共500题附带答案详解)
- 新入职教师法律法规培训
- 数字经济与就业
评论
0/150
提交评论