条件语句取值确定方法、装置及存储介质制造方法及图纸

技术编号:38219666 阅读:8 留言:0更新日期:2023-07-25 17:51
本发明专利技术实施例提供了一种条件语句取值确定方法、装置以及存储介质,所述方法包括:确定源代码中的至少一个条件语句;基于所述条件语句,在所述条件语句的之前和/或之后设置插桩语句;基于所述插桩语句的执行状况,确定所述插桩语句对应的条件语句的取值,所述取值指示所述条件语句的执行结果。所述条件语句的执行结果。所述条件语句的执行结果。

【技术实现步骤摘要】
条件语句取值确定方法、装置及存储介质


[0001]本专利技术涉及计算机
,尤其涉及一种条件语句取值确定方法、装置及存储介质。

技术介绍

[0002]一个判定语句中往往包含了若干个条件语句,条件覆盖比判定覆盖具有更强的测试能力;条件覆盖可以确定一个判定语句中的每一个条件语句的取值结果,而判定覆盖仅能判断判定语句的整个结果,而忽略每个条件语句的取值情况。现有技术中,白盒测试技术可以直接对源代码进行插桩来获取判定语句的取值情况,但在字节码插桩情况下,白盒测试工具对字节码进行分析,会导致源码信息缺失,从而不能获取到源代码中条件语句的取值情况。

技术实现思路

[0003]本专利技术实施例提供一种条件语句取值确定方法、装置及存储介质。
[0004]本专利技术实施例技术方案是这样实现的:
[0005]本专利技术实施例提供一种条件语句取值确定方法,所述方法包括:
[0006]确定源代码中的至少一个条件语句;
[0007]基于所述条件语句,在所述条件语句的之前和/或之后设置插桩语句;
[0008]基于所述插桩语句的执行状况,确定所述插桩语句对应的条件语句的取值,所述取值指示所述条件语句的执行结果。
[0009]上述方案中,所述确定源代码中的至少一个条件语句,包括:
[0010]从源代码的语句块中,确定出包含判定语句的判定语句块;其中,所述语句块包括:多个连续分布的代码语句;所述代码语句包括:一个入口语句和出口语句;
[0011]根据所述判定语句块对应的块信息,确定所述判定语句中的条件语句。
[0012]上述方案中,所述块信息包括:所述判定语句块的位置信息;
[0013]所述根据所述判定语句块对应的块信息,确定所述判定语句中的至少一个条件语句,包括:
[0014]根据判定语句块的位置信息,从源代码中确定出所述判定语句块中的判定语句;其中,所述判定语句包括一个或多个条件语句;
[0015]对所述判定语句进行解析,确定出所述判定语句中的条件语句。
[0016]上述方案中,所述基于所述条件语句,在所述条件语句的之前和/或之后设置插桩语句,包括:
[0017]通过汇编语言(ASM)对所述条件语句进行字节码分析,生成测试语句;所述测试语句与所述条件语句逻辑相同或相反;
[0018]基于测试语句,在所述测试语句的之前设置包含第一数值的插桩语句;
[0019]和/或,
[0020]在所述测试语句的之后设置包含第二数值的插桩语句。
[0021]上述方案中,所述基于所述插桩语句的执行状况,确定所述插桩语句对应的条件语句的取值,所述取值指示所述条件语句的执行结果,包括:
[0022]基于所述包含第一数值的插桩语句和包含第二数值的插桩语句的执行状况,确定所述测试语句的取值;
[0023]根据所述测试语句的取值,确定所述条件语句的取值;其中,所述条件语句的取值指示所述条件语句的执行结果。
[0024]上述方案中,所述基于所述包含第一数值的插桩语句和包含第二数值的插桩语句的执行状况,确定所述测试语句的取值,包括:
[0025]若所述包含第一取值的插桩语句和所述包含第二取值的插桩语句均被执行,确定所述测试语句的取值为真的布尔值;
[0026]和/或,
[0027]若所述包含第一取值的插桩语句被执行,且所述包含第二取值的插桩语句未被执行,确定所述测试语句的取值为假的布尔值。
[0028]上述方案中,所述根据所述测试语句的取值,确定所述条件语句的取值,包括:
[0029]当所述测试语句与所述条件语句逻辑相同时,所述条件语句的取值等于所述测试语句的取值;
[0030]和/或,
[0031]当所述测试语句与所述条件语句逻辑相反时,所述条件语句的取值等于取反后的所述测试语句的取值。
[0032]本专利技术实施例还提供一种条件语句取值确定装置,所述装置包括:第一确定模块、设置模块和第二确定模块;
[0033]所述第一确定模块,用于确定源代码中的至少一个条件语句;
[0034]所述设置模块,用于基于所述条件语句,在所述条件语句的之前和/或之后设置插桩语句;
[0035]所述第二确定模块,用于基于所述插桩语句的执行状况,确定所述插桩语句对应的条件语句的取值,所述取值指示所述条件语句的执行结果。
[0036]上述方案中,所述第一确定模块,具体用于:
[0037]从源代码的语句块中,确定出包含判定语句的判定语句块;其中,所述语句块包括:多个连续分布的代码语句;所述代码语句包括:一个入口语句和出口语句;
[0038]根据所述判定语句块对应的块信息,确定所述判定语句中的条件语句。
[0039]上述方案中,所述块信息包括:所述判定语句块的位置信息;
[0040]所述第一确定模块,具体用于:根据判定语句块的位置信息,从源代码中确定出所述判定语句块中的判定语句;其中,所述判定语句包括一个或多个条件语句;
[0041]对所述判定语句进行解析,确定出所述判定语句中的条件语句。
[0042]上述方案中,所述设置模块,具体用于:
[0043]通过汇编语言(ASM)对所述条件语句进行字节码分析,生成测试语句;所述测试语句与所述条件语句逻辑相同或相反;
[0044]基于测试语句,在所述测试语句的之前设置包含第一数值的插桩语句;
[0045]和/或,
[0046]在所述测试语句的之后设置包含第二数值的插桩语句。
[0047]上述方案中,所述第二确定模块,具体用于:
[0048]基于所述包含第一数值的插桩语句和包含第二数值的插桩语句的执行状况,确定所述测试语句条件语句的取值;
[0049]根据所述测试语句的取值,确定所述条件语句的取值;其中,所述条件语句的取值指示所述条件语句的执行结果。
[0050]上述方案中,所述第二确定模块,具体用于:
[0051]若所述包含第一取值的插桩语句和所述包含第二取值的插桩语句均被执行,确定所述测试语句的取值为真的布尔值;
[0052]和/或,
[0053]若所述包含第一取值的插桩语句被执行,且所述包含第二取值的插桩语句未被执行,确定所述测试语句的取值为假的布尔值。
[0054]上述方案中,所述第二确定模块,具体用于:
[0055]当所述测试语句与所述条件语句逻辑相同时,所述条件语句的取值等于所述测试语句的取值;
[0056]和/或,
[0057]当所述测试语句与所述条件语句逻辑相反时,所述条件语句的取值等于取反后的所述测试语句的取值。
[0058]本专利技术实施例还提供一种条件语句取值确定装置,所述装置包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器;
[0059]其中,所述处理器用于运行所述计算机程序时,执行上述任意一种条件语句取值确定方法的步骤。
...

