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