版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
(19)国家知识产权局(12)发明专利(10)授权公告号CN113051181B(65)同一申请的已公布的文献号(73)专利权人腾讯科技(深圳)有限公司科技中一路腾讯大厦35层审查员吴银娥(74)专利代理机构深圳市深佳知识产权代理事务所(普通合伙)44285专利代理师王兆林确定增量测试覆盖信息的方法、装置、设备和存储介质本申请提供了一种确定增量测试覆盖信息定目标代码版本文件相对原代码版本文件的增量代码信息;获得代码编辑编译器测试目标代码版本文件所得到的至少一个测试结果文件,至少一个测试结果文件为采用设定协议格式的文件;调用并运行文件解析程序,并通过文件解析程序从至少一个测试结果文件中解析出全量测试覆盖信息,文件解析程序为用于解析设定协议格式的文件的解析程序;通过文件解析程序依据增量代码信息以及全量测试覆盖信息,确定出目标代码版本文件中增量测试覆盖信息。本申请的方案确定目标代码版本文件相对原代码版本文件的增2确定待测试的目标代码版本文件以及原代码版本文件,所述目标代码版本文件为对所述原代码版本文件进行代码更新后得到的;确定所述目标代码版本文件相对所述原代码版本文件的增量代码信息,所述增量代码信息包括:至少一条增量代码的信息;获得代码编辑编译器测试所述目标代码版本文件所得到的至少一个测试结果文件,所述至少一个测试结果文件为采用与所述代码编辑编译器自身对应的设定协议格式的文件;所述代码编辑编译器中集成有编译器,所述编译器中包括用于解析所述设定协议格式的文件以得到全量测试覆盖信息的原始解析程序;调用并运行文件解析程序,并通过所述文件解析程序解析出所述至少一个测试结果文件中包含的全量测试覆盖信息,所述全量测试覆盖信息包括所述目标代码版本文件中被测试的至少一条已测试代码的信息;所述文件解析程序为通过在所述原始解析程序中增设增量覆盖子程序得到的程序;通过所述增量覆盖子程序依据所述至少一条增量代码的信息以及所述全量测试覆盖信息中所述至少一条已测试代码的信息,确定出所述目标代码版本文件中增量代码的测试覆盖信息。2.根据权利要求1所述的方法,其特征在于,在所述获得代码编辑编译器测试所述目标代码版本文件所得到的至少一个测试结果文件之前,还包括:向所述代码编辑编译器发送测试命令,所述测试命令用于指示所述代码编辑编译器测试所述目标代码版本文件并输出所述目标代码版本文件的测试结果文件。3.根据权利要求1所述的方法,其特征在于,所述确定所述目标代码版本文件相对所述原代码版本文件的增量代码信息,包括:调用比较程序比对所述目标代码版本文件与所述原代码版本文件,得到所述比较程序输出的代码变更信息,所述代码变更信息包括所述目标代码版本文件相对所述原代码版本文件存在差异的至少一条差异代码的信息;从所述至少一条差异代码的信息中提取出属于增量代码的增量代码信息。4.根据权利要求3所述的方法,其特征在于,所述确定待测试的目标代码版本文件以及获得待测试的目标代码版本文件的第一文件标识以及原代码版本文件的第二文件标识,以确定待测试的目标代码版本文件以及原代码版本文件;所述调用比较程序比对所述目标代码版本文件与所述原代码版本文件,包括:调用并运行增量分析程序,所述增量分析程序配置有配置文件,所述配置文件中配置有代码路径信息,所述代码路径信息用于指示各代码版本文件的统一存储路径;通过所述增量分析程序调用所述比较程序,并将所述第一文件标识、第二文件标识和所述代码路径信息,均作为输入参数传输给所述比较程序,以使得所述比较程序基于所述代码路径信息,获得并比对所述第一文件标识对应的目标代码版本文件与所述第二文件标识对应的原代码版本文件,得到所述代码变更信息;所述从所述至少一条差异代码的信息中提取出属于增量代码的增量代码信息,包括:通过所述增量分析程序从所述至少一条差异代码的信息中提取出属于增量代码的增3量代码信息。5.根据权利要求4所述的方法,其特征在于,所述增量分析程序配置的配置文件中还配置有增量代码信息的输出路径;在所述通过所述增量分析程序从所述至少一条差异代码的信息中提取出属于增量代通过所述增量分析程序将所述增量代码信息转换为符合指定编辑语言对应的数据存储格式,并存储到所述输出路径对应的存储空间;在所述通过所述增量覆盖子程序依据所述至少一条增量代码的信息以及所述全量测试覆盖信息中所述至少一条已测试代码的信息,确定出所述目标代码版本文件中增量代码向所述文件解析程序传输所述增量代码信息对应的所述输出路径,通过所述文件解析程序从所述输出路径对应的存储空间获得所述增量代码信息;通过所述文件解析程序将所述增量代码信息由所述符合指定编辑语言对应的数据存储格式,转换为所述文件解析程序设定的结构体形式的数据。6.根据权利要求1所述的方法,其特征在于,所述目标代码版本文件包括至少一个代码文件,每个代码文件包括至少一条代码;所述增量代码的信息包括:增量代码所属的代码文件的文件名以及所述增量代码的行所述已测试代码的信息包括:已测试代码所属的代码文件的文件名以及所述已测试代码的行号;所述通过所述增量覆盖子程序依据所述至少一条增量代码的信息以及所述全量测试覆盖信息中所述至少一条已测试代码的信息,确定出所述目标代码版本文件中增量代码的基于所述增量代码信息中各条增量代码所属代码文件的文件名和各条增量代码的行号,以及全量测试覆盖信息中各条已测试代码所属的代码文件的文件名和各条已测试代码的行号,通过所述增量覆盖子程序分别确定各代码文件中增量代码的总数和被测试覆盖的增量代码的数量;基于各代码文件中增量代码的总数以及被测试的增量代码的数量,通过所述文件解析程序确定增量代码的测试覆盖率。文件确定装置,用于确定待测试的目标代码版本文件以及原代码版本文件,所述目标代码版本文件为对所述原代码版本文件进行代码更新后得到的;增量代码确定单元,用于确定所述目标代码版本文件相对所述原代码版本文件的增量代码信息,所述增量代码信息包括:至少一条增量代码的信息;测试结果获得单元,用于获得代码编辑编译器测试所述目标代码版本文件所得到的至少一个测试结果文件,所述至少一个测试结果文件为采用与所述代码编辑编译器自身对应的设定协议格式的文件;所述代码编辑编译器中集成有编译器,所述编译器中包括用于解析所述设定协议格式的文件以得到全量测试覆盖信息的原始解析程序;全量覆盖确定单元,用于调用并运行文件解析程序,并通过所述文件解析程序解析出4所述至少一个测试结果文件中包含的全量测试覆盖信息,所述全量测试覆盖信息包括所述目标代码版本文件中被测试的至少一条已测试代码的信息;所述文件解析程序为通过在所述原始解析程序中增设增量覆盖子程序得到的程序;增量覆盖确定单元,用于通过所述增量覆盖子程序依据所述至少一条增量代码的信息以及所述全量测试覆盖信息中所述至少一条已测试代码的信息,确定出所述目标代码版本文件中增量代码的测试覆盖信息。测试指示单元,用于在所述获得代码编辑编译器测试所述目标代码版本文件所得到的至少一个测试结果文件之前,向所述代码编辑编译器发送测试命令,所述测试命令用于指示所述代码编辑编译器测试所述目标代码版本文件并输出所述目标代码版本文件的测试结果文件。文件比较单元,用于调用比较程序比对所述目标代码版本文件与所述原代码版本文件,得到所述比较程序输出的代码变更信息,所述代码变更信息包括所述目标代码版本文件相对所述原代码版本文件存在差异的至少一条差异代码的信息;增量提取单元,用于从所述至少一条差异代码的信息中提取出属于增量代码的增量代码信息。10.根据权利要求9所述的装置,其特征在于,所述文件确定装置,具体用于获得待测试的目标代码版本文件的第一文件标识以及原代码版本文件的第二文件标识,以确定待测试的目标代码版本文件以及原代码版本文件;分析程序调用单元,用于调用并运行增量分析程序,所述增量分析程序配置有配置文件,所述配置文件中配置有代码路径信息,所述代码路径信息用于指示各代码版本文件的统一存储路径;比较程序执行单元,用于通过所述增量分析程序调用所述比较程序,并将所述第一文件标识、第二文件标识和所述代码路径信息,均作为输入参数传输给所述比较程序,以使得所述比较程序基于所述代码路径信息,获得并比对所述第一文件标识对应的目标代码版本文件与所述第二文件标识对应的原代码版本文件,得到所述代码变更信息;所述增量提取单元,具体用于通过所述增量分析程序从所述至少一条差异代码的信息中提取出属于增量代码的增量代码信息。11.根据权利要求10所述的装置,其特征在于,所述增量分析程序配置的配置文件中还配置有增量代码信息的输出路径;所述装置还包括:信息存储单元,用于所述增量提取单元提取出增量代码信息之后,通过所述增量分析程序将所述增量代码信息转换为符合指定编辑语言对应的数据存储格式,并存储到所述输出路径对应的存储空间;信息获取单元,用于在所述增量覆盖确定单元确定增量代码的测试覆盖信息之前,向所述文件解析程序传输所述增量代码信息对应的所述输出路径,通过所述文件解析程序从所述输出路径对应的存储空间获得所述增量代码信息;格式转换单元,用于通过所述文件解析程序将所述增量代码信息由所述符合指定编辑5语言对应的数据存储格式,转换为所述文件解析程序设定的结构体形式的数据。12.根据权利要求7所述的装置,其特征在于,所述目标代码版本文件包括至少一个代码文件,每个代码文件包括至少一条代码;所述增量代码的信息包括:增量代码所属的代码文件的文件名以及所述增量代码的行所述已测试代码的信息包括:已测试代码所属的代码文件的文件名以及所述已测试代码的行号;数量确定单元,用于基于所述增量代码信息中各条增量代码所属代码文件的文件名和各条增量代码的行号,以及全量测试覆盖信息中各条已测试代码所属的代码文件的文件名和各条已测试代码的行号,通过所述增量覆盖子程序分别确定各代码文件中增量代码的总数和被测试覆盖的增量代码的数量;覆盖率确定单元,用于基于各代码文件中增量代码的总数以及被测试的增量代码的数量,通过所述文件解析程序确定增量代码的测试覆盖率。所述处理器用于执行所述程序,所述程序被执行时,具体用于实现如权利要求1至6任意一项所述的确定增量测试覆盖信息的方法。14.一种存储介质,其特征在于,用于存储程序,所述程序被执行时,用于实现如权利要求1至6任意一项所述的确定增量测试覆盖信息的方法。15.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中;计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,所述处理器执行所述计算机指令,使得所述计算机设备执行如权利要求1至6任意一项所述的确定增量测试覆盖信息的方法。6技术领域[0001]本申请涉及测试技术领域,尤其涉及一种确定增量测试覆盖信息的方法、装置、设备和存储介质。背景技术[0002]为了保证开发出的软件的软件质量,需要对软件进行单元测试。而为了对测试情况进行评估,就需要软件测试的代码测试覆盖信息。[0003]代码测试覆盖信息是评估代码测试好坏的一项重要依据。如,代码测试覆盖信息可以为代码测试覆盖率,表示软件的源代码被测试的比例或者程度由于软件版本会不断更新,而对于更新后的软件版本的测试,人们可能会更为关注新增代码的测试覆盖信息。因此,如何能够获得软件版本中新增代码的测试覆盖信息是本领域技术人员需要解决的技术发明内容[0004]有鉴于此,本申请提供了一种确定增量测试覆盖信息的方法、装置、设备和存储介质,以实现获得软件版本文件中增量代码的测试覆盖信息。[0005]为实现上述目的,本申请提供了如下技术方案:[0007]确定待测试的目标代码版本文件以及原代码版本文件,所述目标代码版本文件为对所述原代码版本文件进行代码更新后得到的;[0008]确定所述目标代码版本文件相对所述原代码版本文件的增量代码信息,所述增量代码信息包括:至少一条增量代码的信息;[0009]获得代码编辑编译器测试所述目标代码版本文件所得到的至少一个测试结果文件,所述至少一个测试结果文件为采用设定协议格式的文件;[0010]调用并运行文件解析程序,并通过所述文件解析程序解析出所述至少一个测试结果文件中包含的全量测试覆盖信息,所述全量测试覆盖信息包括所述目标代码版本文件中被测试的至少一条已测试代码的信息,所述文件解析程序为用于解析所述设定协议格式的文件的解析程序;[0011]通过所述文件解析程序依据所述至少一条增量代码的信息以及所述全量测试覆盖信息中所述至少一条已测试代码的信息,确定出所述目标代码版本文件中增量代码的测试覆盖信息。[0012]在一种可能的实现方式中,所述代码编辑编译器中集成有编译器,所述编译器中包括用于解析所述设定协议格式的文件的原始解析程序;[0013]所述文件解析程序为通过在所述原始解析程序中增设增量覆盖子程序得到的程[0014]所述通过所述文件解析程序依据所述至少一条增量代码的信息以及所述全量测7试覆盖信息中所述至少一条已测试代码的信息,确定出所述目标代码版本文件中增量代码[0015]通过所述增量覆盖子程序依据所述至少一条增量代码的信息以及所述全量测试覆盖信息中所述至少一条已测试代码的信息,确定出所述目标代码版本文件中增量代码的测试覆盖信息。[0016]在又一种可能的实现方式中,所述确定所述目标代码版本文件相对所述原代码版[0017]调用比较程序比对所述目标代码版本文件与所述原代码版本文件,得到所述比较程序输出的代码变更信息,所述代码变更信息包括所述目标代码版本文件相对所述原代码版本文件存在差异的至少一条差异代码的信息;[0018]从所述至少一条差异代码的信息中提取出属于增量代码的增量代码信息。[0019]在又一种可能的实现方式中,所述确定待测试的目标代码版本文件以及原代码版[0020]获得待测试的目标代码版本文件的第一文件标识以及原代码版本文件的第二文件标识,以确定待测试的目标代码版本文件以及原代码版本文件;[0021]所述调用比较程序比对所述目标代码版本文件与所述原代码版本文件,包括:[0022]调用并运行增量分析程序,所述增量分析程序配置有配置文件,所述配置文件中配置有代码路径信息,所述代码路径信息用于指示各代码版本文件的统一存储路径;[0023]通过所述增量分析程序调用所述比较程序,并将所述第一文件标识、第二文件标识和所述代码路径信息,均作为输入参数传输给所述比较程序,以使得所述比较程序基于所述代码路径信息,获得并比对所述第一文件标识对应的目标代码版本文件与所述第二文件标识对应的原代码版本文件,得到所述代码变更信息;[0024]所述从所述至少一条差异代码的信息中提取出属于增量代码的增量代码信息,包[0025]通过所述增量分析程序从所述至少一条差异代码的信息中提取出属于增量代码的增量代码信息。[0026]又一方面,本申请还提供了一种确定增量测试覆盖信息的装置,包括:[0027]文件确定装置,用于确定待测试的目标代码版本文件以及原代码版本文件,所述目标代码版本文件为对所述原代码版本文件进行代码更新后得到的;[0028]增量代码确定单元,用于确定所述目标代码版本文件相对所述原代码版本文件的增量代码信息,所述增量代码信息包括:至少一条增量代码的信息;[0029]测试结果获得单元,用于获得代码编辑编译器测试所述目标代码版本文件所得到的至少一个测试结果文件,所述至少一个测试结果文件为采用设定协议格式的文件;[0030]全量覆盖确定单元,用于调用并运行文件解析程序,并通过所述文件解析程序解析出所述至少一个测试结果文件中包含的全量测试覆盖信息,所述全量测试覆盖信息包括所述目标代码版本文件中被测试的至少一条已测试代码的信息,所述文件解析程序为用于解析所述设定协议格式的文件的解析程序;[0031]增量覆盖确定单元,用于通过所述文件解析程序依据所述至少一条增量代码的信息以及所述全量测试覆盖信息中所述至少一条已测试代码的信息,确定出所述目标代码版8本文件中增量代码的测试覆盖信息。[0032]又一方面,本申请还提供了一种计算机设备,包括存储器和处理器;[0033]其中,所述存储器用于存储程序;[0034]所述处理器用于执行所述程序,所述程序被执行时,具体用于实现如上任一项所述的确定增量测试覆盖信息的方法。[0035]又一方面,本申请还提供了一种存储介质,用于存储程序,所述程序被执行时,用于实现如上任一项所述的确定增量测试覆盖信息的方法。[0036]由以上内容可知,基于代码编辑编译器能够测试目标代码版本文件并能够输出包含全量测试覆盖信息的至少一个测试结果文件这一特性,本申请可以获得代码编辑编译器测试目标代码版本文件得到的至少一个测试结果文件。由于至少一个测试结果文件的文件格式为代码编辑编译器中设定协议格式,因此,通过调用并运行预置的支持解析该种设定协议格式文件的文件解析程序,便可以从该至少一个测试结果文件中解析出该目标代码版本文件的全量测试覆盖信息。在此基础上,确定出目标代码版本文件相对原代码版本文件的至少一条增量代码的信息,便可以结合至少一条增量代码的信息以及全量测试覆盖信息中被测试的各条代码的信息,确定出增量代码的测试覆盖信息,从而实现了利用代码编辑编译器测试得到的全量测试覆盖信息,较为便捷的确定出增量代码的测试覆盖信息。附图说明[0037]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。[0038]图1示出了本申请所适用的一种系统架构示意图;[0040]图3示出了本申请实施例提供的确定增量测试覆盖信息的方法的又一种流程示意[0041]图4示出了本申请实施例提供的增量分析程序确定增量代码信息的一种原理示意[0042]图5示出了本申请提供的确定增量测试覆盖信息的方法的一种实现原理框架示意[0043]图6示出了本申请实施例提供的确定增量测试覆盖信息的方法应用于一具体应用场景的流程示意图;[0044]图7示出了本申请实施例提供的文件解析程序在一具体应用场景中的功能模块组成示意图;[0045]图8示出了本申请实施例提供的确定增量测试覆盖信息的装置的一种组成结构示意图;[0046]图9示出了本申请实施例提供的计算机设备的一种组成结构示意图。9具体实施方式[0047]本申请的方案适用于任意需要确定软件版本中增量代码被测试覆盖的测试覆盖信息的计算机设备或者多台计算机设备组成平台。[0048]为了便于理解,下面先对本申请的方案所适用的系统组成架构进行说明。[0049]在本申请中,确定增量测试覆盖信息的系统可以包括至少一台计算机设备,该至少一台计算机设备中运行有代码编辑编译器以及本申请中用于确定增量测试覆盖信息的[0050]其中,该代码编辑编译器可以对软件版本文件进行单元测试,并得到单元测试相关的测试结果,如测试结果中至少包括软件版本文件中代码的全量测试覆盖信息,全量测试覆盖信息包括软件版本文件中被测试执行的各条代码的信息,如,文件代码在该软件版本文件中所属的具体文件的文件名以及行号等。[0051]在本申请中,代码编辑编译器和增量确定程序可以运行于同一计算机设备或者平台,也可以是运行于不同计算机设备或者平台。[0052]下面以一种情况为例说明,如图1所示,其示出了本申请的方案所适用的系统的一种组成结构示意图。[0053]在图1所示的系统中包括至少一台计算机设备101组成的测试平台102。[0054]该测试平台运行有代码编辑编译器和主控程序。[0055]如,代码编辑编译器可以运行在测试平台的部分或者全部计算机设备中;[0056]而主控程序可以运行在测试平台的某一台或者至少部分计算机设备中。[0057]在一种可选方式中,本申请的测试平台还可以包括至少一台存储设备(图1中未示出),存储设备可以存储代码编辑编译器以及主控程序运行所产生的数据,如,存储设备可以存储代码编辑编译器对软件版本文件进行单元测试所得到的测试结果信息等,还可以存储主控程序确定增量覆盖信息过程中所产生的中间数据等。[0058]该存储设备还可以用于存储测试平台所涉及到的各个软件版本的软件版本文件,软件版本文件包括至少一个代码文件,每个代码文件包括至少一条(或者说至少一行)代码。[0059]本申请中存储设备存储各种数据的具体方式可以有多种可能。[0060]如,在一种可能的实现方式中,该至少一台存储设备可以采用区块链形式来存储[0061]其中,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。[0062]区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监管等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监管模块主要负责产品发布过程中的部署、配置的修改、合节点设备健康状态等。[0063]可以理解的是,图1中代码编辑编译器和主控程序运行于同一测试平台为例说明,如果代码编辑编译器和主控程序运行不同平台,但是这两个平台之间可以通信也同样适用于本实施例。[0064]下面结合流程图对本申请中确定增量测试覆盖信息的方法进行介绍。[0065]如图2所示,其示出了本申请一种确定增量测试覆盖信息的方法的一种流程示意图,本实施例的方法可以应用于一台计算机设备或者多台计算机设备组成的测试平台。[0066]本实施例的方法可以包括:[0067]S201,确定待测试的目标代码版本文件以及原代码版本文件。[0068]其中,目标代码版本文件为对原代码版本文件进行代码更新后得到的代码版本文件。其中,此处仅仅是为了便于区分,将需要进行单元测试的软件版本文件称为目标代码版本文件,而将目标代码版本文件之前的代码版本称为原代码版本文件。[0069]其中,目标代码版本文件可以包括多行代码。在实际应用中,目标代码版本文件可以包括至少一个代码文件(也可以称为子代码文件),而每个代码文件中又分别包括一条或者多条(或者称为行)代码。类似的,原版本文件可以包括至少一个代码文件,且每个代码文件可以包括至少一条(或者称为行)代码。[0070]在一种可能的情况中,测试平台可以获得用户输入的增量测试指令,该增量测试指令可以指示有待测试的目标代码版本文件以及该目标代码版本对应的原代码版本文件。[0071]当然,在实际应用中,还可以是预先配置增量测试任务,该增量测试任务中配置有待测试的目标代码版本文件的信息以及原代码版本文件的信息。[0072]S202,确定目标代码版本文件相对原代码版本文件的增量代码信息。[0073]可以理解的是,由于目标代码版本文件为原代码版本文件经过版本更新后得到的代码文件,因此,目标代码版本文件会相对原代码版本文件存在代码更改以及新增,在本申请仅仅关注目标代码版本文件相对原代码版本文件新增的增量代码。[0075]如,增量代码的信息可以包括用于标识增量代码的标识信息。由于每条代码可以通过其所在的代码文件和行号进行标识,因此,增量代码的标识信息可以包括增量代码所属的代码文件的文件名和增量代码的行号。[0076]在本申请中,确定两个代码版本文件之间的增量代码的相关信息的方式可以有多[0077]S203,获得代码编辑编译器测试目标代码版本文件所得到的至少一个测试结果文11[0078]在本申请中,代码编辑编译器至少能够对代码版本文件进行测试并输出测试得到的至少一个测试结果文件。在本申请中,代码编辑编译器测试目标代码版本文件是指对目标代码版本文件进行单元测试。[0079]在代码编辑编译器对目标代码版本文件进行单元测试的过程中,涉及到对目标代码版本文件的编译以及执行相关的测试用例等,对此不加限制。[0080]在本申请中,代码编辑编译器输出的至少一个测试结果文件中包含有全量测试覆盖信息。但是,由于代码编辑编译器一般都支持自身对应的设定协议格式的文件,使得该至少一个测试结果文件为采用设定协议格式的文件。[0081]在一种可选方式中,在该步骤S203之前,还可以向代码编辑编译器发送测试命令,该测试命令用于指示该代码编辑编译器测试该目标代码版本文件,如,该测试命令可以指示有待测试的该目标代码版本文件的标识。相应的,代码编辑编译器响应该测试命令可以从基于目标代码版本文件的标识从代码目录中查询该目标代码版本文件的存储路径,依据该存储路径获得目标代码版本文件,并对目标代码版本文件进行单元测试,以得到测试结[0082]可以理解的是,在一种实现方式中,为了使得代码编辑编译器输出测试得到的测试结果文件,可以在代码编辑编译器提供的配置界面中预先配置用于指示输出测试结果文件的选项。[0083]如,仍以代码编辑编译器为Xcode为例说明,Xcode具有统一的用户界面设计,编码、测试、调试都在一个简单的窗口内完成。如果在Xcode的界面中对用于指示输出测试结果文件的选项“gathercoveragefor”进行了勾选,则在利用Xcode代码编辑编译器对代码文件进行单元测试之后,则会代码编辑编译器会输出测试得到的测试结果文件。[0084]在又一种实现方式中,还可以是通过测试命令来指示代码编辑编译器输出测试结果文件。相应的,向代码编辑编译器发送测试命令还可以用于指示该代码编辑编译器输出该目标代码版本文件的测试结果文件。[0085]S204,调用并运行文件解析程序,并通过文件解析程序解析出该至少一个测试结果文件中包含的全量测试覆盖信息。[0086]其中,该全量测试覆盖信息包括目标代码版本文件中被测试的至少一条已测试代码的信息。为了便于区分,将目标代码版本文件中被测试到的代码称为已测试代码。基于全量测试覆盖信息可以确定目标代码版本文件中哪些代码被测试到,而哪些代码没有被测试[0087]如,全量测试覆盖信息可以包括目标代码版本文件中被测试到的至少一条已测试代码的标识信息,如已测试代码所在的代码文件的文件名和已测试代码的行号等。[0088]其中,文件解析程序为用于解析设定协议格式的文件的解析程序。[0089]如,该文件解析程序为本申请的主控程序中预置的,且支持设定协议格式文件解析的程序。可以理解的是,由于至少一个测试结果文件为采用代码编辑编译器中设定协议格式的文件,因此,无法直接从测试结果文件中获得全量测试覆盖信息。为了能够获得全量测试覆盖信息,本申请中预置有文件解析程序,而该文件解析程序支持该种设定协议格式的文件的解析,基于此,通过调用并运行该文件解析程序可以从至少一个测试结果文件中解析出全量测试覆盖信息。使得文件解析程序具备解析代码编辑编译器得到的测试结果文件。[0091]S205,通过文件解析程序依据至少一条增量代码的信息以及所述全量测试覆盖信覆盖信息,还可以结合目标代码版本文件中已知的至少一条增标代码版本文件中增量代码的测试覆盖信息。[0097]对比全量测试覆盖信息和增量代码信息可知,文件1中行号18到行号20的增量代而增量代码的总数为6个,因此,增量测试覆盖率为2/6=33.33%。析程序。以在该原始解析程序中增设增量覆盖子程序,从而使得文件解析程序包括增量覆盖子程的测试覆盖信息。其中,确定增量代码的测试覆盖信息可以参见前面相关介绍,在此不再赘述。[0101]举例说明,如代码编辑编译器可以为Xcode,该Xcode中集成有11vm编译器,1lvm是应用很广泛的一种开源编译器。Xcode在对代码文件进行单元测试之后,可以得到测试结果文件。而11vm编译器中具有原始解析程序11vm-cov,而11vm-cov能够解析测试结果文件,得到代码文件中被测试的全量覆盖信息。基于此,本申请可以在11vm-cov基础上进一步开发,在11vm-cov原有功能的基础上增加分析增量测试覆盖信息的分析代码,并将改进后的llvm-cov确定为文件解析程序。[0102]在此基础上,基于改进后的11vm-cov可以对Xcode对目标代码版本文件单元测试后的测试结果文件进行解析,得到全量测试覆盖信息,并进一步结合全量测试覆盖信息和输入的增量代码信息,确定出增量测试覆盖信息。[0103]由以上内容可知,本申请基于代码编辑编译器能够测试目标代码版本文件并能够输出包含全量测试覆盖信息的至少一个测试结果文件这一特性,在获得代码编辑编译器测试目标代码版本文件得到的至少一个测试结果文件之后,通过调用并运行预置文件解析程序可以解析设定协议格式的至少一个测试结果文件,并从该至少一个测试结果文件中获得该目标代码版本文件的全量测试覆盖信息。[0104]在此基础上,确定出目标代码版本文件相对原代码版本文件的至少一条增量代码的信息,便可以结合该至少一条增量代码的信息以及全量测试覆盖信息中被测试的各条代码的信息,确定出增量代码的测试覆盖信息,从而实现了利用代码编辑编译器测试得到的全量测试覆盖信息,较为便捷的确定出增量代码的测试覆盖信息。[0105]同时,本申请在利用代码编辑编译器能够对代码文件进行测试之后,通过预置的文件解析程序直接对代码编辑编译器测试得到的测试结果文件进行解析,便可以获得全量测试覆盖信息,无需再依赖代码编辑编译器对应的第三方库来生成特定文件,并在特定文件基础上进行非改动代码的剔除操作等,从而大大降低了确定增量代码测试覆盖信息的复杂度。[0106]可以理解的是,确定目标代码版本文件与原版本代码文件之间的增量代码信息的实现方式可以有多种,为了便于理解,下面以一种可能的实现方式进行说明。[0107]在一种可能的实现方式中,可以调用比较程序比对目标代码版本文件与原代码版本文件,得到该比较程序输出的代码变更信息。[0108]如,该比较程序可以为代码管理工具中的比较程序,代码管理工具为用于管理不同版本的代码版本文件的程序,该代码管理工具可以运行于测试平台。例如,通过调用代码管理工具中的比较命令(diff命令)可以执行对目标代码版本文件与原代码版本文件的比较。[0109]其中,代码变更信息包括目标代码版本文件相对原代码版本文件存在差异的至少一条差异代码的信息。如,差异代码的标识信息,例如差异代码所在代码文件的文件名以及差异代码的行号。[0110]可以理解的是,差异代码可以是相对原代码版本文件存在新增或者修改等的代该至少一条差异代码的信息中提取出属于增量代码的增量代码信息。[0111]在一种可选方式中,本申请主控程序中还可以包括增量分析程序,通过该增量分析程序可以调用该比较程序。[0112]下面以通过增量分析程序来确定增量代码信息的情况为例,对本申请确定增量测试覆盖信息的方法进行介绍。[0113]如图3所示,其示出了本申请确定增量测试覆盖信息的方法的又一种流程示意图,本实施例的方法可以应用于测试平台,如,在测试平台中运行有主控程序,通过该主控程序可以实现确定增量测试覆盖信息的方法。[0114]本实施例的方法可以包括:[0115]S301,获得待测试的目标代码版本文件的第一文件标识以及目标代码版本文件对应的原代码版本文件的第二文件标识。[0116]如,获得用户输入的增量测试指令,该增量测试指令可以指示有该目标代码版本文件的第一文件标识,以及目标代码版本文件的原代码文本文件的第二文件标识。[0117]其中,目标代码版本文件的第一文件标识可以为文件名或者文件存储路径等能够唯一标识该目标代码版本文件的信息,类似的,第二文件标识可以为文件名或者文件存储路径等等。[0118]相应的,依据该第一文件标识和第二文件标识可以分别确定待测试的目标代码版本文件和该原代码版本文件。[0119]S302,调用并运行增量分析程序。[0120]其中,该增量分析程序配置有配置文件,该配置文件中配置有代码路径信息,代码路径信息包括各代码版本文件的统一路径信息,通过该统一路径信息可以定位到存储所有代码版本文件的代码存储库。[0121]S303,通过增量分析程序调用代码管理工具的比较程序,并将第一文件标识、第二文件标识和代码路径信息,均作为输入参数传输给该比较程序,以获得比较程序得到的代码变更信息。[0122]该代码变更信息包括目标代码版本文件相对原代码版本文件存在差异的至少一条差异代码的信息。[0123]其中,该代码管理工具为代码管理工具为用于管理不同版本的代码版本文件的程序。在该代码管理工具中包括用于比较不同代码版本之间差异的比较程序。需要说明的是,本实施例是以比较程序为代码管理工具中的比较程序为例说明。[0124]在一种可能的实现方式中,增量分析程序配置的配置文件中还可以配置可供调用的代码管理工具的信息,通过该配置文件中配置的代码管理工具的信息可以确定该增量分析程序所需调用的是哪种代码管理工具以及调用地址等等。相应的,基于配置文件中代码管理工具的信息,可以调用配置文件中指示的代码管理工具对应的比较命令(diff命令)实现比较程序的调用。代码管理工具,而Git是一种分布式的代码管理工具。相应的,增量分析程序的配置文件中可以配置使用SVN或者GIt代码管理工具的信息。[0126]可以理解的是,代码管理工具中的比较程序基于代码路径信息,获得并比对第一文件标识对应的目标代码版本文件与所述第二文件标识对应的源版本文件,得到代码变更信息。如,基于代码路径信息所指示的存储路径,获取该第一文件标识和第二文件标识所指示的代码版本文件,然后对这两个代码版本文件进行比较操作。[0127]S304,通过增量分析程序从该至少一条差异代码的信息中提取出属于增量代码的增量代码信息,并将增量代码信息存储到配置的输出路径对应的存储空间。[0128]如,增量分析程序可以根据差异代码的信息,确定出标识属于新增代码的各条代[0129]可以理解的是,将确定出的增量代码信息存储到配置的输出路径对应的存储空间为一种可选方式,其目的是为了便于后续文件解析程序可以直接从该输出路径对应的存储空间获取该增量代码信息。[0130]在本申请中,该输出路径同样可以配置到该增量分析程序的配置文件中。[0131]为了便于理解可以参见图4。图4示出了增量分析程序确定增量代码信息的一种原理示意图。[0132]由图4可以看出,增量分析程序配置有配置文件,该配置文件中记录有代码路径信[0133]其中,代码路径信息可以包括涉及被测试的软件版本所属工程的路径,基于该代码路径信息可以查询到被测试的目标代码软件版本和原代码版本文件。[0134]代码管理工具的信息中可以配置该增量分析程序支持的代码管理工具的信息,如,代码管理工具可以配置为GIt或者SVN,在图4中以配置的代码管理工具为Git为例,所以SVN对应分支为虚线。可以理解的是,通过配置文件可以灵活配置所需使用的代码管理工具,从而可以灵活切换所需使用的代码管理工具。[0135]输出路径就是指需要增量代码信息所需输出到的地址路径。[0136]在图4中主函数表示增量分析程序,主函数可以在测试平台中主控程序向其发送了目标代码版本文件和原代码版本文件的标识之后,调用Git工具中的diff命令,并将目标代码版本文件的标识和原代码版本文件的标识以及代码路径信息作为diff命令的输入参数。相应的,可以通过执行diff命令获得目标代码版本文件相对原代码版本文件的差异代码对应的代码文件的文件名和行号。相应的,在从差异代码的信息中提取出增量代码对应的文件名和行号之后,可以将各个增量代码的信息拼装为一个文件,从而按照配置文件中的该输出路径输出该文件。[0137]在一种可选方式中,为了便于阅读和提高通用性,本申请还可以通过增量分析程序将增量代码信息转换为符合指定编辑语言对应的数据存储格式,并存储到该输出路径对应的存储空间。指定编辑语言也可以称为指定编程语言,如,该指定编辑语言对应的数据存储格式可以为JSON(JavaScriptObjectNotation,JS对象简谱)格式,JSON是一种轻量级的数据交换格式。[0138]S305,向代码编辑编译器发送测试命令。[0139]其中,测试命令用于指示有待测试的该目标代码版本文件的第一文件标识。[0140]该代码编辑编译器响应于该测试命令,可以基于第一文件标识获得目标代码版本文件,然后测试该目标代码版本文件并输出目标代码版本文件的至少一个测试结果文件。[0141]可以理解的是,以上步骤S302到S304与步骤S305的顺序并不限于图3所示,在实际应用中,可以在执行步骤S302到S304的同时,执行步骤S305,也可以是先执行步骤S305再执行步骤S302到S304。[0142]S306,获得代码编辑编译器测试目标代码版本文件所得到的至少一个测试结果文件的文件存储地址。[0143]在本实施例是以测试平台获得该至少一个测试结果文件的文件存储地址为例说[0144]S307,调用并运行文件解析程序,并向该文件解析程序发送增量覆盖分析命令。[0145]该增量覆盖分析命令可以携带有该至少一个测试结果文件的文件存储地址和该增量代码信息的输出路径。[0146]可以理解的是,本实施例以向文件解析程序发送携带以上输出路径和文件存储地址的增量覆盖命令为例说明,但是可以理解的是,通过其他方式向文件解析程序传输该增量代码信息的输出路径以及该至少一个测试结果文件的文件存储地址也同样适用于本实施例。[0147]如图5所示,其示出了本申请实施例确定增量代码的测试覆盖信息的一种实现原理框图。[0148]由图5可以看出,增量分析程序确定出的增量代码信息以及代码编辑编译器测试目标代码版本文件得到的至少一个测试结果文件会被输入给文件解析程序。[0149]文件解析程序基于增量代码信息和该至少一个测试结果文件会确定出目标代码版本文件的增量测试覆盖信息。[0150]S308,通过文件解析程序依据至少一个测试结果文件的文件存储地址获得该至少一个测试结果文件,从该至少一个测试结果文件中解析出全量测试覆盖信息。[0151]S309,通过文件解析程序从增量代码信息的输出路径对应的存储空间获得增量代码信息,并基于增量代码信息和全量测试覆盖信息,确定目标代码版本文件中增量代码的测试覆盖信息。[0152]以上步骤S308和S309可以参见前面实施例的相关介绍,在此不再赘述。[0153]在一种可选方式中,为了便于文件解析程序更为便捷的处理增量代码信息,该文件解析程序还可以自定义有数据的结构体形式。在此基础上,在文件解析程序获得增量代码信息之后,还可以通过文件解析程序将增量代码信息转换为该文件解析程序设定的结构体形式的数据。[0154]如,在增量代码信息为符合指定编辑语言对应的数据存储格式的情况下,将增量代码信息由符合指定编辑语言对应的数据存储格式转换为设定的结构体形式的数据。[0155]例如,文件解析程序中转换出的增量代码信息可以包括如下表1中两类结构体形式的数据。[0156]表1类型用途变更文件名差异代码行数组号。“string”表示数据类型为字符串类型;“vector<int>”表示定义一个容器,容器内的值为整数类型(即int类型)。[0159]类似的,增量代码的测试覆盖信息同样可以是采用设定的结构体形式表示的数据。例如增量代码的测试覆盖信息所涉及到的数据可以采用如下表2中提到的几类结构体形式的数据。[0160]表2字段类型用途变更文件名变更文件行数变更行执行行数变更代码覆盖率[0162]其中,fileName为被测试覆盖到的增量代码对应的文件名类型string;“diffLineCount”表示增量代码的总行数,其数据类型为整数型(int);“excecuteDiffLineCount”表示被测试覆盖到的增量代码的行数,其数据类型为整数型;“diffCodeCoverage”表示增量代码的测试覆盖率,其数据类型为字符串类型。[0163]可以理解的是,在本申请以上任意一个实施例中,文件解析程序确定出增量代码的测试覆盖信息之后,还可以输出增量代码的测试覆盖信息,以供用户查看。[0164]为了便于理解本申请的方案,下面代码编辑编译器为Xcode工具为例说明,相应的,本申请可以基于Xcode对目标代码版本文件的测试结果文件来确定目标代码版本文件相对原代码版本文件的增量代码的测试覆盖信息。[0165]如图6所示,其示出了本申请确定增量测试覆盖信息的方法在一种应用场景的一种流程交互示意图,本实施例应用于测试平台,测试平台中运行有用于确定增量测试覆盖信息的主控程序,以及至少用于对代码版本文件进行单元测试的Xcode工具。[0166]本实施例的方法可以包括:[0167]S601,主控程序获得待测试的目标代码版本文件的第一标识以及原代码版本文件的第二标识。[0168]如,主控程序可以提供交互界面,来获得用户输入的第一标识和第二标识;或者是,用户通过命令形式向主控程序输入该第一标识和第二标识。[0169]S602,主控程序调用并运行该主控程序内设置的增量分析程序,并向增量分析程序发送该目标代码版本文件的第一标识和原代码版本文件的第二标识。[0170]该增量分析程序(DiffCodeCoverage)可以为向主控程序中设置的,用于对代码版本文件做增量合并且生成指定格式(如JSON格式)文件的工具(也可以称为程序)。如,考虑到可维护性和可扩展性,该增量分析程序可以为采用JS(JavaScript)编写的程序。[0171]同时,可以为该增量分析程序配置有配置文件,如,可以设置该增量分析程序使用Git或者SVN获得差异代码的信息等,还可以设置输出路径等等,具体可以如图4及前面相关[0172]S603,增量分析程序基于配置文件中配置的代码管理工具的信息,调用代码管理工具中的diff命令,并向diff命令指向的diff程序传输第一标识、第二标识以及配置文件中的代码路径信息,以通过执行diff程序确定目标代码版本文件相对原代码版本文件存在的差异代码信息。[0173]Diff程序基于第一标识、第二标识以及配置文件中的代码路径信息可以获得目标代码版本文件和原代码版本文件,并比对这两个文件,确定出差异代码信息。[0174]该差异代码信息可以包括目标代码版本文件与原代码版本文件存在差异的至少一条差异代码对应的文件名和行号。[0175]S604,增量分析程序从差异代码信息中提取出增量代码信息,将提取到的增量代码信息拼装为JSON格式的文件,并基于配置文件中配置的输出路径存储该JSON格式的文[0176]其中,该JSON格式的文件中包括至少一条增量代码对应的文件名和行号。[0177]S605,主控程序向Xcode工具发送测试命令,该测试命令指示有该目标代码版本文件的第一标识。[0178]S606,Xcode工具响应于测试命令,基于目标代码版本文件的第一标识执行对目标代码版本文件的单元测试,得到至少一个测试结果文件并存储到设定的文件存储路径对应的文件存储空间。[0179]如,Xcode工具基于该第一标识信息可以从测试平台存储的代码文件中获得该目标代码版本文件并执行单元测试。的文件。[0181]其中,该设定文件路径可以为通过测试命令指示的,也可以是预先配置的,因此,主控程序可以获得该文件存储路径。[0182]S607,主控程序在确认Xcode工具完成单元测试之后,调用主控程序中的文件解析程序,并向文件解析程序发送增量覆盖分析命令。[0183]其中,该增量覆盖分析命令指示有该至少一个测试结果文件的文件存储路径以及该包含有增量代码信息的JSON文件的输出路径。[0184]可以理解的是,由于Xcode工具中集成有开源的11vm,1lvm为开源的编译器,而llvm中包含有1lvm-cov程序,1lvm-cov程序可以解析出Xcode工具中输出的测试结果文件中的代码测试覆盖信息(即本申请中的全量测试覆盖信息),因此,本申请的文件解析程序可以是在该11vm-cov程序上进一步开发得到的,经过进一步开发的11vm-cov程序不仅具备确定全量测试覆盖信息的功能,还可以确定增量代码覆盖信息。[0185]相应的,本申请可以在主控程序中配置经过进一步开发更改后的11vm-cov程序。[0186]举例说明,如表3,其示出了进一步开发更改后的1lvm-cov程序(即文件解析程序)所包含的程序或者接口的种类。[0187]表3名称用途是否已有测试c接口是从profdata数据转化为json格式是使用gcov形式工作是所有文件的覆盖率信息是可视化查看所有文件覆盖情况是查看差异代码覆盖率否(扩展能力)llvm-cov程序中新增了增量覆盖子程序diffCov,通过diffCov可以分析出增量代码的测试覆盖信息。[0190]S608,文件解析程序基于JSON文件的输出路径获得JSON文件,并将JSON文件转换为设定结构体形式的增量代码信息。[0192]S609,文件解析程序依据文件存储路径获得至少一个测试结果文件,并解析出该至少一个测试结果文件中包含的全量测试覆盖信息。[0193]如,由于开源的11vm-cov程序具备确定全量测试覆盖信息,因此,本申请的文件解析程序实际上是复用了11vm-cov程序中该部分功能得到全量测试覆盖信息。[0194]例如,如图7所示,其示出了文件解析程序的组成架构示意图。更改后的11vm-cov程序可以包括同样包括:输出(export)、报表或者报告(report)以及显示show三个原命令,CodeCoverageTool内部使用run函数做参数解析分发器。在分发器解析器确定出需要调用这三个原命令之后,通过调用代码覆盖工具CodeCoverageTool::load()方法加载测试结[0195]对于更改后的11vm-cov程序确定全量测试覆盖信息的过程与开源的11vm-cov程序确定全量测试覆盖信息的过程相似,在此不再赘述。[0196]S610,文件解析程序通过增量覆盖子程序基于全量测试覆盖信息和增量代码信息,确定出目标代码版本文件中增量代码的测试覆盖率并输出。[0197]该步骤S610可以参见前面的相关介绍,在此不再赘述。[0198]由图6可以看出,主控程序中的文件解析程序可以是对开源的更改后的11vm-cov程序做较少改动,相对整个Xcode或者llvm,llvm-cov程序更为轻量化,从而使得主控程序能够实现更为灵活接入,也更为轻量化。[0199]对应本申请提供的确定增量测试覆盖信息的方法,本申请还提供了一种确定增量测试覆盖信息的装置。[0200]如图8所示,其示出了本申请一种确定增量测试覆盖信息的装置的一种组成架构[0201]文件确定装置801,用于确定待测试的目标代码版本文件以及原代码版本文件,该目标代码版本文件为对该原代码版本文件进行代码更新后得到的;[0202]增量代码确定单元802,用于确定该目标代码版本文件相对该原代码版本文件的增量代码信息,该增量代码信息包括:至少一条增量代码的信息;[0203]测试结果获得单元803,用于获得代码编辑编译器测试该目标代码版本文件所得到的至少一个测试结果文件,该至少一个测试结果文件为采用设定协议格式的文件;[0204]全量覆盖确定单元804,用于调用并运行文件解析程序,并通过该文件解析程序解析出该测试结果文件中包含的全量测试覆盖信息,该全量测试覆盖信息包括该目标代码版本文件中被测试的至少一条已测试代码的信息,该文件解析程序为用于解析该设定协议格式的文件的解析程序;[0205]增量覆盖确定单元805,用于通过该文件解析程序依据该至少一条增量代码的信息以及该全量测试覆盖信息中至少一条已测试代码的信息,确定出该目标代码版本文件中增量代码的测试覆盖信息。[0206]在一种可能的实现方式中,该测试结果获得单元中的代码编辑编译器中集成有编译器,该编译器中包括用于解析该设定协议格式的文件的原始解析程序;[0207]该全量覆盖确定单元调用的文件解析程序为通过在该原始解析程序中增设增量覆盖子程序得到的程序;[0208]该增量覆盖确定单元具体为,用于通过该增量覆盖子程序依据该至少一条增量代码的信息以及该至少一条已测试代码的信息,确定出该目标代码版本文件中增量代码的测试覆盖信息。[0210]测试指示单元,用于在测试结果获得单元获得代码编辑编译器测试该目标代码版本文件所得到的至少一个测试结果文件之前,向该代码编辑编译器发送测试命令,该测试命令用于指示该代码编辑编译器测试该目标代码版本文件并输出该目标代码版本文件的测试结果文件。[0212]文件比较单元,用于调用比较程序比对该目标代码版本文件与该原代码版本文件,得到该比较程序输出的代码变更信息,该代码变更信息包括该目标代码版本文件相对该原代码版本文件存在差异的至少一条差异代码的信息;[0213]增量提取单元,用于从该至少一条差异代码的信息中提取出属于增量代码的增量代码信息。[0214]在一种可选方式中,文件确定装置具体为,用于获得待测试的目标代码版本文件的第一文件标识以及原代码版本文件的第二文件标识,以确定待测试的目标代码版本文件以及原代码版本文件;[0216]分析程序调用单元,用于调用并运行增量分析程序,该增量分析程序配置有配置文件,该配置文件中配置有代码路径信息,代码路径信息用于指示有各代码版本文件的统一存储路径;[0217]比较程序执行单元,用于通过该增量分析程序调用比较程序,并将该第一文件标识、第二文件标识和该代码路径信息,均作为输入参数传输给该比较程序,以使得该比较程序基于该代码路径信息,获得并比对该第一文件标识对应的目标代码版本文件与该第二文件标识对应的原代码版本文件,得到该代码变更信息;[0218]增量提取单元,具体为用于通过该增量分析程序从该至少一条差异代码的信息中提取出属于增量代码的增量代码信息。[0219]在一种可选方式中,分析程序调用单元调用的增量分析程序配置的配置文件中还配置有增量代码信息的输出路径;[0221]信息存储单元,用于增量提取单元提取出增量代码信息之后,通过该增量分析程序将该增量代码信息转换为符合指定编辑语言对应的数据存储格式,并存储到该输出路径对应的存储空间;[0222]信息获取单元,用于在增量覆盖确定单元确定增量代码的测试覆盖信息之前,向该文件解析程序传输该增量代码信息对应的该输出路径,通过该文件解析程序从该输出路径对应的存储空间获得该增量代码信息;[0223]格式转换单元,用于通过该文件解析程序将该增量代码信息由该符合指定编辑语言对应的数据存储格式,转换为该文件解析程序设定的结构体形式的数据。[0224]在又一种可能的实现方式中,该目标代码版本文件包括至少一个代码文件,每个代码文件包括至少一条代码;[0225]该增量代码的信息包括:增量代码所属的代码文件的文件名以及该增量代码的行[0226]该已测试代码的信息包括:已测试代码所属的代码文件的文件名以及该已测试代码的行号;[0227]该增量覆盖确定单元包括:[0228]数量确定单元,用于基于该增量代码信息中各条增量代码所属代码文件的文件名和各条增量代码的行号,以及全量测试覆盖信息中各条已测试代码所属的代码文件的文件名和各条已测试代码的行号,通过该文件解析程序分别确定各代码文件中增量代码的总数和被测试覆盖的增量代码的数量;[0229]覆盖率确定单元,用于基于各代码文件中增量代码的总
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Photoshop考试试题汇编及详细答案
- 注册环保工程师专业知识考试真题及答案(2026年)
- 酒店中央空调运维操作规程
- 2026年煤矿测量作业人员(初级)职业技能《理论知识》真题卷(附解析)
- 卒中后神经源性膀胱饮水管理标准化方案共识
- 气化器安全操作规程
- PCB基础培训考核试题(含详细答案)
- 吉林省长春朝阳区六校联考2027届八上数学期末监测模拟试题含解析
- 1型糖尿病运动相关低血糖预防共识
- 2026年电力安全生产事故案例知识竞赛考试试题及答案
- 2026年八年级英语上学期期中考试模拟试题与答案详解(第10套)
- 康复医学科进修报告
- 中国电信历年考试笔试题库及答案
- 我的梦想旅游
- 《红色的天空》话剧剧本
- 《自然教育志愿者规范》(T-CSF 020-2021)
- 单位资产清查报告范文(12篇)
- 道路运输和其他安全安全生产实务注册安全工程师考试(初级)试卷与参考答案(2024年)
- 中建污水顶管施工方案
- Unit4+My+space++Reading++The+1940s+House+课件高中英语沪教版(2020)必修第一册
- TCSBZ 004-2024 石材护理技术规范
评论
0/150
提交评论