如何设计测试用例?
一个“好的”测试用例,必须具备以下三个特征:
- 整体完备性:“好的”测试用例一定是一个完备的整体,是有效测试用例组成的集合,能够完全覆盖测试需求。
- 等价类划分的准确性:指的是对于每个等价类都能保证只要其中一个输入测试通过,其他输入也一定测试通过。
- 等价类集合的完备性:需要保证所有可能的边界值和边界条件都已经正确识别。
设计测试用例的方法?
一. 等价类划分
- 定义:等价类划分方法,是将所有可能的输入数据划分成若干个子集,在每个子集中,如果任意一个输入数据对于揭露程序中潜在错误都具有同等效果,那么这样的子集就构成了一个等价类。后续只要从每个等价类中任意选取一个值进行测试,就可以用少量具有代表性的测试输入取得较好的测试覆盖结果。
- 划分
- 有效等价类:针对被测对象而言,合理的、有意义的、系统接受的输入,比如用户名长度在[6,18]
- 无效等价类:针对被测对象而言,不合理、无意义的、系统可能接受的输入,如用户名长度大于18位,或小于6位
- 案例
某个网站的用户名注册有如下要求:
1)用户名由数字,字母,下划线组成
2)用户名字符长度在6~18
3)用户名以字母开头。
用等价类划分设计测试用例:
二. 边界值
- 定义:边界值分析方法,是选取输入、输出的边界值进行测试。因为通常大量的软件错误是发生在输入或输出范围的边界上,所以需要对边界值进行重点测试,通常选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据。
- 划分
- 上点:边界上的点,比如用户名长度为6~18位,上点为: 6、18
- 离点:离上点最近的点,比如用户名长度为6~18位,离点为: 5、19
- 内点:边界有效范围内的任意一点,比如用户名长度为6~18位,内点为:10
- 案例
学生信息系统中有一个“考试成绩”的输入项进行查询,成绩的取值范围是0~100 之间的整数,考试成绩及格的分数线是60。
用例设计
三. 流程分析法 - 定义:场景法就是模拟用户操作软件时的场景,主要用于测试系统的业务流程,在冒烟测试时也主要采用场景法进行测试。
- 划分
- 基本流:通过业务流程输入都为正确的,能够最后达到目标的流程。
- 备选流:通过实现业务流程时,因错误操作或异常输入,导致流程存在反复,但最终能够完成期望的业务流程。
- 异常流:通过实现业务流程时,因错误操作或异常输入,导致业务没有正确完成。
- 案例
基本流:>>例如:ATM取款:插入银行卡,输入密码,输入取款金额,取钱,取卡
备选流:>>例如:ATM取款:插入银行卡,输入密码(第一次输入错误,重新输入后完成剩余操作)
异常流:>>例如:ATM取款:插入银行卡,输入密码,错误3次,吞卡’
四. 错误推断法
- 定义:在软件测试活动中,人们可以依靠经验和直觉推测系统中可能存在的各种错误,从而有针对性地编写检查这些错误的例子,这就是错误推测法。
- 划分
- 确定合适的错误推测清单
- 确定需要进行错误猜测的测试子项
- 根据清单对测试子项的规格进行错误猜测
- 案例
1)比如,测试登录页面,不填写用户名,不填写密码,直接单击登录按钮
2)比如,针对要求是正整数的输入框,输入负数并提交
3)比如,金融行业的计算,验证0.1+0.2是否等于0.3(如果不是精确计算,一般为0.30000000000000004)
五. 因果图
定义:因果图是利用一种图解法分析输入的各种组合情况,从而设计测试用例的方法,它适用于输入条件之间有相互制约、相互依赖的情况。
六. 判定表
定义:又称为策略表,是功能测试中最严密的测试方法,该方法适合于逻辑判断复杂的场景,主要侧重输入条件之间的逻辑关系。
七. 状态转换
定义:主要通过找出软件所有的状态以及导致这些状态发生变化的所有输入动作,进而用图形的方法把相关联的输入动作和状态联系在一起,真实模拟用户的操作顺序流程。