一.测试用例
1.要素
- 测试环境
- 操作步骤
- 测试数据
- 预期结果
2.好处
1.提高测试效率,节省测试时间
2.测试用例是自动化测试用例的前提
3.个人总结的万能公式
功能,界面,易用性,兼容,性能,安全,网络,中断
物体:物体的作用,干什么用的
软件:软件实现功能
物体:外表,材质,大小,容量
软件:界面,字体大小,字体颜色,页面布局
操作简单,使用流程;人性化
物体:除了本质的功能,有没有其他功能
软件:操作系统,设备,浏览器版本
物体:使用寿命
软件:响应时间,吞吐量,并发数
物体:材质是否有毒,对人体健康是否造成安全
软件:sql注入,xss漏洞
2G~5G,弱网,wifi
切换界面…
二.测试用例设计方法
1.基于需求的设计方法
需求文档 梳理需求 针对文档设计测试用例
功能相关:
业务流程相关(需求功能说明)
手机号正确注册,不正确有红色提示;密码8-16位才能注册;确认密码;点击同意协议才能注册…
界面(UI设计稿)
页面美观;页面布局合理;页面元素大小,颜色正确;文字大小,文字格式必须正确…
易用性
符合用户操作;使用起来流畅;回车触发注册;Tab切换到下一行;账号已经注册,点击注册,跳转登录…
非功能相关:
- 兼容:chrome浏览器,其他版本浏览器;电脑操作系统(Mac,Windows,Linux);手机操作系统(安卓,IOS);平板操作系统(安卓,IOS)
- 性能:接口响应时间,接口请求承载量,吞吐量必须符合期望;服务器CPU占用率,App打开之后耗电量
- 安全:密码加密展示;密码加密保存;黑客攻击;防止SQL注入…
- 网络:4G,3G,wifi,5G;弱网
2.等价类
依据需求将输入划分为若干类,从等价类中选出一个测试用例,如果这个测试用例测试通过,则认为所代表的等价类测试通过。
这样可以用较少的测试用例达到尽量多的功能覆盖,解决了不能穷举测试的问题
- 有效等价类:满足用户需求的输入集合
- 无效等价类:不满足用户需求的输入集合
例子:
用户名:长度6-15位
有效等价类:6-15位--------10位
无效等价类:小于6位--------4位
大于15位--------18位
等价类思想设计测试用例步骤:
- 充分理解需求
- 划分有效等价类,划分无效等价类
- 从有效等价类抽取其中一个数据进行设计测试用例,从无效等价类抽取其中一个数据进行设计测试用例,
3.边界值
(1)边界点
上点:边界上的点
内点:边界内的点
离点:边界值附近的一个点(闭区间区间外距离上点最近的点,开区间区间内距离上点最近的点)
例子1:
上点:6,15
内点:选取一个13
离点:5,16
例子2:
上点:6,15
内点:选取一个13
离点:7,16
边界值设计测试用例:
- 充分理解需求
- 找边界点
- 针对边界点设计测试用例
4.错误猜测法
错误猜测法是对被测试软件设计的理解,过往经验以及个人直觉,推测出软件可能存在的缺陷,从而针对性地设计测试用例的方法。
优点:在敏捷开发模式下的投入产出比很高
缺点:难以系统化,过度依赖个人能力
例子:以注册为例
1、校验中特殊字符空格的处理?
2、密码校验中的大小写?
3、姓名中的特殊字符?
4、密码发送是否明文?
(1)如何模拟弱网(以Fiddler为例)
1.打开限速模式
3.
上传1KB数据,花费时间300ms
下载1KB数据,花费时间150ms
(2)接口如何测试(以postman为例)
1.
2.
(3)水杯测试用例
5.场景设计法
想象场景来设计用例,这与根据需求的业务流来设计差不多。主要是想象各种业务流来设计用例。
该方法可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,是测试用例更容易理解和执行。
例子:ATM机取款
主事件流:次事件流
插卡:卡段了,卡消磁,卡不是银行卡…
选择语言:选择中文,选择英文…
输入密码:密码忘记,密码错误,输入次数过多卡被吞…
选择业务:转账,存款,查询,查流水…
输入取款金额:余额不足,输入非整数,输入金额为0,ATM余额不足…
等待吐钱:停电,断网…
取卡:忘记取卡,卡被吞了;ATM坏掉…
通常情况,需要把用户经常用到的功能模块串联在一起进行测试
6.因果图法&&判定表法
因果图是一种简化了的逻辑图,能直观地表明程序输入条件(原因)和输出动作(结果)之间的相互关系。
因果图法设计测试用例步骤:
- 分析所有可能的输入和可能的输出。
- 找出输入与输出之间的对应关系。
- 画出因果图。
- 把因果图转换成判定表。
- 把判定表对应到每一个测试用例。
判定表
判定表是另一种表达逻辑判断的工具
如何设计测试用例
- 分析所有可能的输入和可能的输出
- 找出输入与输出的对应关系
- 设计判定表
- 把判定表对应到每一个测试用例
例子:“淘宝618活动,订单已提交,订单合计金额大于300元或有红包,则进优惠”。
1.输入:订单已提交、金额大于300、有红包
输出:优惠、不优惠2.对应关系
(1)订单已提交,订单金额大于300元,则优惠。
(2)订单已提交,订单金额小于等于300元,无红包,不优惠
(3)订单已提交,有红包,则优惠。
(4)订单已提交,订单金额大于300元,有红包,则优惠。
(5)订单未提交,不优惠。
判定表设计:
设计测试用例:
订单提交,金额大于300,有红包,优惠
订单提交,金额大于300,无红包,优惠
订单提交,金额小于300,有红包,优惠
订单提交,金额小于300,无红包,无优惠
订单不提交,金额大于300,有红包,无优惠
订单不提交,金额大于300,无红包,无优惠
订单不提交,金额小于300,有红包,无优惠
订单不提交,金额小于300,无红包,无优惠
7.正交表法
(1)定义
正交法的目的是为了减少减少用例数目,用尽量少的用例覆盖输入的两两组合
- 因素:变量
- 水平:变量取值
性质:每一列中各数字出现的次数都一样
任何两列中的各有序数对出现的次数一样
设计测试用例的步骤:
充分理解需求–确定因素水平–画正交表–补充正交表–将正交表转换成测试用例
(2)利用allpairs生成表
例子:以注册为例,姓名、邮箱、密码、确认密码、验证码全部输入,才能进行注册
因素:姓名,邮箱,密码,确认密码,验证
水平:填写,不填写
使用工具:allpirs画正交表
1.将文件复制到allpairs文件路径下
2.终端执行命令生成到文档 allpairs.exe 输入文件 > 输出文件
数据文档:
执行命令
执行结果:
~线表示可填写可不填写
- 姓名,邮箱,密码,确认密码,验证码都填写
- 姓名填写,邮箱密码,确认密码都不填…
- …