优化iOS测试:代码覆盖、应用启动与视图控制器加载
1. 避免代码覆盖百分比目标,注重前进动力
在遗留项目中添加测试是一项长期工作。我们应避免设置代码覆盖百分比目标,因为根据古德哈特定律,当一个指标变成目标时,它就不再是一个好的指标。很容易在没有有意义测试的情况下提高覆盖率数字,如果团队将覆盖率作为目标而非趋势衡量标准,人们就会这么做。
此外,不要编写仅用于设置和获取存储属性的测试,这类测试不能说明代码的实际情况,只是证明编译器能正常工作。应该找出属性存在的原因并对其进行测试,但计算属性可当作无参数函数进行测试。
团队应追求推动进展,任何正向的进步都很重要且值得庆祝。定期测量总代码覆盖率,比如每两周或每月一次。除了百分比,还可使用 cloc 工具统计代码行数,结合覆盖率计算出覆盖和未覆盖的代码行数,这样能更清晰了解整体情况。每次添加测试时观察代码覆盖栏,看到红色块消失的积极反馈会提升动力。
关键要点 :
- 要启用代码覆盖报告,在测试/选项下编辑方案。
- 代码覆盖可能具有误导性,但缺乏覆盖总是真实的。
- 覆盖一个条件语句需要两个测试,分别针对条件为真和为假的情况(不考虑 && 和 || 运算符)。
- 测试循环时,尝试测试循环执行零次和两次的情况。
- 如果故意引入问题(如删除代码)而测试仍能通过,说明代码未完全覆盖。
- 使用特征化测试技术捕获现有代码的行为,编写捕获实际值的断言,再将这些值插回断言中。
- 不要为了提高数字而编写无意义的测试,
超级会员免费看
订阅专栏 解锁全文
1504

被折叠的 条评论
为什么被折叠?



