黑盒测试】【白盒测试】白盒测试有哪些方法

2020-11-23 11:04发布

14条回答
是开心果呀 - 热爱生活
2楼 · 2020-11-23 11:25

白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、Z路径覆盖、程序变异。

小猪仔
3楼 · 2020-11-23 13:53

白盒测试的方法:大致分为静态方法和动态方法两大类。

A. 静态分析: 
  是一种不执行程序而进行测试的技术。静态分析的主要目的是检查软件的表示和描述是否一致,没有冲突或者没有歧义。

B. 动态分析: 
  当软件系统在模拟或真实的环境中执行前、过程中和执行后,对其行为分析。它显示了一个系统在检查状态下是否正确。在动态分析技术中,最重要的技术是路径和分支测试。下面要介绍的六种覆盖测试方法属于动态分析方法。

符号说明:

  ^ 代表逻辑运算符 && 或者 || 
   
  T 代表 True F 代表 False 
   
  A / B 代表条件表达式 
  

(1)语句覆盖

使程序中的每个可执行语句都能执行一次的测试用例

测试用例条件: A ^ B = T 
语句覆盖

(2)判定覆盖(分支覆盖)

  对于判断语句,在设计用例的时候,要设计判断语句结果为True和False的两种情况 
   
测试用例条件: 
       A ^ B = T 
       A ^ B = F 
       判定覆盖 
  

(3)条件覆盖

  设计用例时针对判断语句里面每个条件表达式true 和 false各取值一次,不考判断语句的计算结果

测试用例条件: 
       A=T     A=F 
       B=T     B=F 
       条件覆盖

(4)判定条件覆盖(分支条件覆盖)

  设计测试用例时,使得判断语句中每个条件表达式的所有可能结果至少出现一次,每个判断语句本身所有可能结果也至少出现一次。

测试用例条件: 
       A ^ B = T    A ^ B = F 
       A=T     A=F 
       B=T     B=F 
分支条件覆盖

(5)条件组合覆盖

设计测试用例时,使得每个判断语句中条件结果的所有可能组合至少出现一次

测试用例条件: 
       A= T    B= T 
       A= T    B= F 
       A= F    B= T 
       A= F    B= F 
条件组合覆盖

(6)路径覆盖

设计测试用例时,覆盖程序中所有可能的执行路径

优点:这种覆盖方法可以对程序进行彻底的测试用例覆盖,比前面讲的五种方法覆盖度都要高。

缺点:于路径覆盖需要对所有可能的路径进行测试(包括循环、条件组合、分支选择等),那么需要设计大量、复杂的测试用例,使得工作量呈指数级增长。路径覆盖虽然是一种比较强的覆盖,但未必考虑判断语句中条件表达式结果的组合,并不能代替条件覆盖和条件组合覆盖。


魏魏姐
4楼 · 2020-11-23 13:58

白盒测试技术一般可分为:静态分析和动态分析两种技术;

静态分析:1、检查程序内部的完整性和一致性;

2、考虑预定义规则;

3、把程序和其相应的规格或文档进行比较。

静态分析主要包含手工的“检视”和“走读”,自动的“静态检验”、“语法分析器”、“符号执行器”;静态分析不需要软件的执行,动态分析是需要执行系统的测试方式,主要包括:“测试覆盖率分析”、“跟踪”、“调整”和“模拟和断言检查”。


那些年很冒险的梦。
5楼 · 2020-11-23 14:12

一般可分为:静态分析和动态分析两种技术。


白盒测试技术一般可分为:静态分析和动态分析两种技术;


静态分析:


1、检查程序内部的完整性和一致性。


2、考虑预定义规则。


3、把程序和其相应的规格或文档进行比较。


静态分析主要包含手工的“检视”和“走读”,静态分析不需要软件的执行。


动态分析是需要执行系统的测试方式,主要包括:“测试覆盖率分析”、“跟踪”、“调整”和“模拟和断言检查”。


浅浅77
6楼 · 2020-11-23 14:42

(1)语句覆盖

由控制流图可知:测试用例需要9组

a.      a=3,b=2,c=1

路径经过为:1,3,4,5,6,7,8,10,11,16.38,39

b.     a=2,b=1,c=2

