一种测试脚本断言生成方法及装置制造方法及图纸

技术编号:28622776 阅读:11 留言:0更新日期:2021-05-28 16:18
本申请实施例提供一种测试脚本断言生成方法及装置,可用于信息安全技术领域,其方法包括:解析目标源代码,生成所述目标源代码的数据血缘关系;根据所述数据血缘关系生成一断言类,所述断言类包括一断言方法,所述断言方法用于源代码测试时被调用。本申请规避了断言数据不准确的情况,并且通过检查断言覆盖结果保证了断言字段的全面性。

【技术实现步骤摘要】
一种测试脚本断言生成方法及装置
本申请涉及计算机
,具体涉及测试脚本断言生成方法及装置。
技术介绍
在软件测试过程中,自动化测试是一种常见的测试手段。自动化测试脚本的断言一般是通过工具生成,或是测试人员手工编写。对于通过工具生成的自动化测试脚本断言,一般是只对交易结果进行简单的断言,或是通过预配置生成了特定组合的断言,没有针对测试场景做精准断言;对于测试人员手工编写的断言,若测试人员对被测功能不够熟悉,那么就可能出现遗漏关键字段断言,或是写错断言预期结果的情况。
技术实现思路
针对现有技术中的问题,本申请提供一种测试脚本断言生成方法及装置,方法包括:解析目标源代码,生成所述目标源代码的数据血缘关系;根据所述数据血缘关系生成一断言类,所述断言类包括一断言方法,所述断言方法用于源代码测试时被调用。本申请规避了断言数据不准确的情况,并且通过检查断言覆盖结果保证了断言字段的全面性。本专利技术的一方面,提供一种测试脚本断言生成方法,包括:解析目标源代码,生成所述目标源代码的数据血缘关系;根据所述数据血缘关系生成一断言类,所述断言类包括一断言方法,所述断言方法用于源代码测试时被调用。在优选的实施例中,所述解析目标源代码,生成所述目标源代码的数据血缘关系,包括:对所述目标源代码进行词法分析;根据所述词法分析得出的语句类型,建立目标源代码的数据血缘关系。在优选的实施例中,还包括:将所述目标源代码划分为多个代码单元;所述对所述目标源代码进行词法分析,包括:分别对每个代码单元进行词法分析。在优选的实施例中,所述代码单元为一行代码,或者所述代码单元包括设定字符长度。在优选的实施例中,所述根据所述词法分析得出的语句类型,建立目标源代码的数据血缘关系,包括:按照每个代码单元所处目标源代码中的先后顺序,逐一判断每个代码单元的语句类型;基于所述语句类型按照设定规则执行至少一个构建操作,得到所述目标源代码的数据血缘关系。在优选的实施例中,所述数据血缘关系包括多个数据血缘单元,每个数据血缘单元包括:判断正确列表、判断错误列表以及判断条件语句;基于所述语句类型按照设定规则执行至少一个构建操作,包括:若所述代码单元的语句类型为赋值语句,将所述代码单元插入至相对的上一层级数据血缘单元中的判断正确列表;若所述代码单元的语句类型为判断语句,创建相对的下一层级数据血缘单元,并将所述代码单元记录至该下一层级数据血缘单元的判断条件语句,将该下一层级数据血缘单元插入至相对的上一层级数据单元中,将所述代码单元中判断为正确的分支插入该下一层级数据血缘单元的判断正确列表,判断为错误的分支插入该下一层级数据血缘单元的判断错误列表。在优选的实施例中,所述根据所述数据血缘关系生成一断言类,包括:遍历数据血缘关系中所有的数据血缘单元;根据所述数据血缘单元中记录的语句类型,生成相应的断言语句,进而生成所述断言类。在优选的实施例中,所述根据所述数据血缘单元中记录的语句类型,生成相应的断言语句,包括:若所述语句类型为赋值语句,则将该赋值语句作为其对应的断言语句;若所述语句类型为判断语句,则将记录的判断条件语句作为断言语句的判断条件,将记录的判断正确列表作为断言语句正确的分支,将记录的判断错误列表作为断言语句错误的分支;若所述语句类型为数据库操作语句,根据数据库操作类型生成相应的断言语句。在优选的实施例中,所述根据数据库操作类型生成相应的断言语句,包括:若所述数据库操作类型为插入,在预设的断言映射文件中增加一条和源代码数据库映射文件中键同名的查询记录,将返回表记录数作为断言的实际值,将1作为断言的期望值,生成相应的断言语句;若所述数据库操作类型为更新,在预设的断言映射文件中增加一条和源代码数据库映射文件中键同名的查询记录,将返回表记录数作为断言的实际值,将源代码对应的数据库语句中的键值代表的变量作为断言的期望值,根据查询条件字段依次生成相应的断言语句;若所述数据库操作类型为删除,在预设的断言映射文件中增加一条和源代码数据库映射文件中键同名的查询记录,将返回表记录数作为断言的实际值,将0作为断言的期望值,生成相应的断言语句。本专利技术的又一方面,提供一种测试脚本断言生成装置,包括:数据血缘关系生成模块,解析目标源代码,生成所述目标源代码的数据血缘关系;断言类生成模块,根据所述数据血缘关系生成一断言类,所述断言类包括一断言方法,所述断言方法用于源代码测试时被调用。在优选的实施例中,所述数据血缘关系生成模块,包括:词法分析单元,对所述目标源代码进行词法分析;数据血缘关系建立单元,根据所述词法分析得出的语句类型,建立目标源代码的数据血缘关系。在优选的实施例中,还包括:代码单元划分单元,具体用于将所述目标源代码划分为多个代码单元;所述词法分析单元,具体用于分别对每个代码单元进行词法分析。在优选的实施例中,所述代码单元为一行代码,或者所述代码单元包括设定字符长度。在优选的实施例中,所述数据血缘关系建立单元,包括:代码单元类型判断单元,按照每个代码单元所处目标源代码中的先后顺序,逐一判断每个代码单元的语句类型;数据血缘关系构建单元,基于所述语句类型按照设定规则执行至少一个构建操作,得到所述目标源代码的数据血缘关系。在优选的实施例中,所述数据血缘关系包括多个数据血缘单元,每个数据血缘单元包括:判断正确列表、判断错误列表以及判断条件语句;所述数据血缘关系构建单元,包括:赋值语句构建单元,若所述代码单元的语句类型为赋值语句,将所述代码单元插入至相对的上一层级数据血缘单元中的判断正确列表;判断语句构建单元,若所述代码单元的语句类型为判断语句,创建相对的下一层级数据血缘单元,并将所述代码单元记录至该下一层级数据血缘单元的判断条件语句,将该下一层级数据血缘单元插入至相对的上一层级数据单元中,将所述代码单元中判断为正确的分支插入该下一层级数据血缘单元的判断正确列表,判断为错误的分支插入该下一层级数据血缘单元的判断错误列表。在优选的实施例中,所述断言类生成模块,包括:遍历单元,遍历数据血缘关系中所有的数据血缘单元;断言生成单元,根据所述数据血缘单元中记录的语句类型,生成相应的断言语句,进而生成所述断言类。在优选的实施例中,所述断言生成单元,包括:赋值语句断言生成单元,若所述语句类型为赋值语句,则将该赋值语句作为其对应的断言语句;判断语句断言生成单元,若所述语句类型为判断语句,则将记录的判断条件语句作为断言语句的判断条件,将记录的判断正确列表作为断言语句正确的分支,将记录的判断错误列表作为断言语句错误的分支;数据库操作语句断言生成单元,若所述语句类型为数据库操作语句,根据数据库操作类型生成相应的断言语句。在优选的实施例中,所述数据库操作语句断言生成单元,包括:...

