单测覆盖率:不要逼人造假
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
在电视剧《县委大院》中,乡干部对县委书记提出了一个反映基层工作现状的问题:是行动与效果重要,还是形式重要。这让观众感同身受,因为这种现象不仅存在于政府机关,同样也普遍存在于企业之中。举例来说,软件开发中的单元测试就经常被用来做给上级看,而不是真正为了提高代码质量。
作者参观开发团队时,发现即使代码覆盖率指标很高,实际的测试用例脚本却缺乏有效的断言,很多被测函数或方法也没有太多逻辑可测。开发人员也承认这种测试用例脚本的价值不大,但不得不这么做以满足单测覆盖率的要求。
问题的根源在于现有的机制,它要求高覆盖率但未必鼓励真正有价值的测试。作者提出,从管理层和改进部门的角度,应建立更合理的机制。首先,不应一刀切地制定单测覆盖率目标,而应考虑项目和模块的具体情况。理想的单测覆盖率因项目而异,应根据实际情况灵活设定。
对于单测覆盖率的考核,不应只关注覆盖率本身,还应该抽查测试脚本的质量。同时,更加注重增量覆盖率而非全量覆盖率,考虑一定时间内的统计值,而不是每次更新都要求达标。此外,应培养开发人员的判断力和测试技能,通过阅读、学习、培训等多种方式提升他们编写单元测试的能力。
最后,建立一个有效的反馈机制,分析测试中发现的缺陷和生产环境中的问题,讨论这些问题是否能通过单元测试更早发现,以此提升测试的整体效果。
文章最后指出,虽然只是列出了一些要点,更多的详细内容可以在《高质效交付》这本书中找到。
想要了解更多内容?
白皮书上线