当前位置:网站首页>白盒测试案例设计(我爷爷都能看懂)
白盒测试案例设计(我爷爷都能看懂)
2022-07-26 23:20:00 【软件测试李同学】
目录
今年早些时候在B站上学习了一下白盒设计这个理论知识,在这里做一下笔记。感谢黑马程序员的视频支持,不得不感慨,好老师都在企业啊。哈哈哈
白盒测试,又称结构测试、逻辑驱动测试或者基于程序代码内部构成的测试。所以,专业的测试,应该清楚的知道这几种说法都指的是一个意思。
问题:
- 白盒测试方法的概念及应用场景
- 白盒测试方法
- 用各种逻辑覆盖法来和设计白盒测试用例
- 使用基本路径法来设计白盒测试用例
内容:
- 白盒测试的基本介绍
- 白盒测试用例设计方法
- 1静态设计方法
- 2动态设计方法
一、白盒测试的概念及特点
1、什么是白盒测试
代码逻辑的测试
- 白盒测试,又称结构测试、逻辑驱动测试或基于程序代码内部构成的测试。此时,测试工程师需深入考察程序代码的内部结构、逻辑设计等。
- 对于白盒测试工程师来说,软件产品内部构成是透明的。

下列代码是”图书添加“功能页面对象检查功能函数。从白盒测试角度而言,测试工程师仅需关注此段函数所能实现的功能,无须关注该函数的外部功能特性

(代码来源书籍《软件测试技术基础教程-理论、方法、面试》)
2、白盒测试的特点
- 优点:代码覆盖率高
- 缺点:
- 覆盖所有代码路径难度大
- 业务功能可能覆盖不全
- 测试开销大
二、白盒测试设计方法
1、静态设计方法
- 桌面检查
- 代码审查
- 代码走查
- 代码扫描工具
2、动态设计方法
- 逻辑覆盖法
- 语句覆盖
- 判定覆盖
- 条件覆盖
- 判断条件覆盖
- 条件组合覆盖
- 路径覆盖
- 基本路径测试法
三、逻辑覆盖法
- 逻辑覆盖法:是通过程序逻辑结构的便利实现程序的覆盖。
- 覆盖率:是用来度量测试完整性的一个手段

1、语句覆盖
1、语句覆盖设计用例
- 语句覆盖:设计测试用例,是对程序中每条语句至少被执行一次。

例如:
- 案例代码中共有4条可执行语句
- 设计测试用例执行了3条,语句覆盖率为3/4=75%

2、语句覆盖法的局限性

2、判定覆盖
1、判定覆盖法设计用例
- 判定覆盖:也叫分支覆盖,设计测试用例,使得程序中的每个判断的”真“和”假“都至少被执行一次。即:程序中的每个分支至少执行一次。

例如:
- 案例代码中有判定2个,判定结果4个
- 设计测试用例执行了3个分支,分支覆盖率为3/4=75%

2、判定覆盖法的局限性
- 只要满足了判定覆盖标准就一定满足语句覆盖标准。

3、条件覆盖
1、条件覆盖法设计测试用例
- 条件覆盖:设计测试用例,使得判定中的每个条件至少有一次取真值,有一次取假值。
例如:
- 案例代码中有判定2个,条件3个,条件结果6个
- 设计测试用例执行了5个条件结果,条件覆盖率为5/6=83%

2、条件覆盖法的局限性


4、判定条件覆盖
1、判定条件覆盖法设计测试用例
- 判定条件覆盖:设计测试用例,使得被测试程序中的每个判断本身的判定结果(真假)至少满足一次,同时,每个逻辑条件的可能值(真假)也至少被满足一次。即同时满足100%判定覆盖和100%条件覆盖的标准。

例如:
- 案例代码中有判定2个,条件3个,判定结果4个,条件结果6个
- 设计测试用例执行了3个判定结果,5个条件结果,判定条件覆盖率为:(3+5)/(4+6)=80%
2、判定条件覆盖法的局限性

5、条件组合覆盖
1、条件组合覆盖法设计用例
- 条件组合覆盖:设计测试用例,使得被测试程序中的每个判定中条件结果的所有可能组合至少执行一次。

例如:
- 案例代码中有判定2个,条件3个(判定1有2个条件,判定2有1一个条件),判定1的条件组合为4个,判定2的条件组合为2个
- 设计测试用例执行了5个条件组合,条件组合覆盖率为:5/(4+2)=83%

2、条件组合覆盖法的局限性

6、路径覆盖
1、路径覆盖法设计测试用例
- 路径覆盖:设计测试用例,覆盖程序中所有可能的路径。

例如:
- 案例代码中共有4条路径
- 设计测试用例执行了3条路径,路径覆盖率为3/4=75%

2、路径覆盖法的局限性


四、基本路径测试法
- 基本路径测试法:在程序控制流程图的基础上,通过分析程序的环路复杂性,导出基本可执行路径集合,从而设计测试用例
- 基本路径测试法步骤:





五、总结

提问:基本路径和路径覆盖区别是什么?
路径覆盖的路经数是所有路径条数,基本路径覆盖的路经数是环路复杂度的值
边栏推荐
- Redis distributed lock implemented by annotation
- Towhee 每周模型
- 文章主要内容提取软件[基于NLP技术]
- Sort the three integers from large to small (introduce various methods in detail)
- JUC concurrent programming
- BigDecimal 的 4 个坑,你踩过几个?
- How does the whole network display IP ownership?
- 静态路由实验配置
- QT Chinese garbled constant newline ultimate solution
- C language - array, string handler, strlen, strcpy and strncpy, strcat and strncat, StrCmp and strncmp
猜你喜欢

【你了解Cache吗——全面理解高速缓冲存储器】
![[C language] relevant distinction between strlen and sizeof](/img/c0/c026818692a01c1867771434e90da8.png)
[C language] relevant distinction between strlen and sizeof

HCIP-第四天-OSPF路由协议

NAT network address conversion experiment

excel整行删除,图片一起删除

30岁被裁,我想明白的几件事....
![[after this article, learning the linked list is a smooth way]](/img/e7/cbdfecd1d98f91ecfeeb620b265f89.png)
[after this article, learning the linked list is a smooth way]

Area optimization of digital chips: detailed explanation of question 1 in the digital direction of the third "Huawei Cup" graduate innovation core competition

The pointer is really profound!!!

砺夏行动|源启数字化:既有模式,还是开源创新?
随机推荐
After working in Tencent testing post for 5 years, I was ruthlessly dismissed in July, trying to wake up my brother who was still paddling
[C language programming] branch structure
Prompt to leave the page
LeetCode->二分法(三)
Hcip day 3 Wan topology experiment
中断、信号、系统调用
30岁被裁,我想明白的几件事....
【降维打击,带你深度学习CPU(上)】
HCIP-第五天-OSPF扩展配置实验
C language - array, string handler, strlen, strcpy and strncpy, strcat and strncat, StrCmp and strncmp
【洋哥带你玩转线性表(一)——顺序表】
After ten years of testing, I want to say to my friends who are still confused: one thing is to do a good job in personal planning
【你了解Cache吗——全面理解高速缓冲存储器】
[after this article, learning the linked list is a smooth way]
JS 数组去重(含简单数组去重、对象数组去重)
On the first day of staying in the blog [for 80000]!
C language -- nesting of relational and logical operators, if statements, switch statements, and branch structures
创业3年,现在鹅厂,年收入百万+,作为软件测试前辈的一些建议....
TCP three handshakes and four disconnects
Greenplum【部署 08】数据库小版本升级流程及问题处理 Error: open-source-greenplum-db-6 conflicts with