AutoRunner技术白皮书上海泽众软件科技有限公司2目录1.总述...................................................................................42.1系统定位...................................................................92.2自动功能测试工具的概念.......................................92.3业务提供.................................................................122.3.1AutoRunner适用性说明................................122.3.2自动化的功能测试..........................................122.3.3自动化的回归测试..........................................132.3.4每日构建与冒烟测试......................................132.3.5版本升级测试..................................................142.3.6特性概述..........................................................152.4产品设计目标.........................................................173.系统体系结构特性要求.................................................193.1系统要求.................................................................193.2系统性能.................................................................213.3扩展能力.................................................................213.4可靠性和可用性......................................................233.5国际支持..................................................................264.系统基本功能.................................................................264.1测试案例创建与录制.............................................264.2测试案例编辑与参数化..........................................274.3测试案例参数化.....................................................2834.4增加同步点和验证点.............................................304.5测试案例执行与DEBUG.........................................315.AUTORUNNER的特点................................................336.厂商支持能力.................................................................3741.总述背景随着软件规模的发展和对软件系统的依赖,人们发现:软件的质量对应用系统的影响日益增加,质量存在问题的软件会导致帐务出错,客户信息丢失,用户的服务出错。因此,提高软件的质量成为一个重要的问题。而测试正是提高软件质量的有效手段。数据显示,在一个软件开发过程中,测试占到整个工作的40%-60%。所以,如何能够在较低成本的情况下大幅度提高测试的质量,对软件的最终质量起到非常重要的作用。另一方面,当应用软件投入使用之后,随着应用的不断发展和变化,将会提出大量的新增需求。新功能对用户非常重要,能够给用户不断发展的业务提供更强大的支撑。当开发人员修改软件的功能、增加软件功能,新增功能部分导致原有系统运行不够稳定的几率必然增加,可靠性降低:由于修改一个小错误造成大量业务无法正常运行的情况。这就需要做大量的回归测试来保证系统的可靠性,通过回归测试验证以往的功能是正确的、可靠的。5传统的回归测试是由人工来实现的,需要大量的人员来完成固定的输入和输出检查。人工测试带来了一系列问题:1、测试质量难以保证。临时参加测试的人员很多都是没有受到足够培训的人员,对应用软件本身的理解不够充分,对测试技术也不够了解,往往导致测试案例设计不够严密,测试的质量难以得到保证。2、测试的成本很高。组织一次大规模的回归测试会导致大量成本发生:包括人工成本和管理成本等等。首先是测试人员自身的成本,然后是由于测试进度比较缓慢造成的开发人员延误造成的成本,此外,管理测试人员,协调测试和开发人员之间的关系也需要很多的工作和成本。3、测试进度难以控制。由于人员、系统稳定性等众多方面的原因,导致测试的进度比较难以度量和控制,造成项目风险防范困难。4、测试案例无法保存和管理。作为一个项目,测试案例是一个重要的财富:同软件代码一样,是具有版本和价值的。传统的做法是使用文档来保存测试案例,无法提供一种标准格式来保存测试案例。这样就会导致测试案例的存放非常困难,使用非常困难,造成了资源的浪费:但需要再做一次回归测试的时候,往往原来的案例都被丢弃了,还需要重新设计和完成6测试案例。解决方案企业可以建立一整套软件自动测试体系,包括:需求管理、测试分析、测试管理、缺陷跟踪,并且把这个过程纳入整个软件项目开发和软件产品开发过程。实际上,在CMM的规范中,测试本身就是SQA的一部分。自动测试的基础就在于测试工具,只有采用了优秀的自动测试软件,才能够解决自动测试的问题。自动测试工具能够在两个阶段给软件开发企业带来价值:第一,对于软件开发人员来说,高效率的自动测试工具能够提供给程序员自己完成开发过程中的冒烟测试,便于在频繁修改的软件过程中迅速完成测试,保证编码的稳定性;第二,对于项目和产品的测试阶段来说,能够提供稳定的回归测试,保证产品的可靠性。众所周知,在测试阶段发现问题的投入,相对与在软件投产之后出现错误再去解决问题要小的多。上海泽众软件科技有限公司开发出了国内第一个拥有自主知识产权的自动测试软件——自动测试引擎(AutoRunner),能够帮助用户实现自动化测试。7概述1、本技术白皮书适用于上海泽众软件科技有限公司自动测试工具(AutoRunner)。2、本技术白皮书是上海泽众软件科技有限公司自动测试工具(AutoRunner)的技术说明,也是技术谈判的主要内容,是采购方询价、系统选型以及系统测试和验收的主要技术依据。3、本技术白皮书是根据信息产业部颁布的有关技术体制和技术政策并结合上海泽众软件科技有限公司的实际情况制定的。本技术白皮书没有提出而信息产业部的技术体制以及技术标准已有具体规定的内容,应按信息产业部的技术体制以及技术标准执行,如果存在不一致应以信息产业部颁布的最新技术体制及技术标准内容为准。4、本技术白皮书在内容或技术指标上如果存在错误(包括印刷错误),经双方确认后可对该错误内容或技术指标进行修正。5、自动测试工具(AutoRunner)版本升级之后,上海泽众软件科技有限公司有权对本技术白皮书进行修改,并不需要主动通知用户。6、本技术白皮书以下内容为用户重点考察内容:软件的功能、性能、技术指标和环境要求;8设备容量计算和配置方法;所提供的数据库的功能和性能指标;软件安装要求;提供软件的接口、协议等工程技术要求;乙方供货范围、交货能力和时间、运输、安装、调测验收和培训等项内容的日程安排;其他有关技术资料。7、本软件对涉及专利、知识产权等法律条款承担有限责任。8、本技术白皮书提供了对上海泽众软件科技有限公司的自动测试工具(AutoRunner)的相关技术描述,由于用户使用造成损失,上海泽众软件科技有限公司不承担责任。9、本技术白皮书以中文编写,未经上海泽众软件科技有限公司同意或授权的其它语言或形式的技术白皮书无效。本技术规范书的解释权归上海泽众软件科技有限公司。92.系统概述2.1系统定位AutoRunner是一个自动测试工具的集合,也是一个自动测试框架,加载不同的测试组件,就能够实现面向不同应用的测试。AutoRunner支持浏览器测试和其他各种技术平台的AUT(applicationundertest),包括:浏览器、java、win32、silverlight、flex、.NET等。2.2自动功能测试工具的概念测试脚本自动测试,就是使用一个程序来测试另一个程序(被测试的应用系统)功能的正确性。如果用来测试的程序本身非常复杂,也需要被测试,或者编写困难,那么自动测试就失去了意义。因此,用来测试另外一个程序的程序往往是非常简单的,我们把这个程序称为“测试脚本”。测试脚本通常在测试工具的IDE里执行,并且获得IDE的支持。10自动记录当我们编写测试脚本的时候,往往发现编写脚本本身是很困难的:了解脚本的语法、了解测试过程、把测试过程转换称为测试脚本语句。自动记录,就是通过记录一个操作过程来获得测试脚本的功能。通过自动记录,我们就能够得到一个操作的基本的脚本,通过修改这个脚本,我们得到更通用的测试脚本。同步点在执行测试脚本的时候,测试脚本语句的操作对象是GUI的组件。测试脚本通过这个组件的属性(如:名称、位置、winclass、disable等)来确定那个组件是我们需要操作的组件。这个查找组件的过程如果失败,意味着:第一,应用系统的响应比较慢,需要等待一段时间再进行一次定位;或者第二,该组件不存在。这个查找、定位组件的过程,我们称为同步点。AutoRunner的同步点都是隐含方式的:在操作对象的时候进行自动同步,自动设置同步点。检查点测试的目的是检查数据是否正确。11在测试的过程中,我们需要检查某个组件的某些属性满足某个条件。这个检查的位置和条件,我们称为检查点。在AutoRunner中,使用check(“objectname”,“property”,“期望值”)来作为检查点的脚本语句,它检查对象objectname的属性property是否和期望值一致。在使用使用中,可以使用检查点来检验系统的各个方面,如数据库、GUI属性等。参数化与数据驱动测试脚本是针对一个测试过程的。一个测试过程往往需要众多的数据来测试。通过自动录制得到的脚本,所有的输入数据都是常数,是固定的。如果需要使用一个测试脚本测试多组数据,就需要对脚本进行参数化,把固定的常数修改为来自数据源变量。这个过程我们称为参数化。采用了参数化的脚本,我们称为数据驱动的模式。122.3业务提供所谓业务提供,就是指使用本自动测试工具能够提供的功能。2.3.1AutoRunner适用性说明AutoRunner是一个产品家族,不是一个单个的产品。这个产品家族的特点是共同使用了一个标准的IDE,并且使用相同的测试脚本语言。从脚本的角度上看,他们是完全相同的。所不同的是相同的IDE采用不同的测试plugin组件。我们提供不同的组件以满足不同的测试需求:2.3.2自动化的功能测试AutoRunner的基本功能,就是对软件进行功能测试。功能测试本身是面向需求的黑盒测试工具。它以需求点为出发点,为了满足需求点(即