不浪费光阴,不虚度年华,在充实中享受,在享受中充实.
好东西要一起分享才会更有价值
发布新日志
-
2008-12-29 10:15:50
转自:http://www.51testing.com/?action_viewnews_itemid_7254.html
发布时间: 2007-4-13 09:53 作者: jerry 来源: 网络
软件测试覆盖包括分支覆盖,语句覆盖以及条件覆盖,这是白盒测试中一个很基本的测试概念,但是最近和几位搞了多年测试的朋友谈及此事,大家都搞不大清楚。下面我通过一个例子来深入探讨一下这个问题:
我们首先来看一下这几些测试覆盖的定义:
定义一、语句覆盖:它要求被测程序的每一可执行语句在测试中尽可能都检验过;
定义二、分支覆盖:要求程序中所有判定的分支尽可能得到检验;
定义三、条件覆盖:当判定式中含有多个条件时,要求每个条件的取值均得到检验;
从这些定义我们可以很容易理解到语句覆盖是把程序中的所有的语句都给覆盖到;分支覆盖是把程序中每个分支都给覆盖到;条件覆盖是把判断条件中所有的条件都给覆盖到。
下面我们通过一个简单的例子来描述一下
0:
1:if ((a<150)||(b<200)){
2: for (i=a;i<100;i++)
3: {
4: println(“A”);}
5:}else{
6:println (“B”);
7:}
分支覆盖:
1)在0处设置a=120,b 任意
将执行1,2,5
2)在0处设置a=200,b=400
将执行1,5,6,7
这里所有的分支都走到,也就是说要达到分支覆盖率100%,要设计2组测试用例
语句覆盖:
1)在0处设置a=40,b 任意
将执行1,2,3,4,5
2)在0处设置a=200,b=400
将执行1,5,6,7
这里所有的语句都走到了,也就是说要达到语句覆盖率100%,要设计2组测试用例
而在分支覆盖中语句3,4没有走到
条件覆盖:
由于第一个条件是if ((a<150)||(b<200)) 所以需要设计测试用例
a |
b |
备注 |
40 |
50 |
全部满足 |
160 |
150 |
a不满足,b满足 |
40 |
250 |
a满足,b不满足 |
150 |
250 |
a,b都不满足 |
条件覆盖只要求把所有的条件都覆盖就可以了。
这样一来我们就把这几个概念搞得很清楚了。
顺便我在这里想说一句心里话,我们现在的不管是书籍还是网站上的文章都太倾向于理论了,而到实际运用上来就说不清楚了,我希望能够有更多又讲理论又讲实践的文章和书籍能够出现。
查看(349)
评论(0)
收藏
分享
管理
-
2008-12-11 14:09:38
1. 好的测试用例的定义:能发现到目前为止没有发现的缺陷的用例是好的用例,但不是盲目测试,发现BUG不是测试的最终目的。要能完整覆盖测试要求;测试程序做了它该做的事情,没有做它不应该做的事情,这是用例最起码的要求,如果做不到这些要求,即使发现BUG也不一定是好的用例,因为不符合需求,所以不应该针对单个的测试用例去评判好坏。
2. 测试用例的详细程序根据需要确定。
3. 测试用例文档是“活的”文档,要与需求和设计同步更新。
4. 测试用例可以包含实际的数据即测试数据,不过要维护有方。
5. 测试用例中需要明显的验证手段,尤其是与数据库相关的功能测试。
查看(722)
评论(0)
收藏
分享
管理