指标下的单元测试

前言

最近领导强推单元测试覆盖率,要求达到80%。我打探了一下,据说覆盖率是更上层领导的考核指标,所以今年我们组一大任务就是这。没几个人觉得写好单元测试是为了提升软件质量,提高自己的代码水平。
可以预见的是,有人会为了提高覆盖率,写一堆无效代码。 “上有所好,下必甚焉”。

距离我上一次吐槽已经过去了半年,我们的单元测试变成了什么情况呢?
半年前我的猜测是为了提高覆盖率,写一堆无效代码,然而实际情况却比这更糟糕。

  • 有人的测试函数的末尾始终是
    1
    EXPECT_EQ(TRUE=TRUE)

这样每个用例都是绿的

  • 还有人这么写
    1
    2
    //init module
    //run module

测试的是整个模块的输入输出,这样可以保证覆盖率

领导看到用例一片绿,覆盖率90%,觉得我们的代码质量很高。

然而,这并没有什么卵用!!!
这真的没有什么卵用!
这真的没有什么卵用!
这真的没有什么卵用!

分析

  • 正如我所说没几个人觉得写好UT是为了提升软件质量,提高自己的代码水平
  • 责任心?能想出这样方法的人,都是比较聪明的人。只能说是责任心吧。
  • 管理方式?为什么没有早点发现?为什么我没有去经常查看单元测试代码的提交记录(我平时会看看生产代码)?我有罪。

待续


本博客欢迎转发,但请保留原作者信息
github:codejuan
博客地址:http://blog.decbug.com/