【技术保护点】

【技术特征摘要】
1.一种条件语句取值确定方法,其特征在于,所述方法包括:确定源代码中的至少一个条件语句;基于所述条件语句,在所述条件语句的之前和/或之后设置插桩语句;基于所述插桩语句的执行状况,确定所述插桩语句对应的条件语句的取值,所述取值指示所述条件语句的执行结果。2.根据权利要求1所述的条件语句取值确定方法,其特征在于,所述确定源代码中的至少一个条件语句,包括:从源代码的语句块中,确定出包含判定语句的判定语句块;其中,所述语句块包括:多个连续分布的代码语句;所述代码语句包括:一个入口语句和出口语句;根据所述判定语句块对应的块信息,确定所述判定语句中的条件语句。3.根据权利要求2所述的条件语句取值确定方法,其特征在于,所述块信息包括:所述判定语句块的位置信息;所述根据所述判定语句块对应的块信息,确定所述判定语句中的至少一个条件语句,包括:根据判定语句块的位置信息,从源代码中确定出所述判定语句块中的判定语句;其中,所述判定语句包括一个或多个条件语句;对所述判定语句进行解析,确定出所述判定语句中的条件语句。4.根据权利要求1所述的条件语句取值确定方法,其特征在于,所述基于所述条件语句,在所述条件语句的之前和/或之后设置插桩语句,包括:通过汇编语言(ASM)对所述条件语句进行字节码分析,生成测试语句;所述测试语句与所述条件语句逻辑相同或相反;基于测试语句,在所述测试语句的之前设置包含第一数值的插桩语句;和/或,在所述测试语句的之后设置包含第二数值的插桩语句。5.根据权利要求4所述的条件语句取值确定方法,其特征在于,所述基于所述插桩语句的执行状况,确定所述插桩语句对应的条件语句的取值,所述取值指示所述条件语句的执行结果,包括:基于所述包含第一数值的插桩语句和包含第二数值的插桩语句的执行状况,确定所述测试语句的取值;根据所述测试语句的取值,确定所述条件语句的取值;其中,所述条件语句的取值指示所述条件语句的执行结果。6.根据权利要求5所述的条件语句取值确定方法,其特征在于,所述基于所述包含第一数值的插桩语句和包含第二数值的插桩语句的执行状况,确定所述测试语句的取值,包括:若所述包含第一取值的插桩语句和所述包含第二取值的插桩语句均被执行,确定所述测试语句的取值为真的布尔值;和/或,若所述包含第一取值的插桩语句被执行,且所述包含第二取值的插桩语句未被执行,确定所述测试语句的取值为假的布尔值。7.根据权利要求5或6所述的条件语句取值确定方法,其特征在于,所述根据所述测试
语句的取值,确定所述条件语句的取值,包括:当所述测试语句与所述条件语句逻辑相同时,所述条件语句的取值等于所述测试语句的取值;和/或,当所述测试语句与所述条件语句逻辑相反时,所述条件语句的取值等于取反后的所述测试语句的取值。8.一种条件语句取值确定装置,其特征在于,所述装置包括:第一确定模块、设置模块和第...

【专利技术属性】
技术研发人员:赵明张锦
申请(专利权)人:苏州洞察云信息技术有限公司
类型:发明
国别省市:

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

1