当我们代码测试覆盖率为的时候
作者:网络转载 发布时间:[ 2013/1/4 9:49:19 ] 推荐标签:
有一句经典的话:世界是怎么样的,取决与你怎么看他。
柏拉图也有一句经典的论断:我们认识外部世界的方法,像被套住了脖子关在一个山洞里,只能通过背后透射近来的一点光亮,看到山洞墙壁上的斑驳。这是我们认识的世界。
量子物理里面也有类似观点:你观测电子的方法无可避免的干扰了电子的行为(的测不准原理)。
说了这么多,只是为le说明,当我们在说测试覆盖率为的时候,你要多问自己几个问题。
当有人对你说:我单元测试代码的覆盖率为了!
你的第一反映是什么?
“哇,恭喜哈,走庆祝去”,如果是这样的话,那有你会为遗漏的问题付出代价。
“等一等,你用的是什么工具?”。对,你用的是什么工具来观测覆盖率的?
以Java代码为例子,我们来看看不同工具的测试覆盖率的表现。
我们按下面这段例子代码:
package test.unit;
public class Branch {
public String getValue(int condition){
String ret = null;
if (condition > 10){
ret = “true”;
}
return ret;
}
}
测试代码为:
packagetest.unit;
importjunit.framework.TestCase;
publicclassTestBranchextendsTestCase{
publicvoidtestBranch(){
Branch b =newBranch();
String real_val = b.getValue(20);
assertTrue(real_val.equals(“true”));
}
}
然后我们先用比较常见的eclemma这个工具来观测测试覆盖率。
从上面的图种我们看到测试覆盖率为!
但是细心的同学们都可以发现,实际上有一个逻辑分支是没有测试的:b.getValue(x), x < 10。
我们仔细看eclemma的覆盖率,你会发现eclemma统计的是代码覆盖率,而实际上还存在一种分支覆盖率,这个eclemma没有统计出来。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11