路径经过为:1,3,4,5,6,7,8,10,12,13,16.38,39

c.      a=2,b=1,c=3

路径经过为:1,3,4,5,6,7,8,10,12,15,16.38,39

d.     a=2,b=2,c=1

路径经过为:1,3,4,5,6,7,8,18,20,21,27.38,39

e.      a=b=c=2

路径经过为:1,3,4,5,6,7,8,18,20,23,24,27,38,39

f.      a=2,b=2,c=3

路径经过为:1,3,4,5,6,7,8,18,20,23,26,27,38,39

g.     a=1,b=3,c=2

路径经过为:1,3,4,5,6,7,8,18,29,30,37, 38,39

h.     a=1,b=2,c=2

路径经过为:1,3,4,5,6,7,8,18,29,32,33,37, 38,39

i.       a=1,b=2,c=3

路径经过为:1,3,4,5,6,7,8,18,29,32,35,37, 38,39

 

(2)判断覆盖

由控制流图可知:测试用例需要9组

a.      a=3,b=2,c=1

路径经过为:1,3,4,5,6,7,8,10,11,16.38,39

b.     a=2,b=1,c=2

路径经过为:1,3,4,5,6,7,8,10,12,13,16.38,39

c.      a=2,b=1,c=3

路径经过为:1,3,4,5,6,7,8,10,12,15,16.38,39

d.     a=2,b=2,c=1

路径经过为:1,3,4,5,6,7,8,18,20,21,27.38,39

e.      a=b=c=2

路径经过为:1,3,4,5,6,7,8,18,20,23,24,27,38,39

f.      a=2,b=2,c=3

路径经过为:1,3,4,5,6,7,8,18,20,23,26,27,38,39

g.     a=1,b=3,c=2

路径经过为:1,3,4,5,6,7,8,18,29,30,37, 38,39

h.     a=1,b=2,c=2

路径经过为:1,3,4,5,6,7,8,18,29,32,33,37, 38,39

i.       a=1,b=2,c=3

路径经过为:1,3,4,5,6,7,8,18,29,32,35,37, 38,39

 

(3)条件覆盖

整个测试所覆盖的条件:

1.a>b 真为T1,假为F1

2.a>c 真为T2,假为F2

3.a=c 真为T3,假为F3

4.a=b 真为T4,假为F4

5.b>c 真为T5,假为F5

6.b=c 真为T6,假为F6

测试用例

覆盖条件

具体条件取值

a=3,b=2,c=1

T1,T2

a>b,a>c

a=2,b=1,c=2

T1, F2,T3

a>b ,a=c

a=2,b=1,c=3

T1,F2,F3

a>b,a<=c,

a=2,b=2,c=1

F1,T4,T2

a=b,a>c

a=b=c=2

F1,T4,F2,T3

a=b=c

a=2,b=2,c=3

F1,T4,F2,F3

a=b,a

a=1,b=3,c=2

F1,F4,T5

ac

a=1,b=2,c=2

F1,F4,F5,T6

a

a=1,b=2,c=3

F1,F4,F5,F6

a

 

(4) 判断/条件覆盖

 

a.a=3,b=2,c=1

覆盖路径经过为:1,3,4,5,6,7,8,10,11,16.38,39

覆盖条件:T1,T2

b.a=2,b=1,c=2

路径经过为:1,3,4,5,6,7,8,10,12,13,16.38,39

覆盖条件:T1, F2,T3

c.a=2,b=1,c=3

路径经过为:1,3,4,5,6,7,8,10,12,15,16.38,39

覆盖条件:T1,F2,F3

d . a=2,b=2,c=1

路径经过为:1,3,4,5,6,7,8,18,20,21,27.38,39

覆盖条件:F1,T4,T2

e.a=b=c=2

路径经过为:1,3,4,5,6,7,8,18,20,23,24,27,38,39

覆盖条件:F1,T4,F2,T3

f.a=2,b=2,c=3

路径经过为:1,3,4,5,6,7,8,18,20,23,26,27,38,39

覆盖条件:F1,T4,F2,F3

g.a=1,b=3,c=2

路径经过为:1,3,4,5,6,7,8,18,29,30,37, 38,39

覆盖条件:F1,F4,T5

h. a=1,b=2,c=2

