黑白盒测试用例设计这一部分知识点是出题份量和频率是最高的一部分了,好好对待哦~

测试用例

基本概念:测试用例是一个关于具体测试步骤的文档,描述了测试的输入参数、条件、配置以及预期的结果

考题1

测试用例是测试使用的文档化的细则,规定如何测试软件某项功能或功能组合。测试用例应该包括下列 _____ 内容的详细信息。(答案: B)

  1. 测试用例目标和被测功能
  2. 测试环境和其他条件
  3. 测试数据和测试步骤
  4. 测试记录和测试结果

A. 1/2             B.1/2/3             C. 1/3/4             D. 1/2/3/4

考题2

软件测试的目的是 _____ 。(答案: C)

A. 表明软件的正确性             B. 评价软件质量

C. 尽可能发现软件中的错误             D. 判定软件是否合格

考题3

_____ 不属于功能测试用例构成元素。(答案: D)

A. 测试数据             B. 测试步骤             C. 预期结果             D. 实测结果

黑盒测试

黑盒测试方法中等价类划分法边界值分析法因果图法场景法考的比较多。

考题1

以下 _____ 方法不是黑盒测试用例设计方法。(答案: D)

A. 场景法             B. 边界值法             C. 因果图法             D. 路径法

等价类划分法

思想:把程序的输入域划分成若干个部分,然后从每个部分中选取少数代表性数据作为测试用例。

6条确定等价类的规则

  1. 在输入条件规定了取值范围或值得个数的情况下,可以确立一个有效等价类和两个无效等价类
  2. 在输入条件规定了输入值得集合或者规定了“必须如何”的条件下,可以确立一个有效等价类和一个无效等价类
    (例子:规定考试成绩为“优”、“良”、“中”、“及格”、“不及格”,则可以确定5个有效等价类和1个无效等价类 )
  3. 在输入条件是布尔量的情况下,可确定为一个有效等价类和一个无效等价类
  4. 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(遵守规则)和若干个无效等价类(不同角度违反规则)
  5. 如果某个输入条件规定处理的对象是表格,那么可以确定有一个有效等价类(表有一项或多项)和一个无效等价类(空表)
  6. 如果某个输入条件规定输入的数据是整形,那么可以确定有3个有效类(正整数、零、负整数)和一个无效等价类(非整数)

利用等价类设计测试用例的步骤

  1. 为每一个有效等价类和无效等价类编号
  2. 设计一个新的测试用例,以尽可能多地覆盖尚未覆盖的有效等价类。重复这个步骤,直至所有有效等价类都被覆盖为止
  3. 设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效测试用例,知道所有的无效等价类都被覆盖为止

注:

一个无效等价类对应一个测试用例

考题1

在某大学学籍管理信息系统中,假设学生年龄的输入范围为16~40,则根据黑盒测试中等价类划分技术,下面划分正确的是 _____ 。(答案: B)

A. 可划分为2个有效等价类,2个无效等价类
B. 可划分为1个有效等价类,2个无效等价类
C. 可划分为2个有效等价类,1个无效等价类
D. 可划分为1个有效等价类,1个无效等价类

考题2

用等价类划分法设计8位长数字类型用户名登录操作的测试用例,应该分成 _____ 个等价区间。(答案: C)

A. 2             B. 3             C. 4             D. 6

注:

8位 非8位 数字类型 非数字类型

边界值法

人们在长期工作经验中得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。

边界值分析是一种补充等价类划分的测试用例设计技术,它是选择等价类边界的测试用例。

边界值分析是在设计测试用例时,使用最多的一种黑盒测试方法。

规则

  1. 如果输入条件或输出条件规定了值得范围,则写出这个范围边界的测试用例,以及刚刚超出范围的测试用例。
    (例如:考试成绩范围为0~100,则测试数据为0,100,-1,101)
  2. 如果输入条件或输出条件规定了值得个数,则分别对值得最大个数、最小个数、以及稍大于最大个数、稍小于最大个数的状态写出测试用例。
    (例如:运动员的参赛项目为1~3项,则测试数据为1,3,4,其中0不合适,因此没有纳入里头)
  3. 如果程序的规格说明给出的输入域或输出域是有序集合(顺序文件、线性表、表格),则应选取集合的第一个元素和最后一个元素作为测试用例

考题1

用边界值分析法,假定X为整数,10 <= X <= 100,那么X在测试中应该取 _____ 边界值。(答案: B)

A. X=10, X=100             B. X=9, X=10, X=100, X=101            

C. X=10, X=11, X=99, X=100             D. X=9, X=10, X=50, X=100

考题2

下面为C语言程序,边界值问题可以定位在 _____ 。(答案: A)

1
2
3
4
5
int data(3);
int i;
for(i = 1; i <= 3; i++) {
data(i) = 100;
}

