基于业务驱动的软件自动化测试方法

文档序号:6339795阅读:398来源:国知局

专利名称::基于业务驱动的软件自动化测试方法
技术领域
:本发明涉及软件自动化测试技术,具体为一种基于业务驱动的软件自动化测试方法。
背景技术
:传统的软件自动化测试方法基本就是以录制回放为主,加之一些数据驱动,使得测试数据与测试脚本分离。这在软件自动化测试的初期是比较先进的手段,但是随着软件自动化测试工具的发展、完善,被测试系统的实现复杂度增加、业务复杂度的增加,传统的软件自动化测试的弊端逐渐暴露出来。主要表现在(1)脚本不够灵活,不能适应业务的复杂程度;(2)维护成本高,工作量巨大。无法满足被测试频繁变更、升级的要求;(3)代码不易理解,对软件自动化测试脚本的编写对人员要求较高;(4)仅仅是数据驱动,业务人员很难介入并对脚本的有效性进行检查。目前,流行基于数据驱动的软件自动化测试平台,是一种数据被包含在输入测试数据文件中,并且以数据来控制软件自动化测试脚本执行的流程和动作的测试。输入测试数据记录从外部读入,并且独立于测试脚本。利用关键字驱动的软件自动化测试框架,是通过设计关键字来描述离散功能性业务事件,开始时需建立通用关键字库。关键字呈现有关投资的良好回报,因为每一个业务事件都是作为离散的实体设计、自动化和维护的。测试人员不需要录制测试脚本,而是设计测试脚本。这种模型的开发和实现与传统的测试流程相比是困难的,最耗时的。以上两种流行的软件自动化测试方法,都是关注于测试本身的方法论,没有关注被测对象。基于业务驱动的软件自动化测试方法,在关键字驱动软件自动化测试框架基础上引入业务组件技术,通过对被测对象的组件化,降低软件自动化测试入门门槛,使得操作者只需要简单的配置,便可以实现软件自动化测试,在效率的准确性上效果更好。目前基于业务驱动和业务组件技术的软件自动化测试方法未见有成熟报导,国内外流行的测试工具像HP公司QTP和LoadRurmer(版本10.0)以及开源工具Ruby等自动化测试工具都是面向工具层面,不具备业务封装功能。
发明内容本发明的技术方案是基于业务驱动的软件自动化测试方法,由业务逻辑驱动,将被测软件对象进行业务组件化,软件自动化测试功能点细化到业务组件,并形成业务组件化的测试用方法。具体业务组件化实施方案分成单一型组件和组合型组件,其中单一型组件是基于最小粒度的组件、并使用单一型组件,该类型的组件的HTML代码在组件类中编写以组件只包含组件类和组件规范;组合型组件,基于一块页面区域使用组合型组件,该类型的组件的HTML代码在组件模板中实现,组合型组件包含组件模板、组件类、组件规范;形成业务组件库;采用软件自动化测试工具对业务组件库的组件进行测试,用关键字映射表形式将测试逻辑封装在数据文件中,关键字包括三类被操作对象(Item)、操作(Operation)和值(value).,通过软件自动化测试工具对关键字进行解释、使用,以实现对被测系统的软件自3动化测试;根据业务组件抽取业务规则,形成业务规则库,业务规则库通过测试用例和测试数据用自动化测试工具进行测试;自动化测试工具调用对象函数库获得关键字映射表,业务组件库通过关键字映射表用自动化测试工具进行测试。对象函数是对业务组件操作指令的函数,一个业务组件对象的类型对应一个组件的对象函数库;软件自动化测试工具提供了这样的函数,在其中加入额外的代码来检测错误、纠正错误和帮助同步,这类代码是实现无人职守的软件自动化测试所必需的;对象函数(库)是在应用业务组件库和自动化测试工具之间提供了一个隔离层。业务组件抽取,帮助测试工程师在编写测试时发现规则、表示规则、管理规则、自动执行规则,建立规则运行机制。业务组件抽取的业务规则分成(1)变量之间关系约束规则,(2)变量属性值强制性约束规则,(3)变量属性值之间的关系约束规则。本发明的有益效果是面向业务的软件自动化测试框架,其技术优势在于,不仅有传统的软件自动化测试的高利用率及高准确性的优点,更因为由业务逻辑驱动测试,在保证基本功能点被测全面的基础上,更能保证全业务场景的合理测试,以及业务与业务之间的合理贯穿,同时因为采用先进的业务组件技术来管理业务和测试用例,降低测试测试人员业务能力的要求。本发明已在移动、联通和电信等多个省级运营商的IT支撑系统中得以应用,其中包括湖南移动、天津联通和江苏电信等,帮助电信运营商提高其支撑系统的业务支撑能力,加快业务发展。本发明是通过多年的实践,开发的一套针对GUI的测试框架系统和方法。此系统架构在商用软件自动化测试工具基础上,直接面向业务,通过引入业务组件技术,进行软件自动化测试,加快了开发和测试速度,降低了自动化脚本维护成本,节约测试资源投入成本,降低测试人员操作门槛,便于快速掌握和使用。图1为本发明逻辑图。具体实施例方式本发明是架构在开源Ruby工具之上,但又不拘限于该测试工具,本方法也可以封装并在目前国内外主流的自动化测试工具上应用,如HP公司QTP和LoadRurmer。具体实施实施方案(步骤)如下本发明的基本原则是对业务需求中影响系统业务功能的业务规则进行抽取,得出业务池中的所有业务颗粒和相关的业务对象模型,并在基于定义的业务颗粒形成相对稳定的业务池和业务对象模型基础上,将影响业务池中各个业务颗粒操作的业务对象集合的因素从应用程序中分离出来作为相应的业务规则进行存储,通过相应的规则引擎来实现(即根据抽取业务规则形成业务规则库),根据业务组件化技术要求,按照被测对象相似业务活动、使用类似数据、具有通用处理流程以及相同业务目标等角度进行业务活动归类,并根据业务组件的作用不同,将业务组件分成公共业务组件和普通业务组件库;(1)由业务逻辑驱动,将产品组件化,测试功能点细化到业务组件,并形成组件化的测试用方法。具体组件化实施方案分成单一型组件和组合型组件,其中单一型组件,一般基于最小粒度的组件使用单一型组件,该类型的组件的HTML代码在组件类中编写,所以组件只包含组件类,组件规范,单一型组件又分为表单型组件和普通单一组件;组合型组件,一般基于一块页面区域使用组合型组件,该类型的组件的HTML代码在组件模板中实现,所以组合型组件包含组件模板,组件类,组件规范。1组件模板组件模板主要是将业务逻辑中获取的数据展现在页面中,组件模板结构如下<divclass=〃login〃><tablewidth="100%"border="0"cellspacing="0"cellpadding="0"><tr><tdclass=〃mylf〃>用户名</td><tdclass="myrt"Xlabel><inputtype="text"name="STAFF_ID"desc="用户名"nullable=〃no〃equsize=〃8〃datatype=〃text〃onfocus=〃select();〃/></label></td></tr></table><div>〈inputtype=〃submit〃jwcid=〃bsubmit〃value="登陆〃onclick=〃returnverifyAll(this)〃/></div><div>1组件类组件类主要编写组件模板需要用到的动态数据,如publicabstractclassLoginextendsAppTempletComponent{publicabstractvoidsetSource(IDatasource);protectedvoidrenderComponent(IMarkupWriterwriter,IRequestCyclecycle){super.renderComponent(writer,cycle);ιι1组件规范〈component-specificationclass="com.linkage.quickstart.jwcs.demo.DemoField^allow_body="no"allow-informal-parameters="no"><description>DemoField.</description)〈parametername=〃value〃direction=〃form〃type=//java.lang.String"required=//yes///>〈parametername=〃icon〃direction=〃in〃type=//java.lang.String〃default-value=^'/component/images/daochu.jpgJ〃/>〈parametername=〃disabled〃direction=〃in〃type=〃boolean〃required=〃no〃/>〈property—specificationname=〃name〃type=//java.lang.String〃/>〈property-specificationname=〃form〃type=//org.apache,tapestry.IForm〃/></component-specification)(2)根据业务组件抽取业务规则,形成业务规则库。业务组件抽取的业务规则模型,帮组测试工程师在编写测试时发现规则、表示规则、管理规则、自动执行规则,建立规则运行机制。业务组件抽取的业务规则分成三类(1)变量之间关系约束规则(VariableRelationConstraintRuleVRCR)(2)变量属性值强制性约束规则(AttributeMandatoryConstraintsRuleAMCR)(3)变量属性值之间的关M^iMMM(AttributeRelationConstraintsRuleARCR)该三类规则的描述如下VRCRl=(Id,Application,Task,Rulesetname,Table,Variable,Order,Level)VRCR2=(Id,Application,Task,Customed,Table,Variable,Value,Orderl,0rder2)VRCRl,VRCR2说明该类规则为VRCRl,VRCR2;Application指明该规则的适用的应用;Task该规则有效的业务颗粒;Rulesetname该规则所属的规则集名称,应用调用时使用;Table该规则操作的数据库中的表格;Variable该规则中涉及的影响因素变量名;Order该规则中影响因素变量属性值的顺序,可以是降序,升序,随机或用户定制。如果值为用户定制,用户定制按照VRCR2描述形式进行。其余元素含义和VRCRl相同,Value为用户指定的属性值,Orderl为指定属性值的顺序,Orderf为同一个Orderl中多个属性值的顺序;Level该规则涉及的影响因素变量在连接中的包含关系;变量属性值强制性约束规则抽取对业务操作的业务对象实例集合强制要求满足某些变量的属性值。该规则的描述如下AMCR=(Application,Task,Rulesetname,Condition,Valid,Sequrence)AMCR说明该类规则为AMCR;Application指明该规则的适用的应用;Task该规则有效的业务颗粒;Rulesetname该规则所属的规则集;Condition强制性约束条件;Valid该规则的有效性;Sequence该规则的执行顺序。(3)确认关键字,关键字驱动一种独立于应用程序的自动化框架,支持由不同序列或者多个不同路径组成的测试,例如Windows的计算器的关键字权利要求1.基于业务驱动的软件自动化测试方法,其特征是由业务逻辑驱动,将被测软件对象进行业务组件化,软件自动化测试功能点细化到业务组件,并形成业务组件化的测试用方法;具体业务组件化实施方案分成单一型组件和组合型组件,其中单一型组件是基于最小粒度的组件,该类型的组件的HTML代码在组件类中编写以组件只包含组件类和组件规范;组合型组件;基于一块页面区域使用组合型组件,该类型的组件的HTML代码在组件模板中实现,组合型组件包含组件模板、组件类、组件规范,形成业务组件库;采用软件自动化测试工具对业务组件库的组件进行测试,用关键字映射表形式将测试逻辑封装在数据文件中,关键字包括三类被操作对象(Item)、操作(Operation)和值(value);通过软件自动化测试工具对关键字进行解释、使用,以实现对被测系统的软件自动化测试;根据业务组件抽取业务规则,形成业务规则库,业务规则库通过测试用例和测试数据用自动化测试工具进行测试;自动化测试工具调用对象函数库获得关键字映射表,业务组件库通过关键字映射表用自动化测试工具进行测试。2.根据权利要求1所述的基于业务驱动的软件自动化测试方法,其特征是对象函数是对业务组件操作指令的函数,一个业务组件对象的类型对应一个组件的对象函数库;软件自动化测试工具提供了这样的函数,在其中加入额外的代码来检测错误、纠正错误和帮助同步,这类代码是实现无人职守的软件自动化测试所必需的;对象函数(库)是在应用业务组件库和自动化测试工具之间提供了一个隔离层。3.根据权利要求1所述的基于业务驱动的软件自动化测试方法,其特征是业务组件抽取,帮助测试工程师在编写测试时发现规则、表示规则、管理规则、自动执行规则,建立规则运行机制;业务组件抽取的业务规则分成(1)变量之间关系约束规则,(2)变量属性值强制性约束规则,(3)变量属性值之间的关系约束规则。全文摘要基于业务驱动的软件自动化测试方法,由业务逻辑驱动,将被测软件对象进行业务组件化,软件自动化测试功能点细化到业务组件,并形成业务组件化的测试用方法;单一型组件是基于最小粒度的组件、并使用单一型组件;组合型组件,基于一块页面区域使用组合型组件,该类型的组件的HTML代码在组件模板中实现,组合型组件包含组件模板、组件类、组件规范,形成业务组件库;采用软件自动化测试工具对业务组件库的组件进行测试,用关键字映射表形式将测试逻辑封装在数据文件中;通过软件自动化测试工具对关键字进行解释、使用;自动化测试工具调用对象函数库获得关键字映射表,业务组件库通过关键字映射表用自动化测试工具进行测试。文档编号G06F11/36GK102043716SQ20101060431公开日2011年5月4日申请日期2010年12月24日优先权日2010年12月24日发明者丁庆平,朱玉东,王娟,黄锡伟申请人:南京联创科技集团股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1