/资讯中心/网贷源码/代码覆盖的15种情况(一)

代码覆盖的15种情况(一)

发布时间:2015-12-29 分类:网贷源码

代码覆盖对于测试人员是非常重要的一种测试手法,对于代码覆盖会遇到下面15种情况:

一、代码覆盖

代码所有的路径都被经过,但不应该覆盖那些不该覆盖的地方,但如果覆盖到了,也要关注,尤其是覆盖的是特殊异常等情况。

二、不用的功能

如果不用的功能,可以直接移除,如果保留这部分代码只会让代码更冗余,这些功能也不需要覆盖。

三、工具类(助手类)、常量类等私有构造器

工具类和常量类共有的特征是对外开放的都是静态方法,调用方法的时候,无需创建实例,所以推荐实践是创建一个private的构造器方法。这导致类的构造器代码无法覆盖(不考虑反射等方式)。

四、日志级别

日志级别不同,代码覆盖率高低也不同。环境使用不同的日志级别,也会导致一些日志代码没有覆盖。

五、程序配置参数

程序的配置参数如JVM,也会直接影响到代码路径的覆盖,需要通过调整参数来进行代码覆盖。

六、main()方法

有很多程序员喜欢写一个main()方法方便于测试,完成测试后就留了下来,那么这些代码无法被覆盖。在产品代码中,应该删除这些,部署的毕竟是产品代码,不是测试代码。

七、编码写法

在编写代码过程中,有一些最常见的写法,比如:(1) 覆盖toString()方法; (2) 以意义配对形式写一些方法:数据连接中Connect()搭配 DisConnect(), 枚举中常用的 toString()搭配fromString(),这些编码习惯写法造成的未覆盖代码需要被覆盖的,是代码的一部分。

代码覆盖的15种情况

代码覆盖的15种情况(图片来源互联网)

八、项目的使用方式

有两种使用方式会造成代码不能全部被覆盖:

1.客户端Jar方式:部分代码作为客户端Jar包形式提供给他人使用;

2.分布式系统交互:分布式系统之间存在交互时,例如从系统1复制文件到系统2,如果始终按照从1到2的顺序,又仅仅统计系统1的代码覆盖肯定不能覆盖全部。 需要覆盖的代码虽出于一处,但是使用方式不同也会导致在不合并覆盖数据情况下代码未覆盖。

项目使用方式造成的代码覆盖统计数据分散需要通过合并数据来覆盖。

剩下的七种代码覆盖情况会在下一篇中一一介绍。