白盒测试的用例设计方法
A. 静态:
- 桌面检查(交叉检查)
- 代码审查(作者讲解,注重代码规范 --> 会议)
- 代码走查(与会人输入数据,查看程序走向 --> 会议)
- 代码扫描工具(自动化)
B. 动态
a. 逻辑覆盖法
逻辑覆盖法:是通过对程序逻辑结构的遍历实现程序的覆盖。
覆盖率:是用来度量测试完整性的一个手段。
-
语句覆盖:设计测试用例,使得程序中每条语句至少被执行一次。
注:语句覆盖不能准确的判断运算中的逻辑关系错误。
-
判定覆盖:也叫分支覆盖,设计测试用例,使得程序中的每个判断的“真"和“假"都至少被执行一次。
即:程序中的每个分支至少执行一次。(判定覆盖>语句覆盖)
注:判定覆盖会忽略条件中取或(or)的情況。
-
条件覆盖:设计测试用例,使得判定中的每个条件至少有一次取真/假值。
注:条件覆盖比判定覆盖,增加了对判定中所有条件的测试,但条件覆盖并不能保证判定覆盖。
-
判定条件覆盖:设计测试用例,使得被测试程序中的每个判断本身的判定结果(真假)至少满足一次,同时,每个逻辑条件的可能值(真假)也至少被满足一次。即同时满足100%判定覆盖和100%条件覆盖的标准。
注:满足判定-条件覆盖标准一定能够满足条件覆盖、判定覆盖和语句覆盖。
注:判定覆盖会忽略条件中取或(or)的情況。
-
条件组合覆盖:设计测试用例,使得被测试程序中的每个判定中条件结果的所有可能组合至少执行一次。
注:条件组合覆盖不能保证所有路径被执行。
-
路径覆盖:设计测试用例,覆盖程序中所有可能的路径。
b. 基本路径测试法:
-
基本路径测试法:在程序控制流图的基础上,通过分析程序的环路复杂性,导出基本可执行路径集合,从而设计测试用例。
-
计算程序的环路复杂度V(G):
# 方法有三种: #1. 流图中区域的数量对应于环型的复杂性。 #2. V(G)=E-N+2,E是流图中边的数量,N是流图中节点的数量。 #3. V(G)=P+1,P是流图G中判定节点的数量。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端