[软件测试] 02 白盒 逻辑覆盖测试 习题
目录
软件测试期末复习系列
课件知识点整合:
PTA习题汇总:
提示:
篇幅较长,可以使用Ctrl+F
,在页面中快速查询关键词(或者你要找的题目)并跳转到指定的位置。
关键词:白盒测试,逻辑覆盖测试
单选题
-
以下不属于逻辑覆盖测试的是(C)
A. 语句覆盖
B. 判定覆盖
C. 基本路径覆盖
D. 条件覆盖
根据不同的测试要求,逻辑覆盖测试可以分为语句覆盖、判定覆盖(分支覆盖)、条件覆盖、判定-条件覆盖(分支-条件覆盖)、条件组合覆盖、路径覆盖六种覆盖测试方法。
注:路径覆盖和基本路径测试是两个容易混淆的概念,不存在”基本路径覆盖“这个概念。
它们的关系是:
白盒测试包含逻辑覆盖测试和基本路径测试等等,而路径覆盖属于逻辑覆盖测试中的一种。
-
在软件测试中,逻辑覆盖标准主要用于(B)
A. 黑盒测试
B. 白盒测试
C. 文档测试
D. 软件验收
-
下列不属于白盒测试技术的是(D)
A. 路径覆盖
B. 判定覆盖
C. 条件覆盖
D. 需求覆盖
-
在逻辑覆盖准则中,覆盖性最强的是(D)
A. 语句覆盖
B. 判定覆盖
C. 条件覆盖
D. 条件组合覆盖
各种测试覆盖率之间的关系
-
在下面所列举的逻辑测试覆盖中,测试覆盖最弱的是(C)
A. 条件覆盖
B. 条件组合覆盖
C. 语句覆盖
D. 判定/条件覆盖
-
下面的个人所得税程序中,满足语句覆盖测试用例是(D)
A. income=(800,1500,2000,2001)
B. income=(800,801,1999,2000)
C. income=(799,1499,2000,2001)
D. income=(799,1500,1999,2000)
-
条件组合覆盖是一种逻辑覆盖,满足条件组合覆盖级别的测试用例也满足(A)级别的测试。
A. 语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖
B. 判定覆盖、条件覆盖、判定/条件覆盖
C. 语句覆盖、判定覆盖、判定/条件覆盖
D. 路径覆盖、判定覆盖、条件覆盖、判定/条件覆盖
这道题D可以先排除,因为条件组合覆盖不包含路径覆盖。
而对于B和C,都是A的子集,也不能算错。不过这道选择题的出题人给出的答案是最充分的A选项。
-
下列有关测试过程V模型的说法中,正确的是(B)
A. 验收测试应确定成程序的执行是否满足软件设计的要求
B. 系统测试应确定系统功能和性能的质量特性是否达到系统要求的指标
C. 单元测试和集成测试应确定软件的实现是否满足用户需要或合同的要求
D. 集成测试在编码结束前就可以开始
-
下列不属于软件测试过程模型的一项是(A)
A. 瀑布模型
B. H模型
C. V模型
D. W模型
瀑布模型是软件生命周期模型
-
使用白盒测试方法时,确定测试数据应根据(A)和指定的覆盖标准。
A. 程序的内部逻辑
B. 程序的复杂程度
C. 使用说明书
D. 程序的功能
-
如果一个判定中的复合条件表达式为(A>1)or (b<=3),则为了达到100%的条件覆盖率,至少需要设计多少个测试用例(B)
A. 1
B. 2
C. 3
D. 4
条件覆盖:设计测试用例时应保证程序中每个复合判定表达式中,每个简单判定条件(子条件)的取真和取假情况至少执行一次。
根据条件覆盖的定义,我们可以只设计两个测试用例,满足两个子条件的布尔值分别为(True, False)和(False,True),就能实现100%的条件覆盖率。
-
通常可分为白盒测试和黑盒测试。白盒测试是根据程序的(A)来设计测试用例,黑盒测试是根据软件的规格说明来设计测试用例。
A. 内部逻辑
B. 功能
C. 输入数据
D. 应用范围
主观题
- 什么是黑盒测试,什么是白盒测试?
答:
简单版本
-
黑盒测试是忽略系统或部件的内部机制只集中于响应所选择的输入和执行条件产生的输出的一种测试。
-
白盒测试侧重于系统或部件内部机制的测试,类型分为分支测试、路径测试、语句测试。
详细版本
- 黑盒测试又称功能测试或数据驱动测试,是通过测试来检测每个功能是否都能正常使用。是通过软件的外部表现来发现缺陷和错误。黑盒测试把测试对象看成一个黑盒子,完全不考虑程序内部结构和处理过程,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。测试者仅依据程序功能的需求规范考虑,确定测试用例和推断测试结果的正确性,它是站在使用软件或程序的角度,从输入数据与输出数据的对应关系出发进行的测试。
- 白盒测试又称结构测试或逻辑驱动测试,指通过对程序内部结构的分析、检测来寻找问题。白盒测试把程序看成装在一个透明的白盒子里,也就是清楚了解程序结构和处理过程,检查是否所有的结构及路径都是正确的,检查软件的内部动作是否按照设计说明的规定正常进行。
- 运用逻辑覆盖的方法测试以下程序段:
上述程序段的流程图如下:
其中:
x=c+1;
为语句块1
x=x=c;
为语句块2
printf("a=%d,b=%d,c=%d,x=%d\n",a,b,c,x);
为语句块3
return x;
为语句块4
要求:根据给出的流程图按讲义上的格式分别写出6种逻辑覆盖(语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖、路径覆盖)的测试用例。
答:
- 简述逻辑覆盖测试的6种覆盖策略及各自的特点。
答:
根据不同的测试要求,覆盖测试可以分为语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖、路径覆盖。
① 语句覆盖就是设计足够的测试用例,使得被测试程序中的每条可执行语句至少被执行一次。
② 判定覆盖又称分支覆盖,就是设计足够的测试用例,使得被测试程序中的每个判断的“真”、“假”分支至少被执行一次。
③ 条件覆盖是指设计足够的测试用例,使得被测试程序中的每个判断语句中的每个逻辑条件的可能值(真、假)至少被满足一次。或者说设计足够多的测试用例,使得被测试程序中的每个逻辑条件的可能值(真、假)至少被满足一次。
④ 判定-条件覆盖是指设计足够的测试用例,使得被测试程序中的每个判断本身的判定结果(真、假)至少满足一次,同时,每个逻辑条件的可能值(真、假)也至少被满足一次。即同时满足100%判定覆盖和100%条件覆盖的标准。在保证完成要求的情况下,测试用例的数目越少越好。
⑤ 条件组合覆盖是指设计足够的测试用例,使得被测试程序中的每个判断的所有可能条件取值的组合至少被满足一次。其测试用例应该注意如下三点:(1)条件组合只针对同一个判断语句内存在多个条件的情况,让这些条件的取值进行笛卡儿乘积组合。(2)不同的判断语句内的条件取值之间无须组合。(3)对于单个条件的判断语句,只需要满足自己的所有取值即可。
⑥ 路径覆盖是指设计足够的测试用例,运行被测程序,覆盖程序中所有可能的路径。