软件功能验证方法及装置与流程

文档序号:11230336阅读:420来源:国知局
软件功能验证方法及装置与流程
本公开涉及计算机
技术领域
,尤其涉及一种软件功能验证方法及装置。
背景技术
:软件功能验证,是指通过调用系统提供的服务,校验服务返回的结果、系统处理过程中产生的数据等方式,判断软件质量;当前在软件功能验证过程中,对于组件的编排过程一般采用代码化的编排方式,即:通过硬编码或者xml的方式将编排逻辑以及配置输入参数固定的写入代码里。由于组件间的编排逻辑以及每个输入参数的配置均固化在代码中,灵活性大大降低,而且在每次增加用于进行软件功能验证的验证用例时,就会进行系统的释放,进而导致系统各方面的成本增加。技术实现要素:为克服相关技术中存在的问题,本公开提供一种软件功能验证方法及装置。根据本公开实施例的第一方面,提供一种软件功能验证方法,包括:获取用于进行软件功能验证的验证组件集合中的待执行验证组件,所述验证组件集合包含至少一个按照预设顺序排列的验证组件,每个所述验证组件对应一个软件功能验证的验证步骤;获取与所述待执行组件对应的组件执行方法,以及,组件执行方法的输入参数;当所述待执行验证组件之前存在验证组件时,根据所述待执行验证组件之前的验证组件的输出参数值确定所述组件执行方法的输入参数值;在将所述组件执行方法的输入参数替换为输入参数值后,执行所述组件执行方法。可选地,所述方法还包括:判断所述组件执行方法是否执行完毕;当所述组件执行方法执行完毕后,将所述组件执行方法的输出参数值确定为验证组件的输出参数值并存储于预设模板引擎中。可选地,所述方法还包括:当所述待执行验证组件之前不存在验证组件时,检测是否接收到用户配置的静态参数;当接收到用户配置的静态参数时,将所述静态参数确定为验证组件的输出参数值并存储于预设模板引擎中。可选地,所述方法还包括:判断是否存在待加入所述验证组件集合的待加入验证组件;当存在待加入验证组件时,获取所述待加入验证组件的配置信息,所述配置信息至少包含:组件标识、输入参数配置表达式、输出参数及在所述预设顺序中的顺序号;将所述待加入验证组件的配置信息存储到所述验证组件集合的组件集合配置表中。可选地,所述根据所述待执行验证组件之前的验证组件的输出参数值确定所述组件执行方法的输入参数值包括:获取待执行验证组件的输入参数配置表达式;在预设模板引擎中获取与所述输入参数配置表达式对应的验证组件的输出参数值;根据输入参数配置表达式及所述输出参数值确定所述组件执行方法的输入参数值。可选地,所述组件执行方法中至少包含组件执行方法标识和至少一个组件执行方法入参标识;所述获取与所述待执行组件对应的组件执行方法,以及,组件执行方法的输入参数包括:查找与待执行组件对应的组件执行方法标识;根据所述组件执行方法标识获取组件执行方法,并获取所述组件执行方法中的组件执行方法入参标识;根据组件执行方法入参标识获取组件执行方法的输入参数。根据本公开实施例的第二方面,提供一种软件功能验证装置,包括:第一获取模块,用于获取用于进行软件功能验证的验证组件集合中的待执行验证组件,所述验证组件集合包含至少一个按照预设顺序排列的验证组件,每个所述验证组件对应一个软件功能验证的验证步骤;第二获取模块,用于获取与所述待执行组件对应的组件执行方法,以及,组件执行方法的输入参数;第一确定模块,用于当所述待执行验证组件之前存在验证组件时,根据所述待执行验证组件之前的验证组件的输出参数值确定所述组件执行方法的输入参数值;执行模块,用于在将所述组件执行方法的输入参数替换为输入参数值后,执行所述组 件执行方法。可选地,所述装置还包括:第一判断模块,用于判断所述组件执行方法是否执行完毕;第二确定模块,用于当所述组件执行方法执行完毕后,将所述组件执行方法的输出参数值确定为验证组件的输出参数值并存储于预设模板引擎中。可选地,所述装置还包括:检测模块,用于当所述待执行验证组件之前不存在验证组件时,检测是否接收到用户配置的静态参数;第三确定模块,用于当接收到用户配置的静态参数时,将所述静态参数确定为验证组件的输出参数值并存储于预设模板引擎中。可选地,所述装置还包括:第二判断模块,用于判断是否存在待加入所述验证组件集合的待加入验证组件;第三获取模块,用于当存在待加入验证组件时,获取所述待加入验证组件的配置信息,所述配置信息至少包含:组件标识、输入参数配置表达式、输出参数在所述预设顺序中的顺序号;存储模块,用于将所述待加入验证组件的配置信息存储到所述验证组件集合的组件集合配置表中。可选地,所述第一确定模块包括:第一获取子模块,用于获取待执行验证组件的输入参数配置表达式;第二获取子模块,用于在预设模板引擎中获取与所述输入参数配置表达式对应的验证组件的输出参数值;确定子模块,用于根据输入参数配置表达式及所述输出参数值确定所述组件执行方法的输入参数值。可选地,所述组件执行方法中至少包含组件执行方法标识和至少一个组件执行方法入参标识;所述第二获取模块包括:查找子模块,用于查找与待执行组件对应的组件执行方法标识;查找获取子模块,用于根据所述组件执行方法标识获取组件执行方法,并获取所述组件执行方法中的组件执行方法入参标识;第三获取子模块,用于根据组件执行方法入参标识获取组件执行方法的输入参数。本公开的实施例提供的技术方案可以包括以下有益效果:本公开通过获取用于进行软件功能验证的验证组件集合,所述验证组件集合包含至少一个验证组件,获取所述验证组件集合中所有验证组件的输入参数值,以及,与每个验证组件对应的组件执行方法,针对每个与验证组件对应的组件执行方法,将所述组件执行方法中的输入参数替换为所述验证组件的输入参数值,可以按照所述验证组件集合中验证组件的顺序执行所有组件执行方法。本公开提供的该方法,可以将软件验证过程中的每个步骤组件化,根据软件验证功能获取验证组件集合,通过对多个组件的编排,以及多个实现组件间的数据传递,完成软件功能验证,组件化的方式提高了验证组件的复用性。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。图1是根据一示例性实施例示出的一种软件功能验证方法的一种流程图;图2是根据一示例性实施例示出的一种软件功能验证方法的另一种流程图;图3是根据一示例性实施例示出的一种软件功能验证方法的另一种流程图;图4是根据一示例性实施例示出的一种软件功能验证方法的另一种流程图;图5是图1中步骤s103的流程图;图6是图1中步骤s102的流程图;图7是根据一示例性实施例示出的一种软件功能验证装置的一种结构图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。如图1所示,在本公开的一个实施例中,提供一种软件功能验证方法,包括以下步骤。在步骤s101中,获取用于进行软件功能验证的验证组件集合中的待执行验证组件,所述验证组件集合包含至少一个按照预设顺序排列的验证组件,每个所述验证组件对应一个软件功能验证的验证步骤。在本公开实施例中,可以首先将软件功能验证过程的每个验证步骤进行组件化,每一个验证步骤形成一个验证组件,例如,在用于对银行卡充值验证的验证过程中,可以包括以下验证步骤:a.发起一笔银行卡充值请求,获取返回的流水号id_a;b.调用业务系统的查询接口获取与流水号id_a对应的充值数据,并校验各字段正确性。返回系统充值数据中包含业务系统标识id_b等;c.通过业务系统标识id_b,获取网络层充值数据信息,并根据网络层充值数据信息和系统充值数据判断与银行数据交互的正确性。可以将a、b、c三个验证步骤组件化形成三个验证组件a、b、c,这三个验证组件组成的集合即为验证组件集合,另外,验证组件间可以是相互关联的,例如,验证组件b的输入参数为验证组件a的输出参数,验证组件c的输入参数为验证组件b的输出参数等。在该步骤中,可以根据待进行的软件功能验证获取对应的验证组件集合,验证组件集合中的所有验证组件可以为进行软件功能验证时的各个验证步骤进行组件化得到。在步骤s102中,获取与所述待执行组件对应的组件执行方法,以及,组件执行方法的输入参数。在本公开实施例中,组件执行方法可以通过特定的注解(annotation)声明,例如:@componentmethodpubliccomponentresponseexec(@componentparam(key="depositno",desc="充值流水号",type=componentparamtype.bussiness)stringdepositno){//实现}其中,@componentmethod为组件执行方法标识,@componentparam为组件执行方法入参标识,组件执行方法的输入参数包括参数名(key),参数描述(desc),以及参数类型(type)。所述组件执行方法中的输入参数可以为多个,例如,当上述组件执行方法中含有多个组件执行方法入参标识时,可以按照以下方式定义:@componentmethodpubliccomponentresponseexec(@componentparam(key="depositno_1",desc="充值流水号",type=componentparamtype.bussiness)stringdepositno_1,@componentparam(key="depositno_2",desc="充值流水号,type=componentparamtype.bussiness)stringdepositno_2){//实现}每个验证组件在软件功能验证的过程中都会被实例化使用,例如,上述使用componentparam标识的参数,同样会在不同的软件功能验证的过程中被实例化的使用,比如一个java接口为login(stringusername,stringpassword)。其中的两个参数名为stringusername和stringpassword,当username=张三,password=123,则这两个参数被实例化的引用时,会利用参数值张三和123替换掉参数名。当验证组件在软件功能验证的过程中被实例化使用时,会在数据库中的组件实例表及组件参数表中配置参数对应的参数值,组件参数表中的参数值可以是静态数据,也可以是动态数据,其中,静态数据,可以是用户配置的字符串常量;动态数据,可以是软件验证用例传递的参数,也可以是之前组件执行的结果。在该步骤中,可以在数据库中的模板引擎中获取验证组件的输入参数值,并根据每个验证组件获取标识有该验证组件标识的组件执行方法。在步骤s103中,当所述待执行验证组件之前存在验证组件时,根据所述待执行验证组件之前的验证组件的输出参数值确定所述组件执行方法的输入参数值。在该步骤之前,可以判断所述待执行验证组件之前是否存在验证组件。在该步骤中,验证组件的输入参数可以使用java的反射机制获取组件方法中使用注解componentparam标识的参数名称。在步骤s104中,在将所述组件执行方法的输入参数替换为输入参数值后,执行所述组件执行方法。在该步骤中,可以获取验证组件集合中所有验证组件的顺序,再按照验证组件的顺序执行所有组件执行方法。本公开通过获取用于进行软件功能验证的验证组件集合,所述验证组件集合包含至少一个验证组件,获取所述验证组件集合中所有验证组件的输入参数值,以及,与每个验证 组件对应的组件执行方法,针对每个与验证组件对应的组件执行方法,将所述组件执行方法中的输入参数替换为所述验证组件的输入参数值,可以按照所述验证组件集合中验证组件的顺序执行所有组件执行方法。本公开实施例提供的该方法,可以将软件验证过程中的每个步骤组件化,根据软件验证功能获取验证组件集合,通过对多个组件的编排,以及多个实现组件间的数据传递,完成软件功能验证,组件化的方式提高了验证组件的复用性。如图2所示,在本公开的又一实施例中,所述方法还包括以下步骤。在步骤s201中,判断所述组件执行方法是否执行完毕。在该步骤中,可以通过判断是否得到组件执行方法的输出参数等方式来判断所述组件执行方法是否执行完毕。当所述组件执行方法执行完毕后,在步骤s202中,将所述组件执行方法的输出参数值确定为验证组件的输出参数值并存储于预设模板引擎中。在本公开实施例中,模版引擎是为了使用户界面与业务数据内容分离而产生的,可以让网站程序实现界面与数据分离,常用的模版引擎如velocity、freemarker等。本公开通过判断所述组件执行方法是否执行完毕,当所述组件执行方法执行完毕后,可以将所述组件执行方法的输出参数值确定为验证组件的输出参数值并存储于预设模板引擎中。本公开实施例提供的该方法,能够自动将每个组件执行方法的输出参数值进行存储,以供下一个验证组件进行使用。如图3所示,在本公开的又一个实施例中,所述方法还包括以下步骤。当所述待执行验证组件之前不存在验证组件时,在步骤s301中,检测是否接收到用户配置的静态参数。当接收到用户配置的静态参数时,在步骤s302中,将所述静态参数确定为验证组件的输出参数值并存储于预设模板引擎中。本公开通过当所述待执行验证组件之前不存在验证组件时,检测是否接收到用户配置的静态参数,当接收到用户配置的静态参数时,可以将所述静态参数确定为验证组件的输出参数值并存储于预设模板引擎中。本公开实施例提供的该方法,能够在待执行组件为验证组件集合中的第一个验证组件时,由于待执行组件之前并不存在上一个验证组件,所以可以通过用户配置的方式得到输入参数。如图4所示,在本公开的有一个实施例中,所述方法还包括以下步骤。在步骤s401中,判断是否存在待加入所述验证组件集合的待加入验证组件。在该步骤中,可以根据需要进行的软件功能验证选择加入验证组件集合中的验证组件,例如,当现在有五个验证组件a、b、c、d和e,如果首先已获取到用于实现软件功能验证的一个验证组件a并加入验证组件集合中,则可以将使用验证组件a的输出参数的验证组件b也加入到验证组件集合中,同理,验证组件c也可以加入到验证组件集合中。当存在待加入验证组件时,在步骤s402中,获取所述待加入验证组件的配置信息。在本公开实施例中,所述配置信息至少包含:组件标识、输入参数配置表达式、输出参数及在所述预设顺序中的顺序号,例如,组件1和组件2的输入参数配置表达式、输出参数及在所述验证组件集合中预设顺序的顺序号按照下表所示:表1组件标识输入参数配置表达式输出参数顺序号组件1instid=$instcompnentresult_11组件2serialno=$compnentresult_1.idcompnentresult_22每个组件的执行结果均以key,value的形式保存到模版引擎上下文中,组件的输出参数即为key值,组件的执行结果为value值,例如,当组件1的执行结果为123时,compnentresult_1可以为key值,123可以为value值,key值可以作为后续组件使用该组件执行结果的依据。在步骤s403中,将所述待加入验证组件的配置信息存储到所述验证组件集合的组件集合配置表中。在本公开实施例中,可以首先创建一个组件集合配置表,并产生一条配置主记录,当需要将待加入验证组件加入到验证组件集合中时,可以将待加入验证组件与配置主记录建立关联,并将待加入验证组件的配置信息存储到组件集合配置表中。本公开通过判断是否存在待加入所述验证组件集合的待加入验证组件,当存在待加入验证组件时,获取所述待加入验证组件的配置信息,可以将所述待加入验证组件加入到所述验证组件集合中,并将所述配置信息存储于所述组件集合配置表中。本公开实施例提供的该方法能够自动将组成验证组件集合的多个验证组件组合起来,并且根据每个组件的情况将组件的配置信息进行存储,便于在执行验证组件集合时按照建立的关联关系及配置信息执行各个组件。如图5所示,在本公开的又一实施例中,所述步骤s103包括以下步骤。在步骤s501中,获取待执行验证组件的输入参数配置表达式。在本公开实施例中,输入参数配置表达式可以为确定验证组件的输入参数的依据,例如,在计算组件1的输入参数时,instid=$inst为一个输入参数配置表达式,在计算组件2的输入参数时,serialno=$compnentresult_1.id为一个输入参数配置表达式。在步骤s502中,在预设模板引擎中获取与所述输入参数配置表达式对应的验证组件的输出参数值。在实际应用中,与所述输入参数配置表达式对应的验证组件的输出参数值可以为用户配置的静态参数,也可以为之前的验证组件的输出参数值,假设用户配置的静态参数为inst=abc,则可以获取用户配置的静态参数inst=abc作为验证组件的输出参数值;由于组件2的输入参数是根据组件1的输出参数确定的,这时可以获取组件1的输出参数compnentresult_1。在步骤s503中,根据输入参数配置表达式及所述输出参数值确定所述组件执行方法的输入参数值。在实际应用中,在计算组件1的输入参数值时,可以将输入参数配置表达式中等号右边的inst用abc进行替换,则instid=abc;在计算组件2的输入参数值时,假设id=123456时,因为compnentresult_1是个java复杂对象,使用$compnentresult_1.id模版表达式可以取出其中变量id的值,因此替换后,组件2的输入参数serialno=123456。本公开通过获取待执行验证组件的输入参数配置表达式,在预设模板引擎中获取与所述输入参数配置表达式对应的验证组件的输出参数值,可以根据输入参数配置表达式及所述输出参数值确定所述组件执行方法的输入参数值。本公开实施例提供的该方法,能够根据用户配置的静态参数或者待执行验证组件之前的验证组件的输出参数值自动确定待执行组件的输入参数值,方法简单、高效。如图6所示,在本公开的又一实施例中,所述组件执行方法中至少包含组件执行方法标识和至少一个组件执行方法入参标识。所述步骤s102包括以下步骤。在步骤s601中,查找与待执行组件对应的组件执行方法标识。在该步骤中,可以通过反射机制查找与待执行组件对应的组件执行方法标识。在步骤s602中,根据所述组件执行方法标识获取组件执行方法,并获取所述组件执行方法中的组件执行方法入参标识。在本公开实施例中,可以通过反射机制获取组件执行方法,也可以通过反射机制在组 件执行方法中查找与待执行组件对应的组件执行方法标识。在步骤s603中,根据组件执行方法入参标识获取组件执行方法的输入参数。可以通过反射机制获取组件执行方法的输入参数。本公开通过查找与待执行组件对应的组件执行方法标识,可以根据所述组件执行方法标识获取组件执行方法,并获取所述组件执行方法中的组件执行方法入参标识,可以根据组件执行方法入参标识获取组件执行方法的输入参数。本公开实施例提供的该方法,能够自动查找及获取组件执行方法及组件执行方法的输入参数,便于进行组件间的数据传递。如图7所示,在本公开的又一实施例中,提供一种软件功能验证装置,包括:第一获取模块701、第二获取模块702、第一确定模块703和执行模块704。第一获取模块701,用于获取用于进行软件功能验证的验证组件集合中的待执行验证组件,所述验证组件集合包含至少一个按照预设顺序排列的验证组件,每个所述验证组件对应一个软件功能验证的验证步骤。第二获取模块702,用于获取与所述待执行组件对应的组件执行方法,以及,组件执行方法的输入参数。第一确定模块703,用于当所述待执行验证组件之前存在验证组件时,根据所述待执行验证组件之前的验证组件的输出参数值确定所述组件执行方法的输入参数值。执行模块704,用于在将所述组件执行方法的输入参数替换为输入参数值后,执行所述组件执行方法。在本公开的又一实施例中,所述装置还包括:第一判断模块和第二确定模块。第一判断模块,用于判断所述组件执行方法是否执行完毕。第二确定模块,用于当所述组件执行方法执行完毕后,将所述组件执行方法的输出参数值确定为验证组件的输出参数值并存储于预设模板引擎中。在本公开的又一实施例中,所述装置还包括:检测模块和第三确定模块。检测模块,用于当所述待执行验证组件之前不存在验证组件时,检测是否接收到用户配置的静态参数。第三确定模块,用于当接收到用户配置的静态参数时,将所述静态参数确定为验证组件的输出参数值并存储于预设模板引擎中。在本公开的又一实施例中,所述装置还包括:第二判断模块、第三获取模块和加入存 储模块。第二判断模块,用于判断是否存在待加入所述验证组件集合的待加入验证组件。第三获取模块,用于当存在待加入验证组件时,获取所述待加入验证组件的配置信息,所述配置信息至少包含:组件标识、输入参数配置表达式、输出参数及在所述预设顺序中的顺序号。存储模块,用于将所述待加入验证组件的配置信息存储到所述验证组件集合的组件集合配置表中。在本公开的又一实施例中,所述第一确定模块包括:第一获取子模块、第二获取子模块和确定子模块。第一获取子模块,用于获取待执行验证组件的输入参数配置表达式。第二获取子模块,用于在预设模板引擎中获取与所述输入参数配置表达式对应的验证组件的输出参数值。确定子模块,用于根据输入参数配置表达式及所述输出参数值确定所述组件执行方法的输入参数值。在本公开的又一实施例中,所述组件执行方法中至少包含组件执行方法标识和至少一个组件执行方法入参标识。所述第二获取模块包括:查找子模块、查找获取子模块和第三获取子模块。查找子模块,用于查找与待执行组件对应的组件执行方法标识。查找获取子模块,用于根据所述组件执行方法标识获取组件执行方法,并获取所述组件执行方法中的组件执行方法入参标识。第三获取子模块,用于根据组件执行方法入参标识获取组件执行方法的输入参数。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本
技术领域
中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由所附的权利要求指出。应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1