一、测试用例的基本要素
1、测试用例:
向测试系统发起的一组集合,测试平台,测试数据,测试步骤,预期结果等。(测试方法,标题,重要性,优先级,功能模块等)
2、评价测试用例的标准(对比好坏代码的评价标准):
- 用例表达清楚,无二义性。
- 用例可操作性强。
- 用例的输入与输出明确。一条用例只有一个预期结果。
- 用例的可维护性好。
- 用例对需求的覆盖率高。
- 暴露程序Bug的能力强力。
二、设计测试用例的方法
需求分析(用户)——软件需求(产品经理)——开发软件(程序员)——测试功能(测试人员)——产品上线
1、根据需求去设计测试用例
- 验证需求的正确性
- 分析需求,细化需求,从需求中提炼功能模块,划分子功能,根据子功能去写测试用例
举例:
1、用户需求:购买3000块钱以内的华为智能手机
价格:3000以内(小于等于)
手机类型:智能手机
品牌:华为
2.1、若用户未收到激活邮件,可在登录界面录入电子邮件及密码后,再次发送激活邮件。
- 用户收到激活邮件:在登录界面输入电子邮件,密码,不会发送激活邮件,并且提示用户,激活邮件已发送。
- 用户没有收到激活邮件:在登录页面输入电子邮件,密码,可以重新发送激活邮件。
2.2、每次发送的激活邮件,尽在发送邮件后24小时内有效,超过24小时候需重新发送激活邮件。
- 激活邮件发送,24小时之内可以激活系统
- 激活邮件发送,24小时之后激活链接失效,无法激活系统
- 24小时之内激活系统,超过24小时之后再次点击激活链接,系统提示:该用户已经激活系统
- 24小时之内激活系统,24小时之内再次激活系统,系统提示:该用户已经激活系统
2.3、邮件内容的测试
2、具体的设计测试用例的方法
- 等价类:把输入(特殊情况下才考虑输出)划分成若干个等价类,从每个等价类当中选一个测试用例进行测试,如果这个测试用例通过,那我们就说这个测试用例代表的等价类测试通过。
- 有效等价类:根据需求规格说明,有意义的输入的数集合,成为有效等价类
- 无效等价类:根据需求规格说明,不符合需求的
- 边界值:针对输入输出的便捷进行测试用例设计
举例:
用户名│必填,录入用户名|6至15│字符类型A-Z,不区分大小写|
6至15 根据长度划分等价类:
有效等价类:6~15位
无效等价位:小于6位或者大于15位
根据字符类型划分等价类:
有效等价位:A-Z或者a-z,大小写混合
无效等价类:汉字、特殊字符、标点符号、空格、A-Z或者a-z与其他字符混合
3.因果图法
定义:因果图是一种逻辑图。(恒等,与,或,非)当输入有很多,不同输入的组合对应不同的输出,用因果图来分析不同输入组合和不同输出之间的关系。
与的含有的关系:
- 有车有房,结婚
- 有车没房,不结婚
- 没车有房,不结婚
- 没车没房,不结婚
或的含有关系:
- 有车,有房,结婚
- 有车,没房,结婚
- 没车,有房,结婚
- 没车,没房,不结婚
用因果图法设计测试用例的步骤:
- 分析出所有的输入,输出
- 找出输入输出之间的逻辑关系
- 根据输入输出的关系画因果图
- 根据因果图画判定表
- 根据判定表设计测试用例
案例一:
假设业务单据的处理规则为:“淘宝618活动,提单已提交,订单合计金额大于300元或有红包,则进优惠”。
-
分析出所有的输入,输出
输入:金额大于300,金额小于等于300,有红包,没有红包,订单已提交,订单未提交 -
关系
订单提交,金额大于300,有红包,优惠
订单提交,金额大于300,没有红包,优惠
订单提交,金额小于等于300,有红包,优惠
订单提交,金额小于等于300,没有红包,不优惠
订单未提交,没有优惠 -
画因果图
-
画判定表
-
写测试用例
订单已提交,金额大于300,有红包,有优惠
订单已提交,金额大于300,没有红包,有优惠
订单已提交,金额小于等于300,有红包,有优惠
订单已提交,金额小于等于300,没有红包,有优惠
订单未提交,金额大于300,有红包,没有优惠
订单未提交,金额大于300,没有红包,没有优惠
订单未提交,金额小于等于300,有红包,没有优惠
订单未提交,金额小于等于300,没有红包,没有优惠
4、正交法
(1)定义:研究多因素多水平的一种实验(测试)方法,根据正交性,从输入组合中选取最优的组合进行试验,分析结果,通过这些最优组合得出的试验结果来分析这个试验结果。
因素:输入的变量
水平:变量的取值
(2)正交表的构成:
列:因素数,变量的个数
水平数:每个变量的最大个数
行:L(正交的行数)=(水平数-1)*因素数+1
当水平数不一样的时候,正交表行的个数如何确定呢?
(3)正交表的性质:
- 每一列不同数据出现的次数一致
- 任意两列不同数据的组合出现的次数一致
(4)正交表测试用例的步骤
- 确定所有的输入(变量)
- 确定每一个变量的取值的个数
- 确定因素数(正交表的列),水平数(正交表的行)
- 根据正交表的 性质,把变量的值映射到表中
- 写测试用例,正交表的每一行就是一个测试用例
- 补充正交表中没有的但是你认为可能出现的测试用例
案例:姓名、邮箱、密码、确认密码、验证码
只考虑每一项输入不输入两种情况
-
确定因素数:5;水平数:2
-
正交表的列=因素数=5 正交表的行=(水平数-1)*因素数+1=6
- 写测试用例
姓名填写,邮箱不填写,密码填写,确认密码不填写,验证码填写
姓名不填写,邮箱填写,密码不填写,确认密码填写,验证码不填写
姓名不填写,邮箱不填写,密码填写,确认密码不填写,验证码不填写
姓名填写,邮箱填写,密码不填写,确认密码不填写,验证码填写
姓名填写,邮箱填写,密码填写,确认密码填写,验证码不填写
姓名粗填写,邮箱不填写,密码不填写,确认密码填写,验证码填写
全填写
全不填写
5、场景法
定义:现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。该方法可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,是测试用例更容易理解和执行。
典型的应用是是用业务流把各个孤立的功能点串起来,为测试人员建立整体业务感觉,从而避免陷入功能细节忽视业务流程要点的错误倾向
案例:ATM机取款场景(流程)
插卡一输入密码一输入金额—取钱一退卡
异常:
账户冻结
(1)插卡:卡插反了,卡消磁了,插入其他卡(公交卡,会员卡等)卡挂失,卡注销,停留时间长,卡被吞
(2)输入密码:密码连续三次输错,账户被锁定;密码前两次输错或者第一次输错, 接下来一次输入正确;忘记密码手机上重置密码
(3)金额大于银行卡余额,ATM机本身余额不足;输入的金额低于ATM机要求的金额;输入零钱 (ATM不允许);超过每日最大可以取款的金额数
(4)长时间未取(看ATM机器的处理) ;遗忘了部分钱没有取
(5)其它: ATM网络异常;断电了;机器故障
6、错误猜测法
定义:根据测试人员的知识、经验、直觉去判断哪一个模板会出现问题,专门针对这个模块进行测试用例的编写。
它是作为一种补充的设计测试用例的方法。
面试题:黑盒测试设计测试用例的方法有哪一些?
答:等价类、边界值、因果图、正交法、场景法、错误猜测法。
专业技能:
1、掌握了黑盒测试设计测试用例的方法,如等价类、边界值、因果图等。
2、掌握了软件相关测试的基本概念和软件测试的流程。