【技术保护点】
1.一种测试脚本断言生成方法,其特征在于,包括:/n解析目标源代码,生成所述目标源代码的数据血缘关系;/n根据所述数据血缘关系生成一断言类,所述断言类包括一断言方法,所述断言方法用于源代码测试时被调用。/n

【技术特征摘要】
1.一种测试脚本断言生成方法,其特征在于,包括:
解析目标源代码,生成所述目标源代码的数据血缘关系;
根据所述数据血缘关系生成一断言类,所述断言类包括一断言方法,所述断言方法用于源代码测试时被调用。


2.根据权利要求1所述的测试脚本断言生成方法,其特征在于,所述解析目标源代码,生成所述目标源代码的数据血缘关系,包括:
对所述目标源代码进行词法分析;
根据所述词法分析得出的语句类型,建立目标源代码的数据血缘关系。


3.根据权利要求2所述的测试脚本断言生成方法,其特征在于,还包括:将所述目标源代码划分为多个代码单元;所述对所述目标源代码进行词法分析,包括:分别对每个代码单元进行词法分析。


4.根据权利要求3所述的测试脚本断言生成方法,其特征在于,所述代码单元为一行代码,或者所述代码单元包括设定字符长度。


5.根据权利要求2所述的测试脚本断言生成方法,其特征在于,所述根据所述词法分析得出的语句类型,建立目标源代码的数据血缘关系,包括:
按照每个代码单元所处目标源代码中的先后顺序,逐一判断每个代码单元的语句类型;
基于所述语句类型按照设定规则执行至少一个构建操作,得到所述目标源代码的数据血缘关系。


