您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > 软件测试自动化与测试工具介绍(3).pdf
2011/12/131软件测试自动化与测试工具介绍李刚国家信息中心软件评测中心技术总监:李刚ligang@mx.cei.gov.cn自动化测试基础目录什么是自动化测试自动化功能测试GUI自动化测试工具特点GUI自动化测试实现方式自动化测试原理自动化测试的优点自动化测试的限制自动化测试的误区2011/12/132什么是自动化测试问题:什么是自动化测试?你理解的自动化测试的表现形式是什么?讨论:???什么是自动化测试自动化测试的一般定义:各种测试活动的管理与实施,包括测试脚本的开发与执行,以便使用一种自动测试工具来验证测试需求。自动化测试注:不要将自动化测试的概念理解得过于狭窄,只关心由工具或编程产生的测试脚本。实际上自动化一词包含了更为广阔的含义。2011/12/133自动化测试例如:一个测试团队在构建一套自动化测试准则时对自动化测试的定义是:自动化指的是对策略、工具和工件的使用,它增加或减少了手工或人为参与或干预非技巧性、重复或冗长工作的需要。什么是自动化功能测试问题:如何做就是在进行功能的自动化测试?讨论:???自动化功能测试自动化功能测试主要围绕Windows、Unix和Linux图形界面、字符终端和Browser界面进行测试。客户端可以是C/C++、VC、VB、Java、C#等编制的软件、各种字符终端软件或者运行浏览器InternetExplorer和Netscape,通过自动录制形成测试脚本实现自动化功能/回归测试。2011/12/134GUI自动化测试工具特点一个好的自动化测试工具其实与一个好的开发工具有很多相似的特性,也可以说:一个自动化测试过程实际也是一个软件开发的过程GUI自动化测试工具特点支持脚本化语言(ScriptingLanguage)支持多种常用的变量和数据类型支持数组、列表、结构、以及其他混合数据类型支持各种条件逻辑(If,SelectCase等语句)支持循环(For,While)支持函数的创建和调用Perl、VBScript、Javascript,脚本语言的功能越强大,就越能够为测试开发人员提供更灵活的使用空间,而且有可能用一个复杂的语言写出比被测试软件还要复杂的测试系统对程序界面中对象的识别能力鼠标位置识别,对象识别,位图对象识别(图像比较)GUI自动化测试工具特点支持函数的可重用脚本比较容易实现对函数的调用,脚本与被调用函数之间的参数传递支持外部函数库如Windows中DLL访问,如采用外部函数进行数据库操作正确性检查等支持抽象层可以将程序界面中存在的所有对象实体一一映射成逻辑对象,通过简单修改抽象层,帮助减少测试维护工作量分布式测试支持分布式测试可以实现定制任务执行的时间表,安排多人同时进行测试2011/12/135GUI自动化测试工具特点支持数据驱动测试(Data-DrivenTest)测试脚本通过从实现准备好的数据文件中读取或者写入数据保证测试流程的正常执行,少的脚本,大量的测试数据即可支持错误处理在出现问题时能够跳过错误或者对系统进行复位,执行后面的任务,从而不至于出现一个问题而耽误了所有用例的执行。利用它可以避免测试程序因一些异常错误而异常终止支持源代码管理可以帮助我们进行测试脚本库的导入,导出,回退到以前版本,比较不同版本间的差别,以及同时对几个项目进行跟踪等,尤其在团队开发中很有必要,可以对测试数据文件,测试脚本,对象抽象层进行统一管理支持脚本的命令行方式执行GUI自动化测试实现方式GUI录制回放方式在测试者运行应用程序的时,测试工具将其所有动作(键盘操作、鼠标点击等)捕捉下来,生成一个脚本文件,这个脚本可以被“回放”(Replay),也就是按照录制时操作的所有动作重复执行一次,实现自动运行和测试。录制/回放工具解决的问题:记录用户操作步骤,当代码被修改后,可以重复进行回归测试。使用脚本语言去模拟GUI操作可以作为多平台应用,但需要额外的脚本程序编程工具提供自动记录和回放用户手动操作的能力而不要用脚本这种工具很容易使用,但做为多平台应用需要更多的人工操作自动化测试原理自动化测试是一个广义的说法,具体的说应该包括白盒(代码)自动化测试、GUI自动化测试和性能自动化测试等方面。GUI自动化测试的原理:通过软件模拟用户实际的鼠标和键盘操作,实现自动化执行和测试的过程性能自动化测试原理:通过在客户端模拟多虚拟用户并发请求,检验和验证服务器的性能行为是否满足系统要求2011/12/136自动化测试的优点自动化测试的限制不能取代手工测试手工测试比自动测试发现的缺陷更多对测试质量的依赖性极大自动化测试不能提高有效性工具本身不具有想象力自动化测试的误区所有的测试都能够实现自动化既然自动化测试能如此显著地提高生产率,就能以更少的人员完成所有的测试(精减人员)自动化测试如此简单,无需任何培训自动化方法将缩减整体测试工作量我们无需制订任何测试方案和测试设计工作2011/12/137自动化测试工具功能自动化测试工具QuickTestQuickTest简介QuickTestProfessional(简称QuickTest)是新一代自动化测试解决方案,采用了关键词驱动(Keyword-Driven)测试的理念,能完全简化测试的创建和维护工作。通过QuickTest可以测试标准的WindowsApplications、Web对象、ActiveX控件和VisualBasic应用程序。您还可以获得其他的QuickTest加载项以便用于许多特殊的环境(例如:Java、Oracle、SAP解决方案、.NETWindows以及WebForms、Siebel、PeopleSoft、Web服务和终端仿真器应用程序)2011/12/138QuickTest简介关键词驱动(Keyword-Driven):又称为表格驱动测试,它是一种独立于应用程序的自动化测试框架。这种框架要求开发用来运行的自动化工具,驱动测试下应用程序和数据的测试脚本代码相独立的数据表和关键字。关键字驱动测试看上去非常象手工测试。在关键字测试里,应用程序的功能特性被写在表格和每个测试的详细描述中。QuickTest简介QuickTestProfessional(简称QuickTest)是新一代自动化测试解决方案,采用了关键词驱动(Keyword-Driven)测试的理念,能完全简化测试的创建和维护工作。通过QuickTest可以测试标准的WindowsApplications、Web对象、ActiveX控件和VisualBasic应用程序。您还可以获得其他的QuickTest加载项以便用于许多特殊的环境(例如:Java、Oracle、SAP解决方案、.NETWindows以及WebForms、Siebel、PeopleSoft、Web服务和终端仿真器应用程序)QuickTest简介关键词驱动(Keyword-Driven):又称为表格驱动测试,它是一种独立于应用程序的自动化测试框架。这种框架要求开发用来运行的自动化工具,驱动测试下应用程序和数据的测试脚本代码相独立的数据表和关键字。关键字驱动测试看上去非常象手工测试。在关键字测试里,应用程序的功能特性被写在表格和每个测试的详细描述中。2011/12/139QuickTest自动化实现原理QuickTest的对象识别测试对象模型对象库(ObjectRepository)对象探测器(ObjectSpy)QuickTest的对象识别人的识别识别一个人,是通过人的体貌特征来辨别的。对象识别一个对象的识别主要是通过对象本身的属性来标识的。一般通过唯一描述该对象的一组属性和属性值来标识出该对象类型。QuickTest的对象识别录制时记住对象:QuickTest将“观看”要录制的对象,并将其作为测试对象进行存储,确定该对象符合的测试对象类。例如,标准Windows对话框(Dialog)、Web按钮(WebButton)。然后,对于每个测试对象类,QuickTest都有一个始终要记住的强制属性的列表,当录制对象时,QuickTest始终记住这些默认的属性值,然后查看页面上对象、对话框或其他父对象,以检查该描述是否足以唯一标识该对象。如果不足以进行唯一标识,QuickTest将向该描述中逐项添加辅助属性,直到经过编译成为唯一的描述为止。如果没有可用的辅助属性,或者那些可用的辅助属性仍不足够创建一个唯一的描述,QuickTest将添加一个特殊的顺序标识符(例如页面上或源代码中对象的位置)以创建唯一的描述。2011/12/1310QuickTest的对象识别运行中标识对象:在运行期间,QuickTest会搜索与录制时记住的测试对象的描述完全匹配的运行时对象。它需要找到与录制时用于创建唯一描述的强制属性和任何辅助属性完全匹配的对象。只要应用程序中的对象没有较大的改变,录制过程中记住的描述几乎总是足以使QuickTest唯一标识出该对象。QuickTest的对象识别Tools-ObjectIdentification测试对象模型测试对象模型是一大组对象类型或类,QuickTest用这些对象类型或类来表示应用程序中的对象。每个测试对象类都有一个可以唯一标识属于该类的对象的属性列表,以及一组QuickTest可以对其进行录制的方法。测试对象是QuickTest在测试中创建的用于表示应用程序中的实际对象的对象。QuickTest存储有关该对象的信息,这些信息有助于它在运行会话期间标识和检查该对象。2011/12/1311测试对象模型Web应用对象:INPUTTYPE=“textNAME=“u_nameVALUE=测试对象模型Windows应用对象:对象库ObjectRepository“对象库”中保存当前操作或整个测试中所有对象。可以使用“对象库”对话框查看或修改库中任何测试对象的描述,或者将新建对象添加到库。2011/12/1312对象探测器ObjectSpy使用ObjectSpy,可以查看打开的应用程序中任何对象的运行时或测试对象属性和方法。QuickTest关键技术点检查点标准检查点、文本检查点、位图检查点、表格检查点、数据库检查点;参数化值参数化操作参数化检查点参数化QuickTest脚本开发QuickTest数据驱动脚本开发QuickTest一般脚本开发增加条件和循环控制语句增加错误处理程序增加VBScript自带函数和方法增加自定义内部函数或子过程在测试脚本中执行外部定义的函数2011/12/1313数据驱动测试数据驱动测试定义:从外部数据源(文件/表)自动读取测试数据,在相同的自动化测试脚本(操作过程)中,通过改变测试数据,对多种场景进行有效测试的一种方法。数据驱动测试特点:从数据文件(数据池、txt文件、csv文件、Excel文件、数据库等)中读取输入和输出数值。输入数值和输出验证数值在脚本中都使用变量。在测试脚本中包括贯穿程序导航、数据文件的读取、记录测试状态和信息的日志的代码。测试用例包含在数据文件里而不是在脚本里。脚本只是一种“驱动器”(driver)或传送数据的机制。在数据驱动测试里,只有测试数据包含在数据文件中。自动化数据驱动测试注意:变化的是测试数据,不变的是测试脚本或测试过程。自动化测试脚本被测应用程序数据源2011/12/1314DataTable的数据驱动测试DataTable具有MicrosoftExcel电子表格的特征,这意味着可以在其单元格中存储数据并使用这些数据,还可以执行单元格内的数学公式的计算。使用DataTable的导入导出功能可以对文本、Excel格式和数据库做数据驱动测试。数据驱动测试通过DataTable可以对文本数据、Excel数据、Database数据进行读取,来达到数据驱
本文标题:软件测试自动化与测试工具介绍(3).pdf
链接地址:https://www.777doc.com/doc-5543374 .html