系统测试设计的10种方法
一、等价类划分
- 等价类的概念
- 等价类
某个输入域的子集合,在这个集合中 每一个输入条件都是等效 的, 如果其中一个输入不能导致问题发生,那么集合中其它输入条件进行测试也不可能发现错误。 - 有效等价类
合理的输入数据
指满足产品规格说明的输入数据,即有效的、有意义的输入数据所构成的集合。 利用有效等价类,可以检验程序是否满足规格说明所规定的功能和性能。 - 无效等价类
不合理的输入数据
不满足程序输入要求或者无效的输入数据所构成的集合。 利用无效等价类,可以测试程序的容错性(对异常输入情况的处理)。
- 等价类划分方式
如果输入条件规定了输入值的集合,或者 “必须如何”。 则可以确立一个有效等价类和一个无效等价类。
注册的时候选择性别,男或女,默认没有选择,性别是必填项
有效等价类:男或女
无效等价类:不选择
如果输入条件规定了取值范围,或值的个数, 则可以确立一个有效等价类和两个无效等价类。
取款金额100到5000
有效等价类:100到5000
无效等价类:小于100,大于5000
如果输入条件是一个布尔量, 则可以确定一个有效等价类和一个无效等价类。
安装软件时必须同意协议才能继续安装
有效等价类:同意
无效等价类:不同意
如果规定了的一组输入数据(N个输入值), 且要对每个输入值分别进行处理。 这时可确立N个有效等
证书考试,>=60分有证书,60-70是合格,71-85是良好,86-100优秀
有效等价类:60-70,71-85,86-100
无效等价类:小于60
如果规定了输入数据必须遵守的一系列规则, 则可以确立一个有效等价类(符合规则) 和多个无效等价类(从不同角度违反规则)
注册的用户名要求必须由英文字母和数字组成,长度3-20之间,不能以数字开头
有效等价类:由英文字母和数字组成,长度3-20之间,不能以数字开头
无效等价类:包含特殊字符(包含空格)、包含文字、长度小于3,长度大于20,以数字开头
- 等价类划分步骤
- 确定输入框
- 确定输入条件
- 划分有效等价类和无效等价类
- 用测试用例覆盖有效等价类
- 用测试用例覆盖无效等价类
- 等价类划分特点
只考虑单个输入的覆盖,不考虑输入的组合 - 使用场景
单个输入或输出
二、边界值分析
- 边界值的概念
- 指不同等价类之间的边界。 边界值分析法是对等价类划分法的一种补充,根据经验边界是问题的多发区。
- 错误隐藏在角落里,问题聚集在边界上。 如果边界附近的取值不会导致程序出错,那么其它取值导致程序错误的可能性也很小。
- 边界值的分类
- 上点 边界上的点
如果域的边界是封闭的,上点就在域范围内
如果域的边界是开放的,上点就在域范围外
范围的边界值一定是上点 - 离点 离边界最近的点
如果域的边界是封闭的,离点就在域范围外
如果域的边界是开放的,离点就在域范围内
如果某个上点是有效的,离点就是无效的。如果某个上点是无效的,离点就是有效的。 - 内点 区间内除上点和离点之外的任意一个点
上点一定是边界上的点,不管封闭区间还是开放区间。
上点和离点在不同的等价类,如果上点是有效等价类,则离点是无效等价类;如果上点是无效等价类,则离点是有效等价类。
-
边界值分析步骤
1)分析输入参数的类型
2)等价类划分(可选)
3)确定边界 确定上点、离点、内点
4)确定测试用例
5)选择这些上点、离点、内点或者这些点的组合形成测试项 -
边界值分析实例
实例演示
- 驾照年龄范围18到70
上点:18,70 离点:17,71 内点:60 - 输入值范围 -3到4,不含边界,整数
上点:-3,4 离点:-2,3 特殊边界:0 - 下拉框选择国家,默认请选择,范围从阿富汗到津巴布韦
上点:阿富汗、津巴布韦 离点:请选择
(6,18)----开区间,不包含6和18
有效值:7,8,9…16,17
无效值:<=6,>=18
上点:边界上的点----6,18–无效等价类
离点:7,17
[6,18]----闭区间,包含6和18
上点:6,18----有效等价类
离点:5,19----无效等价类
- 边界值分析使用场景
单个输入规定了一个输入值范围
单个输入是一个有序的集合(下拉框)
三、输入域测试
在等价类划分法和边界值分析法的基础上考虑特殊值测试等其他情况
- 输入域步骤
1)等价类划分
2)边界值分析
3)特殊值测试
4)极限值测试 - 特殊值测试
日期特殊值
- 2月份的日范围,特殊值闰年2月有29天 (闰年:能被4整除且不能被100整除;或能被400整除)
- 年的表示使用两位数,特殊值是千年虫
- 时间使用时间戳方式保存时,特殊值2038年,最大能表示的日期是2038年1月19日(64位操作系统的int数据类型最大值是2147483647)
手机号码特殊值
- 110、120、119等紧急号码
- 10086,10000,95555等客服号码
- 虚拟网短号 601
- 13800138000 中国移动充值卡充值中心的号码
- 极限值测试
某个密码输入框允许最大输入100个字符,密码的最大长度是12
上点是长度12,离点是长度13,极限值考虑长度100
界面长度如果没有限制,可以看数据存储长度进行验证(定义数据类型的可输入最大长度) - 输入域使用场景
各种单个输入框
四、输出域测试
系统的输入和输出一般不是线性关系,输入域的等价类划分和边界值分析不一定覆盖输出域的等价类和边界值,需要从输出的测试点考虑输入值。
-
输出域步骤
1) 从输出角度考虑等价类划分,一般输出没有无效等价类
2)分析输出等价类的边界值
3)根据需要覆盖的输出值反推输入值
4) 转化成测试用例 -
输出域实例
- 外币兑换
输入人民币数值,100到40000。输出美元数值,可以兑换的美元范围100到5000。
输出的有效等价类是100到5000,上点是100和5000。覆盖输出的边界,倒推输入是700和35000。 - 个人信息完整显示
注册时填写所有信息项,为了验证每个信息项都能正常展示。 - 查询结果导出时excel每个sheet最大行数为65535
- 输出域使用场景
格式转换,查询结果导出
- 一般只有当输出比较复杂的时候可能会使用到,实际工作中应用较少。
五、 正交实验法
- 正交实验法概念
- 正交试验设计法,是从大量的试验点中挑选出适量的有代表性的点, 应用依据迦罗瓦理论导出的正交表,合理地安排试验的一种科学试验设计方法。
- 利用正交表从全排列组合中自动筛选出若干组合进行测试。任意两个因子的不同状态都同时组合在一条规则里。
- 原理 用尽量少的测试用例覆盖输入的两两组合,如果两两组合没问题,更复杂组合问题不大。
- 正交表的组成
- 因素(因子)Column -----输入条件
所有影响试验指标的条件,要测试的功能点。即有哪些输入。 - 水平(因子的状态)-----输入条件的取值
影响试验因子的状态,即单个因素能够取得的值的最大个数。即输入的取值个数。 - 实验 Experiment Number
因素和水平的组合,对应测试用例
- 正交实验法步骤
1)确定要组合的输入
2)有哪些因子(变量)
3) 每个因子有哪几个状态(变量的取值)
4)如果因子或状态过多,可以删除一部分重要性较小的因子或状态,使生成的测试用例集缩减到允许范围
5)选择合适正交表
- 因子数与状态数刚好符合正交表,直接使用
- 因子数与状态数没有符合的正交表
合并因子的部分取值匹配正交表
选择因子数和水平数略大于实际值的正交表
状态数相同找因子数大于实际值的正交表
状态数不同找状态数大于最大实际值的正交表
6)实际取值替换正交表的状态
7)展开合并的因子取值,空白处确定具体的值(可选)
8)把每一行的各因子水平的组合做为一个测试用例
9)加上你认为可疑且没有在表中出现的组合
- 正交实验法优缺点
优点
- 根据正交性从全面试验中挑选出部分有代表性的点进行试验, 这些有代表性的点具备了“均匀分散,整齐可比”的特点。
- 通过使用正交试验法减少了测试用例,合理地减少测试的工时与费用,提高测试用例的有效性。
- 正交实验法是一种高效率、快速、经济的实验设计方法。
缺点
- 对每个状态点同等对待,重点不突出,容易造成在用户不常用的功能或场景中, 花费不少时间进行测试设计与执行,而在重要路径的使用上反而没有重点测试。
- 会存在漏测的风险,生成测试表后需要人工的审核添加一些可疑项。
- 正交实验法使用场景
组合查询或搜索,兼容性测试(浏览器/操作系统/分辨率),配置测试。
六、 状态迁移法
- 状态迁移法概念
有限状态机
- 表示有限个状态以及在这些状态之间转移和动作的数学模型
- 通过构造能导致状态迁移的事件来测试状态之间的转换
-
状态迁移法步骤
1) 画出状态迁移图
2)列出状态 - 事件表
3)画出状态转换树
4)确定测试路径
5)针对每条路径设计测试用例 -
状态迁移法练习
TM状态切换 -
状态迁移法使用场景
有工作状态的软件,修改设置/配置,有状态变化的功能测试。
七、流程分析法
-
流程分析法概念
流程分析法 又叫 场景分析法,是将软件系统的某个流程看成路径,用路径分析的方法来设计测试用例。
关注的重点是流程是否能走下去,每个节点的功能并不关注。 -
流程分析法步骤
1)画出流程图
2)确定测试路径
基本流程 一次性成功的流程
备选流程 多次反复后才成功的流程
异常流程 失败的流程
3)针对每条路径至少设计 1 条测试用例 -
流程分析法练习
取款流程 -
流程分析法使用场景
业务流程测试,安装流程、卸载流程测试
八、 判定表法
- 判定表概念
判定表 又叫 决策表,是分析和表达多种输入条件下系统执行不同动作的工具。它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确。
等价类划分考虑不同的输入,判定表法考虑针对各种输入的处理规则是否正确,目的是测试业务规则。 - 判定表组成
条件桩 列出了问题的所有条件(输入),次序无关紧要
- 是否用户名正确
- 是否密码正确
条件项 列出针对它所列条件(输入)的取值,即每个条件 只能取真假两个值
- 是否用户名正确 正确,不正确
- 是否密码正确 正确,不正确
动作桩 列出针对问题可能采取的操作,这些操作的排列顺序没有约束
- 是否登录成功
动作项 列出在条件项的各种取值情况下应该采取的动作
- 登录成功
- 提示用户名或密码错误
规则 任一条件组合的特定取值和对应的动作,贯穿条件项和动作项的一列
-
判定表法步骤
1)确定所有输入(条件)和输出(动作)
每个输入和输出只能有两种取值
有多种取值的每个取值作为一个条件或动作
2)将所有输入的取值做全排列组合,N个输入有2的N次方列
3)明确每一列对应的动作,形成各个规则,形成判定表
4) 对判定表进行化简
去除无效规则
合并相似规则(输出与某个输入的取值无关)
5)将每条规则转化为用例 -
判定表法优缺点
优点
把复杂的问题按各种可能的情况一一列举出来,简单而易于理解,也可避免遗漏
缺点
- 合并存在漏测的风险
原因是虽然某个输入条件在输出接口上是无关的, 但是在软件设计上,内部针对这个条件走了不同的分支 - 比较繁琐
- 判定表法使用范围
- 用于复杂的条件组合,并且不同的组合产生不同结果的时候
- 游戏测试
九、因果图法
因果图法帮助快捷生成判定表的方法,需要结合判定表法一起使用。
- 因果图符号
1) 基本符号
恒等 若 C1=1 则 E1=1,若 C1=0 则 E1=0
非 若 C1=1 则 E1=0,若 C1=0 则 E1=1
或 若 C1=1 或 C2=1,则 E1=1
与 若 C1=1 且 C2=1,则 E1=1
2)约束条件
互斥,包含,唯一,要求,屏蔽/强制
C1 和 C2 至多有一个为 1,可以都为 0,不能都为 1----红绿灯
C1 和 C2 至少有一个为 1,可以都为 1,不能都为 0----不定向选择题
C1 和 C2 有且只有一个为 1----单选题
若 C2=1,则 C1 必须为 1 —优惠券(满300减30)
若 E1=1,则 E2 强制为 0—比赛规则(有人冠军,则另外一个亚军)
-
因果图步骤
1)确定所有输入(原因)和输出(结果)
每个输入和输出只能有两种取值
有多种取值的每个取值作为一个原因或结果
2)输入和输出独立标记
输入(原因)C1,C2,C3…
输出(结果)E1,E2,E3…
3)画出因果图
分析软件规格说明的语义内容,并将其转换为连接因果图关系的布尔图
给图加上注解符号,说明由于语法或者环境的限制而不能联系起来的“因”和“果”
如有必要,设置一些中间节点
4)将因果图转换成判定表
将输入,输出和条件项按照判定表的方式填写, 其中条件项填满输入的全排列组合
按照因果图的输入约束删除对应的条件项
按照因果图的逻辑关系填写规则的结果
5) 简化判定表(可选)
6)生成测试用例
将判定式表中的剩余的有效列(规则)转换为测试用例 -
因果图法优缺点
优点
通过因果图来表示业务规则,通过中间节点来进行因果图的拆分,减少条件个数来降低判定表的工作量
缺点
使用复杂繁琐,难度高 -
因果图法使用范围
范围基本同判定表。输入输出的逻辑关系很明确时用判定表,不是很明确先用因果图,然后再用判定表。
十、错误猜测法
根据 经验 预计软件在哪些情况下可能会出问题,如异常操作和软硬件缺陷容易产生故障
当测试用例数量不够或者未到达标准时可使用该方法补充测试用例
- 常见猜测方向
历史版本错误易发点;
被高优先级任务打断,如编辑短信时来电话;
查询重复数据;
和服务器交互时断网;
手动破坏数据;
多人同时修改一个文件;
一个人修改文件,另外一个人删除此文件;
存储空间不足;
内存不足。
留言:如果对你有帮助,给博主点个免费的赞吧 ~ 创作不易,感谢支持!
更多推荐
所有评论(0)