6.根据权利要求5所述的测试脚本断言生成方法,其特征在于,所述数据血缘关系包括多个数据血缘单元,每个数据血缘单元包括:判断正确列表、判断错误列表以及判断条件语句;基于所述语句类型按照设定规则执行至少一个构建操作,包括:
若所述代码单元的语句类型为赋值语句,将所述代码单元插入至相对的上一层级数据血缘单元中的判断正确列表;
若所述代码单元的语句类型为判断语句,创建相对的下一层级数据血缘单元,并将所述代码单元记录至该下一层级数据血缘单元的判断条件语句,将该下一层级数据血缘单元插入至相对的上一层级数据单元中,将所述代码单元中判断为正确的分支插入该下一层级数据血缘单元的判断正确列表,判断为错误的分支插入该下一层级数据血缘单元的判断错误列表。


7.根据权利要求1所述的测试脚本断言生成方法,其特征在于,所述根据所述数据血缘关系生成一断言类,包括:
遍历数据血缘关系中所有的数据血缘单元;
根据所述数据血缘单元中记录的语句类型,生成相应的断言语句,进而生成所述断言类。


8.根据权利要求7所述的测试脚本断言生成方法,其特征在于,所述根据所述数据血缘单元中记录的语句类型,生成相应的断言语句,包括:
若所述语句类型为赋值语句,则将该赋值语句作为其对应的断言语句;
若所述语句类型为判断语句,则将记录的判断条件语句作为断言语句的判断条件,将记录的判断正确列表作为断言语句正确的分支,将记录的判断错误列表作为断言语句错误的分支;
若所述语句类型为数据库操作语句,根据数据库操作类型生成相应的断言语句。


9.根据权利要求8所述的测试脚本断言生成方法,其特征在于,所述根据数据库操作类型生成相应的断言语句,包括:
若所述数据库操作类型为插入,在预设的断言映射文件中增加一条和源代码数据库映射文件中键同名的查询记录,将返回表记录数作为断言的实际值,将1作为断言的期望值,生成相应的断言语句;
若所述数据库操作类型为更新,在预设的断言映射文件中增加一条和源代码数据库映射文件中键同名的查询记录,将返回表记录数作为断言的实际值,将源代码对应的数据库语句中的键值代表的变量作为断言的期望值,根据查询条件字段依次生成相应的断言语句;
若所述数据库操作类型为删除,在预设的断言映射文件中增加一条和源代码数据库映射文件中键同名的查询记录,将返回表记录数作为断言的实际值,将0作为断言的期望值,生成相应的断言语句。


10.一种测试脚本断言生成装置,其特征在于,包括:
数据血缘关系生成模块,解析目标源代码,生成所述目标源代码的数据血缘关系;
断言类生成模块,根据所述数据血缘关系生成一断言类,所述断言类包括一断言方法,所述断言方法用于源代码测试时被调用。

<...

【专利技术属性】
技术研发人员:朱伟健吴能斌黄菁利德新
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:北京;11

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

1