一种测试中的断言处理方法及系统技术方案

技术编号:8131028 阅读:202 留言:0更新日期:2012-12-27 03:11
本申请提供了一种测试中的断言处理方法及系统,以解决现有技术将测试用例代码与测试用例绑定导致测试效率低的问题。所述方法包括:接收测试请求;根据所述测试请求进行数据初始化,得到初始测试数据;解析预配置的断言文件,得到解析结果;按照所述解析结果对所述初始测试数据执行断言处理。本申请通过可配置的方式实现了测试中断言的自动化执行。针对不同的测试用例,每次测试只需要编写配置断言文件即可,无需重新编写测试用例代码,大大提高了测试效率。而且,对于不了解具体编程语言的测试人员,还可以避免测试人员不具备开发技能而带来的一系列测试难度问题。

【技术实现步骤摘要】

本申请涉及测试技术,特别是涉及一种测试中的断言处理方法及系统
技术介绍
在软件测试过程中,测试人员一般进行黑盒测试,通过检验系统对外提供的界面接ロ来验证系统提供的功能正确与否。但是黑盒测试存在比较大的局限性,在测试流程中要求交付测试的系统是ー个可以正常运行的系统,而且无法检验系统内部模块的功能是否符合测试计划的要求。鉴于上述原因,具有编程技能的开发人员和测试人员会采用白盒测试的方式来进行测试。在白盒测试中,针对数据库进行测试时,常常使用断言(assert)来查找逻辑错·误。编写代码时,程序员总是会做出一些假设,断言就是用于在代码中捕捉这些假设,因此可以将断言看作是异常处理的一种高级形式。断言表示为ー些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真。断言可以在调试模式下用来确保制定条件被满足,比如说,程序员想确保X > 0,在代码中就可以写assert (X > O);如果在运行过程中发现x<=0 了,代码就会中断,利用调试器很容易发现问题所在。可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。同样,程序投入运行后,最終用户在遇到问题时可以重新起用断言。现有技术中,针对数据库进行的断言处理一般采用以下方式测试人员先人工准备用于测试的数据,即手动输入用于测试的初始值,然后编写単元测试用例代码(例如Java、C#)将数据库数据转化成程序对象,再执行这些测试用例来达到断言的效果。上述断言处理方法采用了将测试用例代码与测试用例绑定的方式,因此无法应用到多套测试方案中,毎次测试都需要重新编写测试用例代码,工作量很大,大大降低了测试效率。
技术实现思路
本申请提供了一种测试中的断言处理方法及系统,以解决现有技术将测试用例代码与测试用例绑定导致测试效率低的问题。为了解决上述问题,本申请公开了一种测试中的断言处理方法,包括接收测试请求;根据所述测试请求进行数据初始化,得到初始测试数据;解析预配置的断言文件,得到解析结果;按照所述解析结果对所述初始测试数据执行断言处理。优选的,所述解析预配置的断言文件得到解析结果,包括将断言文件按照指定格式进行逐行解析,得到的解析结果包括断言操作以及执行该断言操作得到的期望值。优选的,按照所述解析结果对所述初始测试数据执行断言处理,包括获取所述解析结果中的断言操作,并对所述初始测试数据执行该断言操作,得到执行結果;将所述执行结果与所述解析结果中的期望值进行比较。优选的,通过以下方式预配置断言文件按照指定格式自定义断言文件,包括自定义断言判定的开始、断言操作和执行该断言操作得到的期望值。优选的,根据所述测试请求进行数据初始化得到初始测试数据,包括根据所述测试请求读取初始化配置文件;解析所述初始化配置文件得到数据初始化配置信息;依据所述数据初始化配置信息执行相应的数据初始化操作,得到初始测试数据。 优选的,根据所述测试请求进行数据初始化得到初始测试数据,包括根据所述测试请求读取初始化配置文件,所述初始化配置文件中包含以sql脚本形式保存的配置信息;将所述sql脚本形式的配置信息从所述初始化配置文件中解析出来;根据所述sql脚本形式的配置信息连接相应的数据库服务器,并执行数据库操作命令,得到初始测试数据。优选的,所述数据初始化包括全局初始化和调用初始化若设定全局初始化,则每次测试都默认使用全局的数据初始化配置信息;若设定调用初始化,则每次测试都使用针对自己的数据初始化配置信息。优选的,数据初始化支持多数据源数据初始化,并支持外部文件的读取。优选的,若后续初始化操作语句的执行依赖于前面操作语句的执行結果,则在数据初始化配置信息中,设置变量用于缓存所述前面操作语句的执行結果;在数据初始化过程中,当执行所述后续初始化操作语句时,将所述缓存的执行结果读取。本申请还提供了一种测试中的断言处理系统,包括断言请求模块,用于接收测试请求;数据初始化模块,用于根据所述测试请求进行数据初始化,得到初始测试数据;断言解析模块,用于解析预配置的断言文件,得到解析结果;断言处理模块,用于按照所述解析结果对所述初始测试数据执行断言处理。优选的,所述断言解析模块将断言文件按照指定格式进行逐行解析,得到的解析结果包括断言操作以及执行该断言操作得到的期望值。优选的,所述断言处理模块包括断言执行子模块,用于获取所述解析结果中的断言操作,并对所述初始测试数据执行该断言操作,得到执行结果;比较子模块,用于将所述执行结果与所述解析结果中的期望值进行比较。优选的,所述系统还包括断言配置模块,用于按照指定格式自定义断言文件,包括自定义断言判定的开始、断言操作和执行该断言操作得到的期望值。优选的,所述数据初始化模块包括读取子模块,用于根据所述测试请求读取初始化配置文件;解析子模块,用于解析所述初始化配置文件得到数据初始化配置信息;初始化子模块,依据所述数据初始化配置信息执行相应的数据初始化操作,得到初始测试数据。优选的,所述初始化子模块还包括全局初始化子模块,用于每次测试都默认使用全局的数据初始化配置信息;调用初始化子模块,用于每次测试都使用针对自己的数据初始化配置信息。优选的,所述系统还包括初始化配置模块,用于在初始化配置文件中自定义数据初始化配置信息,还用于当后续初始化操作语句的执行依赖于前面操作语句的执行结果时,在数据初始化配置信息中设置变量用于缓存所述前面操作语句的执行结果;所述初始化子模块当执行所述后续初始化操作语句时,将所述缓存的执行结果读取。与现有技术相比,本申请包括以下优点首先,本申请通过可配置的方式实现了测试中断言的自动化执行。测试人员可以在断言文件中声明各类所需要进行的断言操作,从测试的开始到结束,根据所配置好的断言文件即可完全自动化执行断言操作。因此,针对不同的测试用例,毎次测试只需要编写配置断言文件即可,无需重新编写测试用例代码,大大提高了测试效率。而且,对于不了解具 体编程语言的测试人员,还可以避免测试人员不具备开发技能而带来的一系列测试难度问题。其次,本申请还可通过配置的方式准备测试所需的数据。通过声明式的数据初始化配置,根据解析获得的初始化配置信息就可以自动完成测试数据的准备工作,无需测试人员手动输入,从而进一步提高了测试效率。而且,这种数据初始化配置的方式更加灵活。当然,实施本申请的任一产品不一定需要同时达到以上所述的所有优点。附图说明图I是本申请实施例所述ー种测试中的断言处理方法的流程图;图2是本申请实施例所述ー种声明式断言的解析流程图;图3是本申请实施例所述ー种执行自动化数据库断言的流程图;图4是本申请实施例所述进行自动化数据准备的示意图;图5是本申请实施例所述初始化配置文件的数据结构示意图;图6是本申请实施例所述数据初始化动态參数绑定机制的示意图;图7是本申请实施例所述ー种测试中的断言处理系统结构图;图8是本申请实施例所述断言处理系统的整体处理流程示意图;图9是本申请实施例所述断言处理系统的详细处理流程示意图。具体实施例方式为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。针对测试中的断言处理,为了提高处理效率,本申请提出ー种断言处理方法及系统,通过可配置的方式实现断言的自动化执行本文档来自技高网
...

【技术保护点】
一种测试中的断言处理方法,其特征在于,包括:接收测试请求;根据所述测试请求进行数据初始化,得到初始测试数据;解析预配置的断言文件,得到解析结果;按照所述解析结果对所述初始测试数据执行断言处理。

【技术特征摘要】

【专利技术属性】
技术研发人员:植晶晶张文波
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1