A. data(0)             B. Data(1)             C. Data(2)             D. Data(3)

注:

该考题注意两点:

一点:数组范围,数组从零开始计算

第二点: 字母大小写

考题3

_____ 测试用例设计方法既可以用于黑盒测试,又可用于白盒测试。(答案: A)

A. 边界值法             B. 基本路径法             C. 正交试验设计法             D. 逻辑覆盖法

考题4

假定X为整数类型变量。X >= 1并且X <= 10, 如果用边界值分析法,X在测试中应该取_____ 值。(答案: B)

A. 1,10             B. 0,1,10,11             C. 1,11             D. 1,5,10,11

因果图法(下午题会考)

思想:在程序规格说明的的描述中找出因(输入条件)和果(输出条件或程序状态的改变),通过因果图转换成判定表

因果图方法是根据输入与输出之间的因果关系来设计测试用例的

因果图导出测试用例的五个步骤

  1. 分析程序规格说明中的描述,判断哪些是原因,哪些是结果。原因常常是输入条件,结果是输出条件
  2. 分析程序规格说明的描述,根据其原因和结果之间的关系,画出因果图
  3. 根据程序规格说明给因果图画上约束条件
  4. 把因果图转换成判定表
  5. 为判定表中的每一列的表示情况设计测试用例

因果图的基本图形符号:Ci表示原因, Ei表示结果, 其中个结点表示状态,取0和1,0表示某状态不出现,1则表示某状态出现

因果图的基本图形符号

因果图的约束条件:原因有四种约束,结果则有一种约束

因果图的约束符号

  1. E: 表示a、b两个原因不会同时成立,两个钟最多有一个可能成立
  2. I: 表示a、b、c这3个原因中至少有一个必须成立
  3. O: 表示a和b当做必须有一个,且仅有一个成立
  4. R: 表示当a出现时,b必须出现
  5. M(屏蔽): 表示当a是1时,b必须是0,当a是0时,b的值不确定

考题1

黑盒测试中,____ 是根据输出对输入的依赖关系设计测试用例。(答案: C)

A. 等价类             B. 基本路径法             C. 因果图             D. 功能图法

注:

功能图法实际上是一种黑盒、白盒混合用例设计方法

下午题中可能存在的考试题型

  1. 应用中可能有多种输入条件,在什么情况下可采用因果图设计测试用例?

    答:有多个输入条件,且输出结果对输入条件有依赖关系

  2. 因果图导出测试用例的步骤?

    答: 见上5个步骤

  3. 分析输入条件和输出结果,填入表格中

  4. 将输入条件和输出结果填入对应的图表中

场景法(下午题会考)

用例场景用来描述流经用例的路径,从用例开始到结束遍历这条路径上所有基本流和备选流

基本流和备选流

基本流:直黑线,是经过用例最简单的路径

备选流:不同的彩色表示

每个经过用例的路径,可以确定不同的测试用例场景

使用场景法设计测试用例的基本步骤

  1. 根据规格说明,描述出程序的基本流和各项备选流
  2. 根据基本流和备选流确定场景
  3. 对每一个场景生成相应的测试用例,可以采用矩阵或决策表来确定和管理测试用例
  4. 对生成的测试用例进行复审,去掉多余或等价的测试用例,然后确定实际测试数据

因此上图5-10的用例场景:

  1. 场景1:基本流
  2. 场景2:基本流、备选流1;
  3. 场景3:基本流、备选流1、备选流2;
  4. 场景4:基本流、备选流3;
  5. 场景5:基本流、备选流3、备选流1;
  6. 场景6:基本流、备选流3、备选流1、备选流2;
  7. 场景7:基本流、备选流4;
  8. 场景8:基本流、备选流3、备选流4;

下午题中可能存在的考试题型

  1. 利用场景法设计测试用例,基本流用字母A表示,备选流用题干中描述对应编号表示
    题目中的流
    答:

    • 场景1: A
    • 场景2: A、B
    • 场景3: A、C
    • 场景4: A、B、C
    • 场景5: A、D
    • 场景6: A、B、D
  2. 填写测试用例表,下图是一个例子

    测试用例考点范例

  3. 可能和边界值分析一起出一个小考点

综合考题

对于业务流清晰的系统可以利用 场景法 贯穿整个测试用例设计过程,在用例中综合使用各种测试方法,对于参数配置类的软件,要用 正交试验法 选择较少的组合方式达到最佳效果,如果程序的功能说明中含有输入条件的组合情况,则一开始就可以选用 因果图法 和判定表驱动法。

白盒测试

主要考的是逻辑覆盖法和基本路径法

白盒测试主要考下午题为主,加油哦!

