一、场景法
1、如何针对APP或软件系统的使用场景来设计测试用例?
场景就是不同功能点按照一定的策略组合。
不同的功能点由于输入不同,会造成功能点不同的输入,从而使得整个场景(流程)走向不同的方向(中断流程、反复流程、流程顺利进行)。这些不同的功能点不同的输入导致不同的流程都要进行测试。
eg:ATM取款机,取款场景(取款流程)
在ATM机插卡---输入密码---输入取款金额---取款---退卡
1)在ATM机插卡:
①卡:插入其他卡(公交卡、饭卡),卡插反了,消磁,银行卡不匹配,卡损坏,卡被注销,挂失,吞卡(长时间不操作引起),卡过了有效期,冻结
②ATM机:没有联网,损坏,系统出现故障,死机,断电
2)输入密码:
①密码输入三次都错误,卡被锁,无法取款
②密码前两次输入错误,第三次输入正确,正常取款
③密码输入正确,继续取款流程
④卡没有被激活,输入密码不起作用
3)输入取款金额:
①输入钱超出余额
②ATM机余额不足
③取款金额不是100的整数倍
④取款金额超过当日取款的最大限额
⑤取款的次数超过当日取款最大次数
4)取款:
①机器故障,显示已经取出,但实际没有出款
②吐出来的金额与取款金额必须一致
③出钱口被异物阻挡,不出钞票
④钞票破损
⑤ATM机断网或断电时的处理
5)退卡:
①长时间不操作,卡背吞
测试用例的设计:
1)ATM机出现故障,插卡口损坏,无法取款
2)ATM机正常工作,卡插反了,重新正确插入卡,还可以继续取款
......
3)ATM机正常,插入匹配的银行卡,但三次密码输入错误,卡被锁,无法进行取款
4)ATM正常,插入正确匹配的银行卡,前两次密码输入错误,第三次输入正确密码,继续取款流程
....
5)ATM机正常,插入正确匹配的银行卡,密码输入正确,输入金额大于银行卡余额,重新输入小于银行卡余额的取款金额,正常吐钞,退卡,取款成功
....
场景法设计测试用例,先找出组成场景的每一个功能点,分析每个功能点可能出现的各种正常和异常的情况,根据这些不同的情况去设计不同场景下的测试用例。
二、错误猜测法
根据测试人员的知识、经验、直觉,去有针对性的设计测试用例。
eg:
1、搜索框:用户输入的前后空格去掉,然后去数据库中搜索信息。
问题:用户输入: 赵子龙 数据库中存储的信息为:赵子龙 导致查询失败
解决:java开发人员可以使用 trim()方法,将字符串前后空格去掉
2、同一个搜索页,搜索出来的信息比较多的时候,需要分页展示
问题:不同的页面有相同的数据
解决:需要进行排序,再展示
三、正交法
研究多因素多水平的一种设计测试用例的方法,根据正交性,从多个实验室因素的水平组合中选取最优的水平组合,根据这些最优的水平组合实验的结果,来判断整体实验的结果。
eg:注册邮箱
姓名、邮箱、密码、确认密码、验证码 只考虑输入和不输入两种情况,暂时不考虑其他
2 2 2 2 2
2*2*2*2*2=32种情况
因素:输入的变量 --------- 姓名、邮箱、密码、确认密码、验证码
水平:每一个因素的取值 ----------输入和不输入
因数数:所有的变量个数 ----------5
水平数:每一个变量所能取到的最多的值的个数 ----------2
正交表的构成:
列:因素数,有几个因素(变量),表就有几列
行:行=(水平数-1)*因素数+1 ------------6
1、行和列确定了,表中具体的数据怎么确定?
满足正交表的性质即可
正交表的性质:
1)每一列当中不同数据出现的次数一样多
2)任意两列各种不同数据组合出现的次数一样多
正交法步骤:
1)找出所有的因素和水平
2)确认因素数和水平数
3)确认正交表的行和列
4)根据正交性填写正交表格
5)每一行是一个测试用例
6)补充认为比较重要但是没有在正交表中体现出来的测试用例