路径经过为:1,3,4,5,6,7,8,18,29,32,33,37, 38,39

覆盖条件:F1,F4,F5,T6

i.a=1,b=2,c=3

路径经过为:1,3,4,5,6,7,8,18,29,32,35,37, 38,39

覆盖条件:F1,F4,F5,F6

(5)  条件组合覆盖

所有可能的条件组合:

编号

覆盖条件

判定条件

具体条件

1

T1,T2

8取Y,10取Y

a>b,a>c

2

T1, F2,

8取Y,10取N,

a>b,a<=c

3

F2,T3

10取N,12取Y

a=c

4

F2,F3

10取N,12取N

a

5

F1,T4

8取N,18取Y

a=b

6

F1,F4

8取N,18取N

a

7

T4,T2

18取Y,20取Y

a=b,a>c

8

T4,F2

18取Y,20取N

a=b,a<=c

9

F2,T3

20取N,23取Y

a=c

10

F2,F3

20取N,23取N

a

11

F4,T5

18取N,29取Y

ac

12

F4,F5

18取N,29取N

a

13

F5,T6

29取N,32取Y

b<=c,b==c

14

F5,F6

29取N,32取N

b

1.a>b 真为T1,假为F1

2.a>c 真为T2,假为F2

3.a=c 真为T3,假为F3

4.a=b 真为T4,假为F4

5.b>c 真为T5,假为F5

6.b=c 真为T6,假为F6

 

 

测试用例:

测试用例

覆盖条件

覆盖组合

具体条件取值

a=3,b=2,c=1

T1,T2

1

a>b,a>c

a=2,b=1,c=2

T1, F2,T3

2,3

a>b ,a=c

a=2,b=1,c=3

T1,F2,F3

2,4

a>b,a<=c,

a=2,b=2,c=1

F1,T4,T2

5,7

a=b,a>c

a=b=c=2

F1,T4,F2,T3

5,8,3

a=b=c

a=2,b=2,c=3

F1,T4,F2,F3

5,8,4

a=b,a

a=1,b=3,c=2

F1,F4,T5

6,11

ac

a=1,b=2,c=2

F1,F4,F5,T6

6,12,13

a

a=1,b=2,c=3

F1,F4,F5,F6

6,12,14

a

 

(7)基本路径测

a.      a=3,b=2,c=1

路径经过为:1,3,4,5,6,7,8,10,11,16.38,39

b.     a=2,b=1,c=2

路径经过为:1,3,4,5,6,7,8,10,12,13,16.38,39

c.      a=2,b=1,c=3

路径经过为:1,3,4,5,6,7,8,10,12,15,16.38,39

d.     a=2,b=2,c=1

路径经过为:1,3,4,5,6,7,8,18,20,21,27.38,39

e.      a=b=c=2

路径经过为:1,3,4,5,6,7,8,18,20,23,24,27,38,39

f.      a=2,b=2,c=3

路径经过为:1,3,4,5,6,7,8,18,20,23,26,27,38,39

g.     a=1,b=3,c=2

路径经过为:1,3,4,5,6,7,8,18,29,30,37, 38,39

h.     a=1,b=2,c=2

路径经过为:1,3,4,5,6,7,8,18,29,32,33,37, 38,39

i.       a=1,b=2,c=3

路径经过为:1,3,4,5,6,7,8,18,29,32,35,37, 38,39

 

每个测试用例对应的路径:

路径1:  1-3-4-5-6-7-8-10-11-16-38-39

路径2: 1-3-4-5-6-7-8-10-12-13-16-38-39

路径3: 1-3-4-5-6-7-8-10-12-15-16-38-39

路径4: 1-3-4-5-6-7-8-18-20-21-27-37-38-39

路径5: 1-3-4-5-6-7-8-18-20-23-24-27-37-38-39

路径6:1-3-4-5-6-7-8-18-20-23-26-27-37-38-39

路径7: 1-3-4-5-6-7-8-18-29-30-36-37-38-39

路径8:1-3-4-5-6-7-8-18-29-32-33-36-37-38-39

路径9:1-3-4-5-6-7-8-18-29-32-35-36-37-38-39

圈复杂度V(G)=判断节点数+1=9+1=10

yjh
7楼 · 2020-11-23 15:55

