设计测试用例的方法——黑盒测试3
-因果图
1)定义:
*提供了一个把规格转化为判定表的系统化方法,从该图中可以产生测试数据。
其中,原因是表示输入条件,结果是对输入执 行的一系列计算后得到的输出
*2)作用*
*因果图是对组合情况设计用例
*因果图方法最终生成的就是判定表。它适合于检查软件输入条件的各种组合情况
3)
a.因果图中的约束
在实际问题中输入状态相互之间、输出状态相互之间可能存在某些依赖关系,称为“约束”。对于输入条件的约束有E、I、O、R四种 约束,对于输出条件的约束只有M约束。
*ØE约束(异):a和b中最多有一个可能为1,即a和b不能同时为1。
*ØI约束(或):a、b、c中至少有一个必须为1,即 a、b、 c不能同时为0。
*ØO约束(唯一):a和b必须有一个且仅有一个为1。
*ØR约束(要求):a是1时,b必须是1,即a为1时,b不能为0。
*ØM约束(强制):若结果a为1,则结果b强制为0。
4)因果图转换判定表的方法:
1. 将因果图中的所有条件(因)填入判定表 的条件桩中;
2. 将因果图中的所有动作(果)填入判定表 的动作桩中;
3. 根据因果图确定各个条件组合对应的动作,并且确定判定表中各个规则的条件项和动作项,
在需要时优化判定表。
5)因果图的步骤:
1.把大的系统规格划分解成可以测试的规格片段
2.分析分解后待测的系统规格,找出哪些是原因,哪些是结果
3.画出因果图
4.把因果图转换成判定表
5.简化判定表
6.用判定表中的每一列生成测试用例
6)因果图的优点/缺点
*优点:
1. 等价类法尽管各个输入条件可能出错的情况都考虑 到了,但是多个输入条件组合起来出错的情况却被 忽略了
2. 因果图法能够帮助我们按照一定步骤,高效的选择 测试用例,设计多个输入条件组合用例
3. 因果图分析还能为我们指出,程序规格说明描述中 存在什么问题
*缺点:
1. 输入条件与输出结果的因果关系,有时难以从软件 需求规格说明书得到
2. 即使得到了这些因果关系,也会因为因果关系复杂 导致因果图非常庞大,测试用例数目及其庞大
案例1:
一个处理单价为5角钱的饮料的自动售货机。其规格说明如下: 若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币
案例2:
某软件规格说明书包含这样的要求:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。
解答:
根据题意,原因和结果如下:
原因:
1——第一列字符是A;
2——第一列字符是B;
3——第二列字符是一个数字。
结果:
21——修改文件;
22 ——给出信息L;
23——给出信息M。
其对应的因果图如下:
11为中间节点;考虑到原因1和原因2不可能同时为1,因此在因果图上施加E约束。
-正交表
1)正交实验
正交试验设计法,是从大量的试验点中挑选出适量的、有代表性的点,应用依据迦罗瓦理论导出的“正交表”,合理的安排试验的一种科学的试验设计方法
2)正交常用的术语
*指标:通常把判断试验结果优劣的标准叫做试验的指标
*因子:所有影响试验指标的条件
*水平值:影响试验因子的取值
*公式:实验数=因子*(水平数-1)+1
4=3*(2-1)+1
实验数是4
*映射正交表
3)正交表的特点
*1.整齐可比性
在同一张正交表中,每个因素的每个水平出现的次数是完全相同的由于在试验中每个因素的每个水平与其它因素的每个水平参与试验的机率是完全相同的,这就保证在各个水平中最大程度的排除了其它因素水平的干扰。
*2.均衡分散性
在同一张正交表中,任意两列(两个因素)的水平搭配(横向形成的数字对)是完全相同的。这样就保证了试验条件均衡地分散在因素水平的完全组合之中,因而具有很强的代表性,容易得到好的试验条件。
4)用正交表设计测试用例的步骤,
*1.有哪些因素(变量或条件)
*2.每个因素有哪几个水平(变量或条件的取值)
*3.为了满足整齐可比性,选择一个合适的正交表
*4.把变量的值映射到表中(建议第1行是全真或全假)
*5.把每一行的各因素水平的组合做为一个测试用例加上你认为可疑且没有在表中出现的组
正交的原则:两两组合
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现