CN103838666A - 一种确定代码执行覆盖率的方法和装置 - Google Patents
一种确定代码执行覆盖率的方法和装置 Download PDFInfo
- Publication number
- CN103838666A CN103838666A CN201210489469.7A CN201210489469A CN103838666A CN 103838666 A CN103838666 A CN 103838666A CN 201210489469 A CN201210489469 A CN 201210489469A CN 103838666 A CN103838666 A CN 103838666A
- Authority
- CN
- China
- Prior art keywords
- executable code
- code
- run time
- shell script
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种确定代码执行覆盖率的方法和装置,其中方法包括:S1、通过对被测脚本程序的解析确定可执行代码以及可执行代码的位置信息,利用可执行代码的位置信息生成key写入数据库;S2、在所述被测脚本程序的执行过程中,将执行代码的执行状况信息在所述数据库中针对执行代码对应的key进行标注;S3、利用所述数据库中的执行代码数量和可执行代码数量的比值确定所述被测脚本程序的执行覆盖率。本发明能够提高所统计的被测脚本程序的执行覆盖状况的准确性。
Description
【技术领域】
本发明涉及计算机应用中的软件测试技术领域,特别涉及一种确定代码执行覆盖率的方法和装置。
【背景技术】
Shell脚本指放在一个文件中的一系列Linux命令和实用程序,在shell脚本的测试过程中,代码的行覆盖率是评价测试活动覆盖产品代码的一项重要指标,体现了代码执行覆盖状况。
现有确定shell脚本程序的代码执行覆盖状况的方式主要是通过系统的执行日志来判断代码的行覆盖率,诸如shcov工具。然而现有这种通过分析执行日志来统计行覆盖率的方式,由于忽略了被测脚本程序执行的细节,并不能真实反映程序的执行情况,尤其是在被测脚本程序出现命令跨行、文件重名时不能正确的确定被测脚本程序的执行覆盖状况,准确性较差,并且被测脚本程序使用诸如awk等处理命令时,awk内部的代码无法统计行覆盖率。
【发明内容】
有鉴于此,本发明提供了一种确定代码执行覆盖率的方法和装置,以便于提高所统计的被测脚本程序的执行覆盖状况的准确性。
具体技术方案如下:
一种确定代码执行覆盖率的方法,该方法包括:
S1、通过对被测脚本程序的解析确定可执行代码以及可执行代码的位置信息,利用可执行代码的位置信息生成key写入数据库;
S2、在所述被测脚本程序的执行过程中,将执行代码的执行状况信息在所述数据库中针对执行代码对应的key进行标注;
S3、利用所述数据库中的执行代码数量和可执行代码数量的比值确定所述被测脚本程序的执行覆盖率。
根据本发明一优选实施例,所述步骤S1具体包括:
S11、从解析器对被测脚本程序的解析结果中获取可执行代码;
S12、计算各可执行代码的签名并作为对应可执行代码的key写入数据库,其中所述可执行代码的签名由可执行代码所属的文件标识和可执行代码在被测脚本程序中的位置信息计算得到。
根据本发明一优选实施例,所述步骤S2具体包括:
S21、在代码执行装置执行被测脚本程序过程中获取执行代码;
S22、依据执行代码所属的文件标识和执行代码在被测脚本程序中的位置信息计算签名,针对所述数据库中该签名对应的key标注执行代码状态。
根据本发明一优选实施例,所述在被测脚本程序中的位置信息包括行号和行内偏移。
根据本发明一优选实施例,通过在所述解析器增加插件的方式使得所述解析器在针对被测脚本程序生成语法树的过程中对每个节点注入标识信息,所述标识信息包括每个节点的文件标识和在被测脚本程序中的位置信息,所述语法树的节点为可执行代码;通过在所述代码执行装置中增加插件的方式使得所述代码执行装置在执行到解析器生成的语法树的节点时,发送被执行节点的信息;
在所述步骤S11中,从所述语法树中获取可执行代码;
在所述步骤S21中,从所述代码执行装置发送的被执行节点的信息获取执行代码。
根据本发明一优选实施例,在所述步骤S2中在所述数据库中针对执行代码对应的key进一步标注执行次数,在向测试人员反馈所述执行覆盖率时,进一步反馈各执行代码的执行次数。
一种确定代码执行覆盖率的装置,该装置包括:
解析信息标注单元,用于通过对被测脚本程序的解析确定可执行代码以及可执行代码的位置信息,利用可执行代码的位置信息生成key写入数据库;
执行信息标注单元,用于在所述被测脚本程序的执行过程中,将执行代码的执行状况信息在所述数据库中针对执行代码对应的key进行标注;
标注信息解析单元,用于利用所述数据库中的执行代码数量和可执行代码数量的比值确定所述被测脚本程序的执行覆盖率。
根据本发明一优选实施例,所述解析信息标注单元具体包括:
第一代码获取模块,用于从解析器对被测脚本程序的解析结果中获取可执行代码;
第一信息标注模块,用于计算各可执行代码的签名并作为对应可执行代码的key写入数据库,其中所述可执行代码的签名由可执行代码所属的文件标识和可执行代码在被测脚本程序中的位置信息计算得到。
根据本发明一优选实施例,所述执行信息标注单元具体包括:
第二代码获取模块,用于在代码执行装置执行被测脚本程序过程中获取执行代码;
第二信息标注模块,用于依据执行代码所属的文件标识和执行代码在被测脚本程序中的位置信息计算签名,针对所述数据库中该签名对应的key标注执行代码状态。
根据本发明一优选实施例,所述在被测脚本程序中的位置信息包括行号和行内偏移。
根据本发明一优选实施例,该装置还包括:
安装在解析器中的插件,用于在所述解析器针对被测脚本程序生成语法树的过程中对每个节点注入标识信息,所述标识信息包括每个节点的文件标识和在被测脚本程序中的位置信息,所述语法树的节点为可执行代码;
安装在代码执行装置中的插件,用于在所述代码执行装置执行到解析器生成的语法树的节点时,发送被执行节点的信息;
所述第一代码获取模块从所述语法树中获取可执行代码;
所述第二代码获取模块从所述被执行节点的信息获取执行代码。
根据本发明一优选实施例,所述执行信息标注单元在所述数据库中针对执行代码对应的key进一步标注执行次数;
所述标注信息解析单元在向测试人员反馈所述执行覆盖率时,进一步反馈各执行代码的执行次数。
由以上技术方案可以看出,本发明通过可执行代码的位置信息唯一标识可执行代码,基于此对执行代码的执行状况在数据库中进行标注,进一步利用所述数据库中的执行代码数量和可执行代码数量的比值确定被测脚本程序的执行覆盖率,从而实现了基于执行代码的代码覆盖状况确定,即便存在命令跨行、文件重名等状况仍能够准确地确定被测脚本程序的执行覆盖状况,相比较现有行覆盖率的统计方法准确性更高。
【附图说明】
图1为本发明实施例一提供的确定代码执行覆盖率的方法流程图;
图2为本发明实施例二提供的确定代码执行覆盖率的装置结构图。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
本发明主要通过三个主要过程来完成代码执行覆盖率的确定,即代码解析信息标注过程、代码执行信息标注过程和标注信息解析过程。在代码解析信息标注过程中主要通过对被测脚本程序的解析确定可执行代码以及可执行代码的位置信息,并利用可执行代码的位置信息生成key写入数据库。代码执行信息标注过程主要是在被测脚本程序的执行过程中对执行代码在数据库中进行标注。标注信息解析过程主要是利用数据库中的执行代码数量和可执行代码数量确定被测脚本程序的执行覆盖率。下面通过实施例一对该方法中的三个过程进行详细描述。
实施例一、
图1为本发明实施例一提供的确定代码执行覆盖率的方法流程图,如图1所示,该方法包括以下步骤:
步骤101:从解析器对被测脚本程序的解析结果中获取可执行代码。
解析器对被测脚本程序进行的解析实际上是将被测脚本程序通过词法分析后,得到一系列的单词或特殊字符,然后再经过语法解析将上述单词和特殊字符识别为关键字、修饰符和命令等,然后将识别出的可执行命令生成可执行的语法树。该语法树的每个节点都可以理解为一个可执行命令。后续代码执行装置会获取该语法树进行执行。该解析器可以是一个单独的装置,也可以是代码执行装置中的解析器,即代码执行装置在执行被测脚本程序过程中,解析器会将被测脚本程序解析为一系列可执行代码,再对这些可执行代码进行执行。
在本步骤中可以通过在解析器增加插件的方式,解析器在生成语法树的过程中,会对每个节点注入标识信息,记录每个节点的文件标识和在被测脚本程序中的位置信息,即本发明实施例中修改了语法树的结构体。
在本发明实施例中以文件为单位对可执行代码进行区分,即可执行代码对应唯一的文件标识,采用这种文件标识的方式可以区分不同目录文件下的可执行代码,注入语法树的文件标识可以计算签名后将文件标识的签名进行注入。对于各可执行代码而言其在被测脚本程序中具有唯一的位置信息,该位置信息表现为在被测脚本程序中的行号和起始位置中的至少一种,行号能够对属于不同代码行的可执行代码进行区分,起始位置能够对属于同一行的可执行代码进行区分,可以表现为行内偏移。当同时采用行号和起始位置时就能够唯一标识给定被测脚本程序中的可执行代码,再结合文件标识就能够唯一标识可执行代码。
步骤102:依据各可执行代码文件标识和在被测脚本程序中的位置信息计算签名,将计算得到的各签名分别作为对应可执行代码的key写入数据库。
从解析器生成的语法树的各节点能够得到被测脚本程序的可执行代码,从各节点的标识信息能够获取文件标识和各可执行代码在被测脚本程序中的位置信息。
在数据库中采用key的形式唯一标识各可执行代码,以便后续在数据库中进一步对执行代码的执行状况进行记录和区分。这里各可执行代码对应的key是由对应可执行代码的文件标识和位置信息计算签名得到的。这里计算签名的方式可以包括但不限于MD5、DSA等算法,本发明对签名的具体计算方式并不加以限制。
上述两个步骤是代码解析信息标注过程,此时的数据库中建立了各可执行代码的key并可以记录对应可执行代码的位置信息。
步骤103:在代码执行装置执行被测脚本程序过程中获取执行代码。
在本发明实施例中可以通过在代码执行装置中增加插件的方式,使得代码执行装置在执行到解析器生成的语法树的节点时,发送被执行节点的信息,这些被执行节点就是执行代码,相应地,被执行节点的信息就包括:执行代码和执行代码的位置信息,具体包括执行代码的文件标识和执行代码在被测脚本程序中的位置信息。
步骤104:依据执行代码的文件标识和在被测脚本程序中的位置信息计算签名,针对数据库中该签名对应的key标注执行代码状态。
这里执行代码在被测脚本程序中的位置信息同样可以表现为在被测脚本程序中的行号和起始位置中的至少一种,采用和步骤102中所述相同的方式计算签名,将得到的签名在数据库中进行查询,确定匹配的key,说明该key标识的可执行代码和该执行代码是同一个代码。在数据库中针对匹配得到的key标注执行代码状态,该执行代码状态就是标识该代码被执行,例如在步骤102将各key写入数据库时,默认所有状态用“0”标识未执行,在步骤104时对执行代码的签名匹配得到的key,将对应的状态修改为“1”标识已执行,当然还可以采用其他标识方式,在此不再一一举例。
另外,还可以进一步统计代码执行装置对各执行代码的执行次数,并在数据库中针对对应的key标注执行次数。
上述步骤103和步骤104是代码执行信息标注过程,此时的数据库中存在各key对应的可执行代码的执行状态信息,还可能进一步包含执行次数信息。
步骤105:对数据库中的执行代码数量和可执行代码数量进行统计。
数据库中所有签名所形成key的数量就是可执行代码数量,标注执行代码状态的key的数量就是执行代码数量。
步骤106:将执行代码数量与可执行代码数量的比值确定为被测脚本程序的执行覆盖率。
本发明实施例中被测脚本程序的执行覆盖率不同于通常所说的行覆盖率,行覆盖率以行为单位体现被测脚本程序的执行覆盖状况,粒度太大,忽略执行细节,对于命令跨行、文件重名时统计的准确率较差,而执行覆盖率则以可执行代码为单位体现被测脚本程序的执行覆盖状况,且以文件标识和可执行代码的位置信息唯一标识各可执行代码,从而准确地体现执行覆盖状况。
上述步骤105和步骤106是标注信息解析过程。
步骤107:将被测脚本程序的执行覆盖率反馈给测试人员,还可以进一步反馈各执行代码的执行次数。
如果测试人员想得到行覆盖率,则本发明实施例还可以进一步依据数据库中的信息确定行覆盖率,即首先确定被测脚本程序的总代码行数,再从数据库中确定执行代码覆盖的所有行数,利用执行代码覆盖的所有行数与总代码行数的比值得到被测脚本程序的行覆盖率。
以上是对本发明所提供的方法进行的描述,下面通过实施例二对本发明提供的装置进行详细描述。
实施例二、
图2为本发明实施例二提供的确定代码执行覆盖率的装置结构图,如图2所示,该装置包括:解析信息标注单元210、执行信息标注单元220和标注信息解析单元230。
首先,解析信息标注单元210通过对被测脚本程序的解析确定可执行代码以及可执行代码的位置信息,利用可执行代码的位置信息生成key写入数据库。
具体地,解析信息标注单元210可以包括:第一代码获取模块211和第一信息标注模块212。
第一代码获取模块211从解析器对被测脚本程序的解析结果中获取可执行代码。具体可以通过在解析器增加插件的方式。
安装在解析器中的插件在解析器针对被测脚本程序生成语法树的过程中对每个节点注入标识信息,该标识信息包括每个节点的文件标识和在被测脚本程序中的位置信息,其中语法树的节点为可执行代码。第一代码获取模块211从上述语法树中获取可执行代码。
该解析器可以是一个单独的装置,也可以是代码执行装置中的解析器,即代码执行装置在执行被测脚本程序过程中,解析器会将被测脚本程序解析为一系列可执行代码,再对这些可执行代码进行执行。
第一信息标注模块212计算各可执行代码的签名并作为对应可执行代码的key写入数据库,其中可执行代码的签名由可执行代码所属的文件标识和可执行代码在被测脚本程序中的位置信息计算得到。此时的数据库中建立了各可执行代码的key并可以记录对应可执行代码的位置信息。
在可执行代码在被测脚本程序中的位置信息可以包括可执行代码的行号和行内偏移,从而结合文件标识唯一标识可执行代码。计算签名的方式可以包括但不限于MD5、DSA等算法。
然后,执行信息标注单元220在被测脚本程序的执行过程中,将执行代码的执行状况信息在数据库中针对执行代码对应的key进行标注。
具体地,执行信息标注单元220可以包括:第二代码获取模块221和第二信息标注模块222。
其中第二代码获取模块221在代码执行装置执行被测脚本程序过程中获取执行代码。在获取执行代码时也可以通过在代码执行装置中增加插件的方式实现。即安装在代码执行装置中的插件在代码执行装置执行到解析器生成的语法树的节点时,发送被执行节点的信息。第二代码获取模块221从该发送的被执行节点的信息就可以获取到执行代码。
第二信息标注模块222依据执行代码所属的文件标识和执行代码在被测脚本程序中的位置信息计算签名,针对数据库中该签名对应的key标注执行代码状态。此时的数据库中存在各key对应的可执行代码的执行状态信息。
在执行代码在被测脚本程序中的位置信息可以包括执行代码的行号和行内偏移,从而结合文件标识唯一标识可执行代码。计算签名的方式可以包括但不限于MD5、DSA等算法。
执行代码的状态就是标识可执行代码是否被执行,例如可以在第一信息标注模块212将各key写入数据库时,默认所有状态用“0”标识未执行,在第二信息标注模块222对执行代码的签名匹配得到key,将对应的状态修改为“1”标识已执行。
标注信息解析单元230,用于利用数据库中的执行代码数量和可执行代码数量的比值确定被测脚本程序的执行覆盖率。
另外,执行信息标注单元220在数据库中可以针对执行代码对应的key进一步标注执行次数。标注信息解析单元230可以向测试人员反馈被测脚本程序的执行覆盖率,在向测试人员反馈执行覆盖率时,可以进一步反馈各执行代码的执行次数供测试人员参考。
如果测试人员想得到行覆盖率,则标注信息解析单元230还可以进一步依据数据库中的信息确定行覆盖率,即首先确定被测脚本程序的总代码行数,再从数据库中确定执行代码覆盖的所有行数,利用执行代码覆盖的所有行数与总代码行数的比值得到被测脚本程序的行覆盖率。
由以上描述可知,本发明提供的方法和装置具备以下优点:
1)相比较现有行覆盖率的统计方法,本发明确定出的执行覆盖率能够更加准确地体现被测脚本程序的执行覆盖状况。
2)也无需对被测脚本程序进行修改,消除了修改代码带来的运行和统计风险。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (12)
1.一种确定代码执行覆盖率的方法,其特征在于,该方法包括:
S1、通过对被测脚本程序的解析确定可执行代码以及可执行代码的位置信息,利用可执行代码的位置信息生成key写入数据库;
S2、在所述被测脚本程序的执行过程中,将执行代码的执行状况信息在所述数据库中针对执行代码对应的key进行标注;
S3、利用所述数据库中的执行代码数量和可执行代码数量的比值确定所述被测脚本程序的执行覆盖率。
2.根据权利要求1所述的方法,其特征在于,所述步骤S1具体包括:
S11、从解析器对被测脚本程序的解析结果中获取可执行代码;
S12、计算各可执行代码的签名并作为对应可执行代码的key写入数据库,其中所述可执行代码的签名由可执行代码所属的文件标识和可执行代码在被测脚本程序中的位置信息计算得到。
3.根据权利要求2所述的方法,其特征在于,所述步骤S2具体包括:
S21、在代码执行装置执行被测脚本程序过程中获取执行代码;
S22、依据执行代码所属的文件标识和执行代码在被测脚本程序中的位置信息计算签名,针对所述数据库中该签名对应的key标注执行代码状态。
4.根据权利要求2或3所述的方法,其特征在于,所述在被测脚本程序中的位置信息包括行号和行内偏移。
5.根据权利要求3所述的方法,其特征在于,该方法还包括:通过在所述解析器增加插件的方式使得所述解析器在针对被测脚本程序生成语法树的过程中对每个节点注入标识信息,所述标识信息包括每个节点的文件标识和在被测脚本程序中的位置信息,所述语法树的节点为可执行代码;通过在所述代码执行装置中增加插件的方式使得所述代码执行装置在执行到所述语法树的节点时,发送被执行节点的信息;
在所述步骤S11中,从所述语法树中获取可执行代码;
在所述步骤S21中,从所述代码执行装置发送的被执行节点的信息获取执行代码。
6.根据权利要求1或3所述的方法,其特征在于,在所述步骤S2中在所述数据库中针对执行代码对应的key进一步标注执行次数,在向测试人员反馈所述执行覆盖率时,进一步反馈各执行代码的执行次数。
7.一种确定代码执行覆盖率的装置,其特征在于,该装置包括:
解析信息标注单元,用于通过对被测脚本程序的解析确定可执行代码以及可执行代码的位置信息,利用可执行代码的位置信息生成key写入数据库;
执行信息标注单元,用于在所述被测脚本程序的执行过程中,将执行代码的执行状况信息在所述数据库中针对执行代码对应的key进行标注;
标注信息解析单元,用于利用所述数据库中的执行代码数量和可执行代码数量的比值确定所述被测脚本程序的执行覆盖率。
8.根据权利要求7所述的装置,其特征在于,所述解析信息标注单元具体包括:
第一代码获取模块,用于从解析器对被测脚本程序的解析结果中获取可执行代码;
第一信息标注模块,用于计算各可执行代码的签名并作为对应可执行代码的key写入数据库,其中所述可执行代码的签名由可执行代码所属的文件标识和可执行代码在被测脚本程序中的位置信息计算得到。
9.根据权利要求8所述的装置,其特征在于,所述执行信息标注单元具体包括:
第二代码获取模块,用于在代码执行装置执行被测脚本程序过程中获取执行代码;
第二信息标注模块,用于依据执行代码所属的文件标识和执行代码在被测脚本程序中的位置信息计算签名,针对所述数据库中该签名对应的key标注执行代码状态。
10.根据权利要求8或9所述的装置,其特征在于,所述在被测脚本程序中的位置信息包括行号和行内偏移。
11.根据权利要求9所述的装置,其特征在于,该装置还包括:
安装在解析器中的插件,用于在所述解析器针对被测脚本程序生成语法树的过程中对每个节点注入标识信息,所述标识信息包括每个节点的文件标识和在被测脚本程序中的位置信息,所述语法树的节点为可执行代码;
安装在代码执行装置中的插件,用于在所述代码执行装置执行到解析器生成的语法树的节点时,发送被执行节点的信息;
所述第一代码获取模块从所述语法树中获取可执行代码;
所述第二代码获取模块从所述被执行节点的信息获取执行代码。
12.根据权利要求7或9所述的装置,其特征在于,所述执行信息标注单元在所述数据库中针对执行代码对应的key进一步标注执行次数;
所述标注信息解析单元在向测试人员反馈所述执行覆盖率时,进一步反馈各执行代码的执行次数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210489469.7A CN103838666B (zh) | 2012-11-27 | 2012-11-27 | 一种确定代码执行覆盖率的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210489469.7A CN103838666B (zh) | 2012-11-27 | 2012-11-27 | 一种确定代码执行覆盖率的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103838666A true CN103838666A (zh) | 2014-06-04 |
CN103838666B CN103838666B (zh) | 2017-12-19 |
Family
ID=50802191
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210489469.7A Active CN103838666B (zh) | 2012-11-27 | 2012-11-27 | 一种确定代码执行覆盖率的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103838666B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104657264A (zh) * | 2015-02-10 | 2015-05-27 | 上海创景计算机系统有限公司 | 二进制码覆盖率的测试系统及其测试方法 |
CN106407126A (zh) * | 2016-11-30 | 2017-02-15 | 网易(杭州)网络有限公司 | 覆盖率数据的处理方法、装置和服务器 |
CN106874187A (zh) * | 2016-12-29 | 2017-06-20 | 腾讯科技(深圳)有限公司 | 代码覆盖率收集方法和装置 |
CN110765017A (zh) * | 2019-10-24 | 2020-02-07 | 上海创景信息科技有限公司 | 基于risc-v扩展指令的源码覆盖率测试方法和系统 |
CN112506800A (zh) * | 2020-12-22 | 2021-03-16 | 北京百度网讯科技有限公司 | 测试代码的方法、装置、设备、介质和程序产品 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101464829A (zh) * | 2007-12-18 | 2009-06-24 | 珠海金山软件股份有限公司 | 确定代码覆盖率的方法、测试装置 |
JP2009163636A (ja) * | 2008-01-09 | 2009-07-23 | Toyota Motor Corp | 一致性検査方法、一致性検査装置およびプログラム |
CN101706751A (zh) * | 2009-11-23 | 2010-05-12 | 中兴通讯股份有限公司 | 软件业务功能覆盖率的统计方法及系统 |
CN101894236A (zh) * | 2010-07-28 | 2010-11-24 | 北京华夏信安科技有限公司 | 基于摘要语法树和语义匹配的软件同源性检测方法及装置 |
CN102236600A (zh) * | 2010-05-06 | 2011-11-09 | 无锡中星微电子有限公司 | 获得代码覆盖率的方法及装置 |
CN102426550A (zh) * | 2011-10-26 | 2012-04-25 | 中国信息安全测评中心 | 源代码解析方法和系统 |
-
2012
- 2012-11-27 CN CN201210489469.7A patent/CN103838666B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101464829A (zh) * | 2007-12-18 | 2009-06-24 | 珠海金山软件股份有限公司 | 确定代码覆盖率的方法、测试装置 |
JP2009163636A (ja) * | 2008-01-09 | 2009-07-23 | Toyota Motor Corp | 一致性検査方法、一致性検査装置およびプログラム |
CN101706751A (zh) * | 2009-11-23 | 2010-05-12 | 中兴通讯股份有限公司 | 软件业务功能覆盖率的统计方法及系统 |
CN102236600A (zh) * | 2010-05-06 | 2011-11-09 | 无锡中星微电子有限公司 | 获得代码覆盖率的方法及装置 |
CN101894236A (zh) * | 2010-07-28 | 2010-11-24 | 北京华夏信安科技有限公司 | 基于摘要语法树和语义匹配的软件同源性检测方法及装置 |
CN102426550A (zh) * | 2011-10-26 | 2012-04-25 | 中国信息安全测评中心 | 源代码解析方法和系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104657264A (zh) * | 2015-02-10 | 2015-05-27 | 上海创景计算机系统有限公司 | 二进制码覆盖率的测试系统及其测试方法 |
CN106407126A (zh) * | 2016-11-30 | 2017-02-15 | 网易(杭州)网络有限公司 | 覆盖率数据的处理方法、装置和服务器 |
CN106407126B (zh) * | 2016-11-30 | 2019-04-30 | 网易(杭州)网络有限公司 | 覆盖率数据的处理方法、装置和服务器 |
CN106874187A (zh) * | 2016-12-29 | 2017-06-20 | 腾讯科技(深圳)有限公司 | 代码覆盖率收集方法和装置 |
CN106874187B (zh) * | 2016-12-29 | 2020-09-11 | 腾讯科技(深圳)有限公司 | 代码覆盖率收集方法和装置 |
CN110765017A (zh) * | 2019-10-24 | 2020-02-07 | 上海创景信息科技有限公司 | 基于risc-v扩展指令的源码覆盖率测试方法和系统 |
CN112506800A (zh) * | 2020-12-22 | 2021-03-16 | 北京百度网讯科技有限公司 | 测试代码的方法、装置、设备、介质和程序产品 |
CN112506800B (zh) * | 2020-12-22 | 2023-08-18 | 北京百度网讯科技有限公司 | 测试代码的方法、装置、设备、介质和程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN103838666B (zh) | 2017-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108459957A (zh) | 基金系统测试用例的测试方法、装置、设备及存储介质 | |
US20090287729A1 (en) | Source code coverage testing | |
CN103838666A (zh) | 一种确定代码执行覆盖率的方法和装置 | |
CN103678105A (zh) | 一种页面代码的测试方法和装置 | |
CN112559354A (zh) | 前端代码规范检测方法、装置、计算机设备及存储介质 | |
CN108009080B (zh) | 一种代码扫描工具的评估方法及装置 | |
US11816479B2 (en) | System and method for implementing a code audit tool | |
CN114021142A (zh) | 一种安卓应用程序漏洞检测方法 | |
CN112241370B (zh) | 一种api接口类的校验方法、系统及装置 | |
JP2014199569A (ja) | ソースプログラム解析システム、ソースプログラム解析方法およびプログラム | |
CN114201408A (zh) | 回归测试方法、装置、计算机设备及存储介质 | |
US8533683B2 (en) | Stack walking enhancements using sensorpoints | |
CN107045477A (zh) | 一种可进行多维度检测的质量评估平台 | |
CA3021091A1 (en) | Method, apparatus, and computer-readable medium for performing functional testing of software | |
CN111427771A (zh) | 一种代码覆盖率分析方法、设备、服务器及可读存储介质 | |
Kim et al. | Adding examples into java documents | |
CN102722438B (zh) | 一种内核调试的方法和设备 | |
CN103235757B (zh) | 基于自动化造数对输入域测试对象进行测试的装置和方法 | |
Brisset et al. | Erratum: Leveraging flexible tree matching to repair broken locators in web automation scripts | |
CN102087629A (zh) | 一种基于Agent嵌入式软件的不变量测试方法与工具 | |
CN113836023A (zh) | 一种基于体系结构交叉检查的编译器安全性测试方法 | |
CN105630678A (zh) | 一种智能电能表软件的可靠性检测仪及其检测方法 | |
CN104750041B (zh) | WinCE系统中的异常监控方法和系统 | |
CN117573510A (zh) | 软件测试方法、装置、终端设备以及存储介质 | |
CN112579475A (zh) | 代码测试方法、装置、设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |