代码覆盖率测试方法及系统技术方案

技术编号:15639147 阅读:75 留言:0更新日期:2017-06-15 21:41
本发明专利技术公开了一种代码覆盖率测试方法,所述代码覆盖率测试方法包括以下步骤:获取被测试项目的源代码,在所述源代码中插入测试登记代码;在测试时,接收所述测试登记代码所产生的测试登记信息;根据测试登记信息生成测试覆盖率报告。本发明专利技术还公开了一种代码覆盖率测试系统。本发明专利技术通过在执行代码中加入测试登记代码,使得测试测中,只要运行测试代码,在被插入所述测试代码内部的测试登记代码会自动进行登记,标记出已测试项目,方便的获取到代码覆盖率。

【技术实现步骤摘要】
代码覆盖率测试方法及系统
本专利技术涉及软件测试
,尤其涉及一种代码覆盖率测试方法及系统。
技术介绍
在软件测试中,代码覆盖率常常被拿来作为衡量测试好坏的指标,在对一个软件产品进行了单元测试、组装测试、集成测试以及接口测试等繁多的测试之后,代码覆盖率为这些测试提供了可以量化的保证,但目前的代码覆盖率测试没有形成系统,导致很多黑盒测试人员难以统计已测试代码,获取代码覆盖率困难。
技术实现思路
本专利技术的主要目的在于提供一种代码覆盖率测试方法及系统,旨在降低获取代码覆盖率的难度。为实现上述目的,本专利技术提供一种代码覆盖率测试方法,所述代码覆盖率测试方法包括以下步骤:获取被测试项目的源代码,在所述源代码中插入测试登记代码;在测试时,接收所述测试登记代码所产生的测试登记信息;根据测试登记信息生成测试覆盖率报告。优选地,所述根据测试登记信息生成测试覆盖率报告包括:持久化由单个测试终端产生的所述测试登记信息,并形成测试登记文件;收集多个测试终端产生的所述测试登记文件,并生成所述测试覆盖率报告。优选地,所述在测试时,接收所述测试登记代码所产生的测试登记信息包括:接收所述测试登记信息,所述测试登记信息包括所述测试登记代码所在类的信息;根据所述测试登记信息,标记所述测试登记代码所在类为已测试类。优选地,所述获取被测试项目的源代码,在所述源代码中插入测试登记代码包括:获取java格式的所述源代码;在所述源代码中插入所述测试登记代码;编译java格式文件生成class格式文件。优选地,所述在所述源代码中插入所述测试登记代码包括获取要插入代码位置的特征;生成使用面向切面技术在所述特征的位置插入执行所述测试登记代码的java格式文件。此外为实现上述目的,本专利技术提供一种代码覆盖率测试系统,所述代码覆盖率测试系统包括:获取模块,用于获取被测试项目的源代码,在所述源代码中插入测试登记代码;接收模块,用于在测试时,接收所述测试登记代码所产生的测试登记信息;生成模块,用于根据测试登记信息生成测试覆盖率报告。优选地,所述生成模块包括:持久化单元,用于持久化由单个测试终端产生的所述测试登记信息,并形成测试登记文件;第一生成单元,用于收集多个测试终端产生的所述测试登记文件,并生成所述测试覆盖率报告。优选地,所述接收模块包括:接收单元,用于接收所述测试登记信息,所述测试登记信息包括所述测试登记代码所在类的信息;标记单元,用于根据所述测试登记信息,标记所述测试登记代码所在类为已测试类。优选地,所述获取模块包括:第一获取单元,用于获取java格式的所述源代码;插入模块,用于在所述源代码中插入所述测试登记代码;编译单元,用于编译java格式文件生成class格式文件。优选地,所述插入模块包括第二获取单元,用于获取要插入代码位置的特征;第二生成单元,用于生成使用面向切面技术在所述特征的位置插入执行所述测试登记代码的java格式文件。本专利技术通过根据通过获取被测试项目的源代码,在所述源代码中插入测试登记代码;在测试时,接收所述测试登记代码所产生的测试登记信息;根据测试登记信息生成测试覆盖率报告。本专利技术通过在执行代码中加入测试登记代码,使得测试测中,只要运行测试代码,在被插入所述测试代码内部的测试登记代码会自动进行登记,标记出已测试项目,方便的获取到代码覆盖率。附图说明图1为本专利技术代码覆盖率测试方法第一实施例的流程示意图;图2为本专利技术代码覆盖率测试方法第二实施例中根据测试登记信息生成测试覆盖率报告步骤的细化流程示意图;图3为本专利技术代码覆盖率测试方法第三实施例中在测试时,接收所述测试登记代码所产生的测试登记信息步骤的细化流程示意图;图4为本专利技术代码覆盖率测试方法第四实施例中获取被测试项目的源代码,在所述源代码中插入测试登记代码步骤的细化流程示意图;图5为本专利技术代码覆盖率测试方法第五实施例中在所述源代码中插入所述测试登记代码步骤的细化流程示意图;图6为本专利技术代码覆盖率测试系统第一实施例的功能模块示意图;图7为本专利技术代码覆盖率测试系统第二实施例中生成模块的细化功能模块示意图;图8为本专利技术代码覆盖率测试系统第三实施例中接收模块的细化功能模块示意图;图9为本专利技术代码覆盖率测试系统第四实施例中获取模块的细化功能模块示意图;图10为本专利技术代码覆盖率测试系统第五实施例中插入模块的细化功能模块示意图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。本专利技术提供一种代码覆盖率测试方法,参照图1,在本专利技术代码覆盖率测试方法第一实施例中,所述代码覆盖率测试方法包括以下步骤:步骤S10,获取被测试项目的源代码,在所述源代码中插入测试登记代码;在获取源代码后,未编译前对所述源代码进行修改,通过修改使得在测试类时,能触发执行插入测试登记代码,记录该类被调用执行过,方便统计代码覆盖率。步骤S20,在测试时,接收所述测试登记代码所产生的测试登记信息;步骤S30,根据测试登记信息生成测试覆盖率报告。通过在执行代码中加入测试登记代码,使得测试测中,只要运行测试代码,在被插入所述测试代码内部的测试登记代码会自动进行登记,标记出已测试项目,方便的获取到代码覆盖率。具体地,在本实施例中通过在一个A类的A1方法前加入测试登记代码;当测试时所述A类被实例化后,调用所述A1方法时,先执行测试登记代码,所述测试登记代码在内存中登记测试登记信息,本实施例中所述测试登记信息为登记类是否被测试过的表,输入A类已经被测试,在测试结束后,根据内存中的所述测试登记信息生成测试报告,具体地,使用测试报告中已经登记过被测试类的数量除以全部需要测试的类。请参照图2,基于本专利技术代码覆盖率测试方法第一实施例,在本专利技术代码覆盖率测试方法第二实施例中,所述步骤S30包括:步骤S31,持久化由单个测试终端产生的所述测试登记信息,并形成测试登记文件;步骤S32,收集多个测试终端产生的所述测试登记文件,并生成所述测试覆盖率报告。通过汇聚多个测试终端产生的测试登记文件,使得测试可以在不同的测试终端进行,增加了测试的灵活性和专业性,同时汇集所述多个测试终端所有的测试登记文件,使得产生的测试覆盖率报告更加准确。具体地,在本实施例中,单个测试终端产生的所述测试登记信息后,从测试终端本地上传至服务器,所述测试登记信息是以文件的形式先存储于单个测试终端本地,然后上传至服务器指的定位置,在服务器端根据收集到的所有的测试终端所产生的测试登记信息的文件合并计算出测试覆盖率,并生成测试覆盖率报告。应当说明的是,在有些实施例中所述每个测试终端产生的所述测试登记信息是以数据流的形式,实时对服务器中指定的数据库进行更新,在测试结束后,根据所述数据库的数据来统计测试覆盖率,并生成测试覆盖率报告。请参照图3,基于本专利技术代码覆盖率测试方法第一实施例,在本专利技术代码覆盖率测试方法第三实施例中,所述步骤S20包括:步骤S21,接收所述测试登记信息,所述测试登记信息包括所述测试登记代码所在类的信息;步骤S22,根据所述测试登记信息,标记所述测试登记代码所在类为已测试类。通过在测试登记信息包括所述测试登记代码所在类的信息,并在接收到所述测试登记信息后,标记所述类为已测试类,本文档来自技高网...
代码覆盖率测试方法及系统

【技术保护点】
一种代码覆盖率测试方法,其特征在于,所述代码覆盖率测试方法包括以下步骤:获取被测试项目的源代码,在所述源代码中插入测试登记代码;在测试时,接收所述测试登记代码所产生的测试登记信息;根据测试登记信息生成测试覆盖率报告。

【技术特征摘要】
1.一种代码覆盖率测试方法,其特征在于,所述代码覆盖率测试方法包括以下步骤:获取被测试项目的源代码,在所述源代码中插入测试登记代码;在测试时,接收所述测试登记代码所产生的测试登记信息;根据测试登记信息生成测试覆盖率报告。2.如权利要求1所述的代码覆盖率测试方法,其特征在于,所述根据测试登记信息生成测试覆盖率报告包括:持久化由单个测试终端产生的所述测试登记信息,并形成测试登记文件;收集多个测试终端产生的所述测试登记文件,并生成所述测试覆盖率报告。3.如权利要求1所述的代码覆盖率测试方法,其特征在于,所述在测试时,接收所述测试登记代码所产生的测试登记信息包括:接收所述测试登记信息,所述测试登记信息包括所述测试登记代码所在类的信息;根据所述测试登记信息,标记所述测试登记代码所在类为已测试类。4.如权利要求1至3任一项所述的代码覆盖率测试方法,其特征在于,所述获取被测试项目的源代码,在所述源代码中插入测试登记代码包括:获取java格式的所述源代码;在所述源代码中插入所述测试登记代码;编译java格式文件生成class格式文件。5.如权利要求4所述的代码覆盖率测试方法,其特征在于,所述在所述源代码中插入所述测试登记代码包括获取要插入代码位置的特征;生成使用面向切面技术在所述特征的位置插入执行所述测试登记代码的java格式文件。6.一种代码覆盖率测...

【专利技术属性】
技术研发人员:陈星
申请(专利权)人:广州唯品会信息科技有限公司
类型:发明
国别省市:广东,44

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

1