admin管理员组

文章数量:1487745

软件测试:黑白盒测试的区别及白盒测试全面解析与应用

软件测试分类

黑盒测试与白盒测试的区别

黑盒测试

依据需求规格,内部实现不可见,关注功能实现

黑盒测试用例如果执行不到错误代码,问题就不会被发现

白盒测试

依据代码逻辑结构 ,需要看代码,关注代码

白盒测试又称为逻辑驱动测试,测试用例是依据选用的覆盖标准来确定的。

白盒测试方法根据程序内部逻辑结构,针对程序语句、路径、变量状态等来进行测试。

单元测试主要采用白盒测试方法,辅以黑盒测试方法。

白盒测试方法应用于代码评审、单元程序之中,而黑盒测试方法则应用于模块、组件等大单元的功能测试之中。

逻辑覆盖法

逻辑覆盖法用例设计步骤:

1)选择逻辑覆盖标准。

2)按照覆盖标准列出所有情况。

3)选择确定测试用例。

逻辑覆盖法以程序内部逻辑结构为基础的测试技术,它考虑的是测试数据对逻辑的覆盖

语句覆盖

设计若干个测试用例,使每个可执行语句至少执行一次

举例:

代码语言:javascript代码运行次数:0运行复制
int function(bool a,bool b,bool c)
{
int X;
X=0;
if(a&&(b||c)) 
X=1;
Return X;
}
判定覆盖

判定覆盖的作用是使真假分支均被执行,虽然判定覆盖比语句覆盖测试能力强,但仍然具有和语句覆盖一样的单一性

设计若干个测试用例,使程序中的每一个真分支和假分支至少执行一次

举例:

部分测试用例

条件覆盖

计若干个测试用例,使每个逻辑条件的可能取值至少执行一次

举例

部分测试用例

判定条件覆盖条件

设计若干个测试用例,使每个条件的所有可能取值至少执行一次,同时所有的判定可能结果也至少执行一次

举例

部分测试用例

条件组合覆盖

设计若干个测试用例,使每个判定的所有条件组合情况至少出现一次

举例

修正条件判定覆盖
  • 程序中的每个入口点和出口点都至少被调用一次
  • 程序中的每个条件都至少取得所有可能结果一次
  • 并且决策中的每个条件都被证明通过在保持所有条件不变的同时改变该条件来独立地影响决策的结果。

举例

基本路径测试法

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

设计出的测试用例要保证在测试中程序的每一条可执行语句至少执行一次

基本路径测试法的步骤

1)导出程序的控制流图;

绘制程序流程图,导出控制流图

2)计算程序的圈复杂度;

计算圈复杂度任选一个方法即可

3)确定线性独立路径集合;

4)生成测试用例。

测试用例

输入

预期结果

a

b

c

2

3

6

非三角形

2

3

4

一般三角形

2

2

3

等腰三角形

2

2

2

等边三角形

控制流图的图形符号
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2024-10-18,如有侵权请联系 cloudcommunity@tencent 删除白盒测试测试程序软件测试设计

本文标签: