设计尽量少的用例,达到对软件功能尽量多的覆盖
(现在有去用例化的趋势,用思维导图代替)
1.等价类和边界值
2.因果图和判断表
3.正交实验法(需要正交表,忽略)
4.状态图和场景法
等价类举例:
假定我们要测试一个两位整数加法器,其功能需求如下。
输入两个两位整数,相加后,结果正确显示。要求如下:
i.输入的整数值在 -99到99之间(包含-99和99)
ii.非法输入应被拒绝,并显示错误信息
根据要求,可以大致画出以下的等价类图
转成以下测试用例
还可以继续细化:<-99、-99≤数值≤0、0≤数值≤99、数值>99
边界值举例:
使用边界值时,需要注意以下问题。
首先,应当选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,重点测试最后一个肯定合法的数据和刚刚超过边界的非法数据
即,若输入范围为0~50
则,测试用例应包含-1、0、1、49、50、51
因果图举例:
等价类和变价值虽然简单,但是他们一般只考虑单个输入和输出之间的关系
因果图是一种形式化的语言,他不仅描述了原因和结果之间的关系,也描述了各个原因之间、各个结果之间复杂关系的组合。在这里,因就是程序输入的条件,而果就是程序的输出
因果图会用到布尔逻辑运算符(恒等、与、或、非、与非、或非)和约束关系
布尔逻辑运算符:
1.恒等:如果原因为真,那么结果一定为真
2.或:两个原因中有一个为真时,结果就为真
3.与:只有两个原因都为真,结果才为真
4.非:只有原因为假时,结果才为真
5.或非:先或后非
6.与非:先与后非
在因果图中除了结果对原因的依赖之外,各个输入状态之间还可能存在某些依赖关系,称为约束。总共五种约束
E约束:即异约束、排他性约束,原因不能同时为真,但可以同时为假。即一个人不能既是初中生又是高中生但是可以两个都不是
I约束:即或约束、包含性约束,各原因中总有一个为真,也可以同时为真。即你去商场结账可以现金可以刷卡也可以两者合并,但不可以不结账
O约束:即唯一性约束,有且只有两个原因中的一个为真。性别要么男要么女,不会存在不男不女
R约束:即必要性约束,当原因a为真时,原因b必须同时为真,反之则不成立。即某人具有硕士学历(原因a),同时也具有本科学历(原因b)
M约束(结果约束):即强制约束,如果结果a为真,则结果b一定为假;如果结果a为假,则结果b状态不一定。即如果无法输入登录密码(输出a),安全控件运行正常(输出b)。如果无法输入密码,那么控件一定有问题。反过来如果可以输入密码,则不能确定安全控件一定正常
因果图测试涉及步骤:1.分析被测应用(输入和输出)、2.确定因果逻辑关系、3.确定约束关系、4.把因果图转化为判定表、5.根据约束条件简化判定表、6.涉及测试用例
因果图应用:
本节我们采用简化版的“货币转换程序”作为案例,假定系统需求如下。
i.输入需要转换的货币类型,只容许输入美元和日元
ii.输入需要转换的人民币金额,必须输数字
iii.如果输入正确,显示对应的外币金额
iv.如果输入货币类型错误,提示“输入货币类型错误”
v.如果输入的需要转换的人民币金额错误,提示“人民币金额输入错误”
具体步骤如下:
(1)分析确定原因(输入)和结果(输出)
从两个输入的角度看,初步分析原因和结果,如下。
原因两个:
c1:输入货币类型。根据需求,可以对c1进行细分
c11:输入美元
c12:输入日元
c2:输入人民币金额(金额)
结果三个:
e1:显示对应外币金额
e2:提示“输入货币类型错误”
e3:提示“人民币金额输入错误”
(2)确定逻辑关系
根据需求:
输入货币类型正确(c1),输入人民币金额正确(c2),逻辑与的结果是显示对应的外币金额(e1)
输入货币类型不正确(c1),逻辑非的结果提示“输入货币类型错误”(e2)
输入人民币金额不正确(c2),逻辑非的结果提示“人民币金额输入错误”(e3)
输入货币类型正确(c1)是由输入美元正确(c11)和输入日元正确(c12)逻辑或构成的
(3)确定约束关系
由此得到的因果图如下,
从需求可知,原因c11和c12不可能同时为真,但可以同时为假,因此满足E约束,这3个结果之间没有约束。带约束的因果图如下:
(4)把因果图转换为判定表
(5)根据约束条件简化判定表并给出结果
(6)设计测试用例
状态图和场景法:
事件触发时的情景便形成了场景,而对事件不同的触发顺序和处理结果就形成了事件流
其他的测试类别:
文档测试与安装测试
兼容性测试(纵向兼容性[以往版本]、横向兼容性[其他软件的数据])与易用性测试
原文:https://www.cnblogs.com/paul2625/p/9383774.html