- 热门文章:
- · 在Eclipse中使用JUnit(翻译)
- · 使用因果图设计测试用例
- · 嵌入式软件的基本测试方法
- · 如何成为一名优秀的软件测试工程师
- · 软件测试常用术语表
- · 软件测试知识帖(99-108)
- · 软件测试知识帖(57-70)
- · 软件测试知识帖(71-84)
- · 如何写毕业论文
- · 计算机专业毕业设计的类型
- · 实现一个系统设计生命周期
- · 文档编制的质量要求
上一篇:软件测试人员结构组成分析 >>
谈谈关于测试覆盖
谈谈关于测试覆盖
原创作者:jerry
转载需经作者同意
最后修改时间:2004-12-27
软件测试覆盖包括分支覆盖,语句覆盖以及条件覆盖,这是白盒测试中一个很基本的测试概念,但是最近和几位搞了多年测试的朋友谈及此事,大家都搞不大清楚。下面我通过一个例子来深入探讨一下这个问题:
我们首先来看一下这几些测试覆盖的定义:
定义一、语句覆盖:它要求被测程序的每一可执行语句在测试中尽可能都检验过;
定义二、分支覆盖:要求程序中所有判定的分支尽可能得到检验;
定义三、条件覆盖:当判定式中含有多个条件时,要求每个条件的取值均得到检验;
从这些定义我们可以很容易理解到语句覆盖是把程序中的所有的语句都给覆盖到;分支覆盖是把程序中每个分支都给覆盖到;条件覆盖是把判断条件中所有的条件都给覆盖到。
下面我们通过一个简单的例子来描述一下
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组测试用例
|
a |
b |
|
120 |
任意 |
|
200 |
400 |
语句覆盖:
1)在0处设置a=40,b 任意
将执行1,2,3,4,5
2)在0处设置a=200,b=400
将执行1,5,6,7
这里所有的语句都走到了,也就是说要达到语句覆盖率100%,要设计2组测试用例
|
a |
b |
|
40 |
任意 |
|
200 |
400 |
而在分支覆盖中语句3,4没有走到
条件覆盖:
由于第一个条件是if ((a<150)||(b<200)) 所以需要设计测试用例
|
a |
b |
备注 |
|
40 |
50 |
全都满足 |
|
160 |
150 |
a 不满足,b满足 |
|
40 |
250 |
a满足,b不满足 |
|
150 |
250 |
a,b都不满足 |
条件覆盖只要求把所有的条件都覆盖就可以了。
这样一来我们就把这几个概念搞得很清楚了。
顺便我在这里想说一句心里话,我们现在的不管是书籍还是网站上的文章都太倾向于理论了,而到实际运用上来就说不清楚了,我希望能够有更多又讲理论又讲实践的文章和书籍能够出现。
下一篇:在Eclipse中使用JUnit(翻译) >>
相关文章:
- · 程序文档合一与动态文档
- · 无形团队,有形管理
- · Microsoft Visio在信息管理…
- · Delphi源程序格式书写规范
- · C语言的代码规范探讨
- · 软件开发文档模板(1)
- · IEEE指南:开发系统需求规格
- · 国家计算机标准和文件模板(…
- · 国家计算机标准和文件模板(…
- · 典型系统分析
- · 项目方案实例 - ProSun2000项目方案
- · 使用UML为EAI建模
- · 系统约定:用UML描述工作流管理
- · UML 在商业活动建模中的应用
- · XMI 与 UML 合力推动产品开发
- · 使用 XML:UML、XMI 和代码生成,第 1 部分
- · 两段式OOAD开发大型3- tier系统
- · 如何绘制和分析业务流程(讲义)
- · 动态企业建模体系
- · 管理软件的“银弹”
- · 用UML进行有效业务建模(编译…
- · 使用用例捕获业务需求(业务需求的7个实践原则)
- · 需求分析
- · 用例场景,软件需求的关键
- · C#语言概述
- · Internet技术知识讲座----电子邮件E-mail
- · Internet技术知识讲座----HTTP协议
- · Internet技术知识讲座----TCP/UDP协议
- · Internet技术知识讲座----域名体系与域名系统
- · Internet技术知识讲座----TCP/IP协议
- · Internet技术知识讲座----Ip地址与地址解析
- · 试论软件设计原则
- · 源代码就是设计
- · 泛型编程与设计新思维
- · 用JAVA和XML构建分布式系统
- · 网站可用性设计指南
- · VC面向对象开发分析与设计实例解析
- · 从软件设计到应用系统实现
