四步测试设计法
四步测试设计法:
- 建模:确定模块或功能的类型
- 设计基础用例:不同模型采用不同分析方法,设计基础用例
- 补充测试数据:为基础用例补充测试数据
- 扩展:根据经验、其它类似产品历史缺陷、客诉补充用例
建模:将模块或测试点划分已以下四类中的一种或组合类
流程类:将功能点分成一些步骤,会因为不同的输入产生不同的处理。
参数类:测试点包含的是参数,参数的个数是有限的,系统对不同参数值有不同的处理。
数据类:测试点主要包含数据,如用户名、IP地址配置合法校验等;数据的取值是范围,系统对合法的数据作出的处理相同。
组合类:将上述三类可以组合在一起的,为组合类。
实际应用中,流程类会结合参数或数据类进行设计。
流程类的流程图画法:
- 画出主要步骤
- 确定每个步骤的输入
- 区别判断和过程
- 画出完整流程图
流程类使用路径分析法进行覆盖,如:覆盖类型:语句覆盖、分支覆盖、全覆盖、线性无关覆盖。
- 语句覆盖:保证每条语句最少被执行一次;(过程、判断即语句)
- 分支覆盖(判定覆盖):每个判定的每种结果最少执行一次;
- 全覆盖:100%覆盖所有可能的路径。采用排列组合算法,得出“全路径”
一共有三个判断,所以一共有2的三次方条路,则八条路。
- 最小线性无关覆盖:保证流程中的每个路径片段最少执行一次。
保证流程中的每个路径片段最少执行一次。
最小线性无关覆盖:(三等式+算法)
三个等式计算流程图的路径数:(三等式等效,计算结果应该相同)
等式1:边数-节点数+2
等式2:判定数+1
等式3:区域数+1
遇到判断若“否”已执行,则执行“是”,继续下一个判断;
直到遇到判断“否”未执行,则优先执行“否”,后续判断全部执行“是”;
区域的概念:被“边”、“判定”、“过程”完全包围起来的最小一片区域。
3+1=4
四种覆盖算法总结:
覆盖强度:语句覆盖<条件覆盖<最小线性无关覆盖<全覆盖;
可根据功能的重要等级选择使用哪种覆盖;
新需求流程图分析完后,可采用最小线性无关覆盖;
特别重要的功能,再具体分析,是否采用全覆盖。
- 通过流程图写出基本测试用例
|
路径序号 |
路径符号 |
路径描述 |
简单描述,进行拆分(基础用例) |
|
1 |
A-b-e-h-i |
客户成功输入账号密码和成功验证身份,登陆成功 |
客户成功输入账号密码,点击登陆,成功进入验证界面,手机号格式输入正确,验证码输入正确,成功登录 |
|
2 |
A-c-d-a-b-e-h-i |
客户输错一次账号和密码,成功验证身份,登陆成功 |
客户输入错误的账号密码,显示重新输入,输入正确的账号和密码后进入验证界面,手机格式和验证码输入正确即登陆成功 |
对于数据类:等价类分析表和边界值分析法
数据类特点:
1:数据的取值是一个范围,通常不能用遍历的方式来测试覆盖。
2:系统对合法/不合法数据分别作出的相同的处理。
对数据类的测试方法:适合类型:
1:设计需求规格用例;
2:对流程类分析得到的测试点,设计用例的输入数据。
步骤:
1:列出“等价类分析表”;
2:使用“边界值”来为“等价类分析表”确定测试数据;
3:将等价类组合到不同测试点;
4:其他扩展补充。
具体步骤:
步骤一:列出“等价类分析表”
对输入值按照测试效果进行划分,测试效果相同的测试数据归为一类。
1)有效等价类
产品规格合理的、有意义的输入数据构成的集合。
2)无效等价类
不合理、无效的数据集合。
等价类划分原则:
1:无冗余性:划分的子集互不相交;
2:完备性:各子集合并为整个集合。
等价类划分方法:
1)若规定了取值范围或个数,可分为一个有效等价类、2个无效等价类;
2)规定了输入数据必须遵守的规则,可确立一个有效等价类和多个无效等价类。
步骤二:使用“边界值”来为“等价类分析表”确定测试数据
边界值:条件参数在输入边界的取值;取完边界值,再取一个有效中间值测试。
其余无效项不用再划分边界值,直接使用无效等价类为测试数据
步骤三:部分测试点的等价类相同,则可将等价类分配到不同测试点。
例如:
测试点1:使用串口修改admin账号密码;
测试点2:使用telnet修改admin账号密码;
这2个测试点的密码需求规格相同:“密码长度6-32,且必须同时包含大小写字母和数字”
将上步骤分析的等价类,分配到这2个测试点
步骤四:根据等价类分析表,整理出用例
也可将这些用例合成2个,各等价类数据作为步骤
数据类总结:
1)确定等价类时,需与开发讨论,同一类测试数据的处理是否相同;
2)有些等价类可直接作为用例数据,不需再取边界值;
如:密码只包含大写字母、小写字母
3)有效等价类取完边界值,可再选取一个中间值;
如:VLAN规格[1,4094],有效等价类取值1,4094,2000
4)多个测试点的等价类相同,则将数据分配到不同测试点,避免用例冗余。
如:上页中不同方式修改账号密码。
5)某功能点包含多项数据类时,测某项无效类时,另一项取有效类。
如:密码限制有长度、字符类型。测长度无效类时,字符类型取有效类
参数类特点:
1:“参数”值个数有限,可以通过遍历的方式来测试覆盖。
2:系统对不同的“参数值”作出不同的处理。
参数类适合:
功能点的多个参数之间存在相互关系,需要对参数进行“组合”分析。
分析方法:“输入-输出表”
分析步骤:
1:列出“输入-输出表”;
2:100%覆盖“输入-输出表”;
3:其他扩展补充
具体步骤:
步骤一:
(1)确定参数和参数值。
(2)确定约束条件:
1:若客户端与服务器密钥不一致,则认证失败。
2:若客户端与服务器认证失败,则不进行后续用户认证。
3:若用户与客户端为端口认证,则参考端口已通过用户数,已有用户认证通过,后面用户不需与服务器认证。
(3)将所有参数组合列出来,根据约束条件,删除重复项
(4)将表格中的重复项去掉后,得出最终的输入输出表
步骤二:覆盖“输入-输出表”,得出测试用例
参数类总结:
1)适合产品对各参数处理不同,且相互之间有约束关系;
2)得出正确的约束条件,需要掌握内部实现/协议规定;
3)参数类用例得出后,设计用例数据时,又可结合数据类方法;
如:客户端与服务器密钥配置,可使用等价类和边界值设计数据。
总结:
参数类和数据类测试模型是有融合部分的。
数据类是针对某一个窗口的数据输入的。
参数类是看几个窗口输入的参数的相互关系的。

浙公网安备 33010602011771号