所有现有测试用例的代码覆盖率?

Posted

技术标签:

【中文标题】所有现有测试用例的代码覆盖率?【英文标题】:Is code coverage for all existing test cases? 【发布时间】:2017-07-20 05:38:15 【问题描述】:

我对代码覆盖率有疑问。

考虑以下场景,

如果我有带有一些参数的方法 Sample() 并且我为该方法编写了示例 10 测试用例。

在运行代码覆盖时,如果代码的一部分(例如 if 条件)仍未被覆盖。

所以如果我要通过编写新的测试用例来覆盖 if 条件,

我可以通过单独使用有效参数来覆盖该代码(使用任何一个已经存在的测试用例)。

我的疑问是,

单个测试用例是否足以用于未覆盖的代码?否则我必须通过重复该方法的所有现有 10 个测试用例来覆盖代码?

【问题讨论】:

我希望我的回答,解决你的问题,然后你可以将其标记为已回答;) 【参考方案1】:

仅 100% 的代码覆盖率并不是一件容易的事。

以您的示例为例,这取决于您的上下文(功能) - 它可能是两个不同的场景。一个是,white box testing,您有两个现有路径 - IF = TRUE 或 FALSE。 然后给定的一组参数会在您的函数内部生成其他路径,但是如果您的函数是关于验证的,并且所有给定场景的测试用例测试相同的结果(有效/无效的参数集),那么所有案例的预期结果都是相同的。但如果你把成功和失败混为一谈,那么应该是分开的。

【讨论】:

以上是关于所有现有测试用例的代码覆盖率?的主要内容,如果未能解决你的问题,请参考以下文章

测试用例的编写

linux环境jacoco接入

如何强制代码覆盖率为零?

Fiddler接口测试PPT

测试用例设计——如何提高测试覆盖率

衡量软件测试质量的指标 测试用例覆盖率概念