白盒测试的测试方法中运用最为广泛的是基本路径测试法。基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。


白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。


有点好奇
8楼 · 2020-11-23 17:18

 2.1 代码检查法:代码检查方式(桌面检查,代码审查,走查),代码检查项目,编码规范,代码检查规则,缺陷检查表。

2.2 静态结构分析法。

2.3 静态质量试题法。 

2.4 逻辑覆盖法 语句覆盖:选择足够多的测试数据,使测试程序中每条语句至少执行一次。判定覆盖(分支覆盖):设计足够多的测试用例,使用得程序中的每个判定至少都获得一次“真值”或“假值”;或者说使用得程序中的每一个取“真”分支和取“假”分支至少经历一次。条件覆盖:构造一组测试用例,使得每一判定语句中每个逻辑条件的可能值至少满足一次。条件判定组合覆盖:设计足够的测试用例,使用得判定中每个条件的所有可能(真/假)至少出现一次,并且每个判定本身的判定结果(真/假)也至少出现一次。多条件覆盖:设计足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次。

2.5 基本路径测试法程序的控制流图(学会通过看程序块画出控制流图)。程序环路复杂性(即McCabe复杂性度量)环路复杂性V(G)=判断结点数+1.   基本路径测试法步骤: 以详细设计或源代码作为基础,导出程序的控制流图; 计算得到的控制流图G的环路复杂性V(G); 确定线性无关的路径的基本集;   生成测试用例,确保基本路径集中每条路径的执行. 

2.6 其他白盒测试方法:域测试,符号测试,Z路径覆盖,程序变异 不错 呵呵 学习了

寂静的枫林
9楼 · 2020-11-25 15:54

大致分为静态方法和动态方法两大类。静态分析是一种不执行程序而进行测试的技术。静态分析的主要目的是检查软件的表示和描述是否一致,没有冲突或者没有歧义。 动态分析是当软件系统在模拟或真实的环境中执行前、过程中和执行后,对其行为分析。它显示了一个系统在检查状态下是否正确。在动态分析技术中,最重要的技术是路径和分支测试。下面要介绍的六种覆盖测试方法属于动态分析方法。


相关问题推荐

  • 回答 3

    可以进行。首先,时间允许的话可以使用思维导图软件如xmind绘出项目的组织架构图,然后根据架构图列出测试点,进行测试。其次,可以根据测试经验优先测试核心的功能和业务流程及容易出现问题的模块。最后,涉及到人生及财产安全相关的必须是要优先测试的。...

  • 回答 7
    已采纳

    在编程中,布尔量指一个真或假状态。通常它们分别用0,1或1,-1来表示,这和编程语言有关。具体来说当布尔量为真的时候表示一个表达式或判断成立,否则这个式子或判断不成立。你把它理解为成立或不成立就行了。...

  • 回答 1

    1)输入条件规定取值范围,则卡定义一个有效等价类和两个无效等价类。例如学生成绩范围是0~100,则一个有效类:0

  • 回答 6

    1,先确定等价类别2,找出有效等价类和无效等价类3,边界值找好,尽可能多的找的会有重复的数据4,有效等价类尽可能条件符合的归一起不要重复5,无效等价类单独写开6,写好测试用例7,执行测试用例...

  • 回答 4

    应用场景:只要有数据输入的地方就可以采用等价类划分法。按照需求,把无穷多的数据进行分类,从中挑选出代表性数据进行测试。具体操作:(1)明确测试对象(测试什么)(2)划分等价类(按照需求分有效、无效)(3)细化等价类(有效、无效进行细化)(4)建...

  • 回答 10

       采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。

  • 回答 4

    我来说说在公司里面做功能测试一般做些什么,一个项目交测,首先要开需求评审会,讨论需求是否合理,若不合理应该怎样改进,确定交测时间。研发部和测试部在需求评审会上意见一致后,研发部将需求发出来,测试部来确定测试测试用例编写时长。测试用例写好后,...

  • 回答 3
    已采纳

    需要的,白盒测试是测试重要的一部分,其实测试当中很大一部分错误都是白盒测试检测出来的,另外白盒测试作为测试的最早期阶段,发现bug的修改代价是最小的,所有白盒测试同样重要...

没有解决我的问题,去提问