前言
最近领导强推单元测试覆盖率,要求达到80%。我打探了一下,据说覆盖率是更上层领导的考核指标,所以今年我们组一大任务就是这。没几个人觉得写好单元测试是为了提升软件质量,提高自己的代码水平。
可以预见的是,有人会为了提高覆盖率,写一堆无效代码
。 “上有所好,下必甚焉”。
距离我上一次吐槽已经过去了半年,我们的单元测试变成了什么情况呢?
半年前我的猜测是为了提高覆盖率,写一堆无效代码
,然而实际情况却比这更糟糕。
- 有人的测试函数的末尾始终是
1
EXPECT_EQ(TRUE=TRUE)
这样每个用例都是绿的
- 还有人这么写
1
2//init module
//run module
测试的是整个模块的输入输出,这样可以保证覆盖率
领导看到用例一片绿,覆盖率90%,觉得我们的代码质量很高。
然而,这并没有什么卵用!!!
这真的没有什么卵用!
这真的没有什么卵用!
这真的没有什么卵用!
分析
- 正如我所说
没几个人觉得写好UT是为了提升软件质量,提高自己的代码水平
- 责任心?能想出这样方法的人,都是比较聪明的人。只能说是责任心吧。
- 管理方式?为什么没有早点发现?为什么我没有去经常查看单元测试代码的提交记录(我平时会看看生产代码)?我有罪。
待续
本博客欢迎转发,但请保留原作者信息
github:codejuan
博客地址:http://blog.decbug.com/