逻辑覆盖法

  1. 语句覆盖(SC):被测程序的语句至少被执行一次
  2. 判定覆盖(DC):程序中每个判定true/false至少都获得一次
  3. 条件覆盖(CC):程序中每个判定里的每个条件都要获得至少一次的true/false
  4. 条件判定覆盖(CDC):判定覆盖 & 条件覆盖
  5. 多条件覆盖(MCC):使得判定中条件的各种可能组合都至少出现一次
  6. 修正条件判定覆盖(MCDC):在各种条件组合中,其他所有条件恒定不变的情况下,对每个条件变量分别只取真假值一次;每个条件对于判定的结果值都是独立的

考题1

针对逻辑覆盖 _____ 叙述是不正确的。(答案: A)

A. 达到100%CC要求就一定能够满足100%DC的要求
B. 达到100%CDC要求就一定能够满足100%DC的要求
C. 达到100%MCDC要求就一定能够满足100%DC的要求
D. 达到100%路径覆盖要求就一定能够满足100%DC的要求

考题2

关于白盒测试的测试用例设计方法叙述,正确的是 _____ 。(答案: C)

A. 完成SC所需的测试用例数目一定多于完成DC所需的测试用例数目
B. 达到100%CC要求就一定能够满足100%SC的要求
C. 达到100%CDC要求就一定能够满足100%CC的要求
D. 任何情况下都能达到100%路径覆盖要求

考题3

针对逻辑覆盖有下列叙述,_____ 是不正确的。(答案: B)

A. 达到100%DC要求就一定能够满足100%SC的要求
B. 达到100%CC要求就一定能够满足100%SC的要求
C. 达到100%CDC要求就一定能够满足100%SC的要求
D. 达到100%MCDC要求就一定能够满足100%DC的要求

注:

满足DC、CDC、MCDC的要求一定满足SC,但是CC例外

CC不一定满足DC、CC

考题4

针对下列程序段,需要 _____ 个测试用例可以满足语句覆盖的要求。(答案: C)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
switch(value) {
case 0:
other = 30;
break;
case 1:
other = 50;
break;
case 2:
other = 300;
case 3:
other = other / value;
break;
default:
other = other * value;
}

A. 2             B. 3             C. 4             D. 5

注: 是不是选择了D选项,哈哈哈,小迷糊,和我一样一样的

case 2中没有break,因此他不会反悔other值,而是继续执行case 3,因此为4个测试用例

如果是ifelse语句,则为判定个数+1

考题5

针对以下C语言程序段,对于(MaxNum,Type)的取值,至少需要 _____ 个测试用例可以满足判定覆盖的要求。(答案: C)

1
2
3
4
5
6
7
8
9
10
11
while(MaxNum-- > 0) {
if(10 == Type){
x = y *2;
}else {
if(100 == Type){
x = y + 10;
}else {
x = y - 20;
}
}
}

A. 5             B. 4             C. 3             D. 2

考题6

针对程序段IF(A||B||C) THEN W=W/X,对于(A,B,C)的取值, _____ 测试用例能够满足MCDC的要求。(答案: D)

A. (F,T,T)(T,F,T),(T,F,F)(T,T,F)             B. (T,F,F)(T,T,F),(F,T,T)(F,F,F)

A. (T,F,F)(T,T,F),(F,T,T)(F,F,T)             B. (T,F,F)(F,T,F),(F,F,T)(F,F,F)

注:

每个判定中的条件都独立影响判定结果至少一次,因此该判定必须要有T or F一次,因此必须要有(F,F,F)

对于“或”表达式中的每个条件要是某个变量独立影响结果,需要其他条件都是F

对于“与”表达式中的每个条件要是某个变量独立影响结果,需要其他条件都是T

基本路径法

主要考圈复杂度和独立路径

圈复杂度:V(G) = e - n + 2; V(G) = 区域数 = 判定结点数 + 1

e:程序控制流程图中边的数量

n:程序控制流程图中结点的数量

独立路径:一条独立路径至少包含有一条在其他独立路径中从未有过的边的路径

考题1

在程序控制流图中,有8条边,6个节点,则控制流程图的环路复杂性V(G)d等于 _____ 。(答案: C)

A. 2             B. 4             C. 6             D. 8

注:环路复杂性 = 圈复杂度 = 线性无关的基本路径

主要题型:一般是给你一幅控制流程图,让你选择答案

也可能是在下午题中,你自己画控制流程图(对我来说这是难点),判断V(G),在根据V(G)写出基本路径

基本路径的粗略写法:

path1:。。。
path2:。。。
path3:。。。
。。。。

在根据这个写法编写测试用例,下面的测试路径写的就是这些path

Example:

控制流程图

测试用例名称 测试数据 预期结果 测试路径
CASE1 year=1001 leap=0 1-2-3-11-12
CASE2 year=1004 leap=1 1-2-4-5-10-11-12
CASE3 year=1100 leap=0 1-2-4-6-7-9-10-11-12
CASE4 year=2000 leap=1 1-2-4-6-8-9-10-11-12