代码覆盖率分析:
在真实的代码中,冗余代码往往大量存在,再加上测试时间非常有限,即使使用精准测试,代码覆盖率也很难达到 100%。那么,当两次测试的代码覆盖率都未达到 100% 时,我们该如何判断哪次测试的质量更好呢?
覆盖率不等于质量
举个例子:
在这个例子中,尽管第二次测试的覆盖率(89%)低于第一次测试(92%),但测试质量显然更高。因此,测试质量不仅取决于代码覆盖率,还取决于关键功能部分是否测试全面。从测试工程师的角度来看,除了需求或功能说明书,他们主要靠测试案例来辅助分析关键功能是否测试全面。然而,测试案例的完整性和优先级难以判断某次测试是否覆盖了关键功能。那么,是否有办法知道关键功能是否测试全面呢?答案是肯定的。
测试工程师关注点与精准测试工具
在软件工程中,开发工程师和测试工程师的关注点有所不同。开发工程师更关注代码,而测试工程师则更关注测试案例。API 接口是开发和测试都熟悉的领域。如果仅提供代码覆盖率,测试工程师难以判断未覆盖代码是否关键。仅有代码覆盖率,无论是包覆盖率、类覆盖率、分支覆盖率还是行覆盖率,都无法判断未覆盖部分的功能是否重要。
整体代码覆盖率 vs API 接口维度代码覆盖率
整体代码覆盖率
整体代码覆盖率衡量整个代码库在测试过程中被执行的比例,包括所有模块、类、函数和代码行。它提供了一个宏观视角,帮助了解整个项目的测试覆盖情况。
覆盖率类型:
优点:
缺点:
API 接口维度的代码覆盖率
API 接口维度的代码覆盖率提供了 API 接口维度的代码覆盖情况,专门针对 API 相关的代码路径,评估 API 在测试过程中调用的代码覆盖情况。
覆盖率类型:
优点:
缺点:
基于 API 接口的代码覆盖率与漏测点分析
通过基于 API 接口的代码覆盖率和漏测点/漏测原因分析,我们可以间接得到关键功能的测试情况。只要同步了 API 接口的优先等级,即可间接了解关键功能的测试情况。下面是我们实现的基于 API 接口的代码覆盖率和漏测原因分析界面。
实现方法
我们有两种方式可以实现 API 接口的代码覆盖率:
上海复深蓝精准测试产品 TestForce/复测高手 ( www.fucegaoshou.com ) 出品