- 忽视代码代码覆盖率
简单普及下,代码覆盖算法有很多种,大致上对比准确性:路径覆盖 > 条件覆盖 ~= 判定覆盖 > 语句覆盖.而且这只是说条件分支,循环什么的还有别的算法就不多说了.这些算法在覆盖率都达到 100% 的前提下,其“靠谱"程度可能有天壤之别.问题就出在下决策使用代码覆盖率做考核的人往往不明白这种差别,这就给了落地执行的人可趁之机,很容易就演变成了“在追求 100% 代码覆盖率的道路上,我们应该无所不用其极“.若是连落地执行人都不懂,那就更悲剧了,一群人对着水份极大的 100% 乐得嘴都合不拢,想想都难受.
所以对于代码覆盖率的不当应用,只会让大家越走越偏,浪费时间不说收效还甚微;反过来恰当的使用代码覆盖率又对团队的要求极高,只有一个人懂行是不够的,因为你没有那么多时间精力去检查结果是不是真的靠谱.如果每一个人都按照靠谱的方式去写代码和测试,不用测试覆盖率也没什么大不了的.因此如果我是初创团队的负责人,我宁可选择把时间和精力放在测试用例本身上,测试本身靠谱了,测试覆盖率的辅助价值才能靠谱.
无视它.有人认为代码覆盖率是最形式主义的技术工具,覆盖率再高也不能保证代码本身无懈可击,该出 Bug 的地方 100% 的覆盖率也救不了你. 其实作为一种辅助度量工具,代码覆盖本身并没有什么错,有位仁兄说得好:"在追求精益求精的道路上,我们应该无所不用其极".错就错在拿代码覆盖率当考核指标,以此来衡量测试人员的工作水平,对此我相当无语,也相当反感. 有识之士一定会说:你也不要以偏概全,路径覆盖所度量出的代码覆盖率还是相当靠谱的嘛.