因果图是一种逻辑图,表示:恒等、与、或、非
当输入有很多时,不同输入的组合对应不同的输出,用因果图来分析不同输入组合和不同输出组合之间的关系
恒等:在恒等关系中,要求程序有1个输人和1个输出,输出与输入保持一致。若ci为1,则ei也为1;若ci为0,则ei,也为0。
非:非使用符号“~”表示,在这种关系中,要求程序有1个输人和1个输出,输出是输入的取反。若ci为1,则ei为0;若ci为0,则ei为1。
或:或使用符号“∨”表示,或关系可以有任意个输入,只要这些输入中有一个为则输出为1,否则输出为0。
与:与使用符号“∧”表示,与关系也可以有任意个输入,但只有这些输入全部为输出才能为1,否则输出为0。
淘宝双十一活动,订单已提交,订单合计金额大于300元或有红包,则享更多优惠
分析输入输出
输入:金额大于300,金额小于等于300;有红包,没有红包;订单已提交,订单没有提交
输出:有优惠,没有优惠
关系
订单提交,金额大于300,有红包,有优惠
订单提交,金额大于300,没有红包,有优惠
订单提交,金额小于等于300,有红包,有优惠
订单提交,金额小于等于300,没有红包,没有优惠
订单未提交,没有优惠
测试用例
订单已提交,金额大于300,有红包,有优惠
订单已提交,金额大于300,没有红包,有优惠
订单已提交,金额小于等于300,有红包,有优惠
订单已提交,金额小于等于300,没有红包,没有优惠
订单未提交,金额大于300,没有红包,没有优惠
订单未提交,金额小于等于300,有红包,没有优惠
订单未提交,金额小于等于300,没有红包,没有优惠
订单未提交,金额大于300,有红包,没有优惠
研究多因素多水平的一种实验(测试)方法,根据正交性,从输入组合当中选取最优的组合进行试验,分析结果,通过这些最优组合得出的试验结果来分析这个试验的结果。
因素:输入的变量
水平:变量的取值
正交表的构成:
列:因素数,变量的个数
水平数:每个变量的最大个数
行:L(正交表的行)=(水平数-1)*因素数+1
邮箱注册
姓名填写,邮箱不填写,密码填写,确认密码不填写,验证码填写
姓名不填写,邮箱填写,密码不填写,确认密码填写,验证码不填写
姓名不填写,邮箱不填写,密码填写,确认密码不填写,验证码不填写
姓名填写,邮箱填写,密码不填写,确认密码不填写,验证码填写
姓名填写,邮箱填写,密码填写,确认密码填写,验证码不填写
姓名不填写,邮箱不填写,密码不填写,确认密码填写,验证码填写
场景法是把一个个孤立的功能点按照一定的策略串联起来,形成一定的场景或者业务。把场景中的每一个功能点提出来,考虑功能点可能的不同的情况(正常的和异常的输入输出),根据这些情况去设计测试用例
根据测试人员的知识、经验、直觉去判断哪一个模块会出现问题,专门针对这个模块进行测试用例的缩写
作为一种补充的设计测试用例的方法
按照需求去设计测试用例
1.分析并且验证需求的正确性和合理性
2.分析需求,细化需求,从细化的需求当中提取测试点(功能),
对每一个功能点进行测试用例的具体设计
面试题:黑盒测试设计测试用例的方法有哪一些?
等价类,边界值,因果图,正交法,场景法,错误场景法
简历 -> 专业技能
测试:掌握了黑盒测试设计测试用例的方法,如等价类,边界值,因果图法
掌握软件相关测试的基本概念和软件测试的流程
进行信息注册,包括:姓名、年龄
姓名:1-20个字符,不能包括数字,不能为空
年龄:18-60之间的整数,不能为空
1. 输入和输出
输入:输入1.5元硬币,输入2元硬币,按“可乐”,按“雪碧”,按“红茶”
输出:可乐,雪碧,红茶,输出5角硬币
2. 分析输入和输出之间的关系
输入1.5元硬币,按“可乐”,输出“可乐”;
输入1.5元硬币,按“雪碧”,输出“雪碧”;
输入1.5元硬币,按“红茶”,输出“红茶”;
输入2元硬币,按“可乐”,输出“可乐”,输出5角硬币;
输入2元硬币,按“雪碧”,输出“雪碧”,输出5角硬币;
输入2元硬币,按“红茶”,输出“红茶”,输出5角硬币;
输入1.5元硬币,按“可乐”,输出“可乐”;
输入1.5元硬币,按“雪碧”,输出“雪碧”;
输入1.5元硬币,按“红茶”,输出“红茶”;
输入2元硬币,按“可乐”,输出“可乐”,输出5角硬币;
输入2元硬币,按“雪碧”,输出“雪碧”,输出5角硬币;
输入2元硬币,按“红茶”,输出“红茶”,输出5角硬币;
输入2元硬币,不按饮料的按键,不出饮料,超时会提示“请按相应的饮料按键”;
输入1.5元硬币,不按饮料的按键,不出饮料,超时会提示“请按相应的饮料按键”;
不输入硬币,不按饮料按键,不出饮料;
不输入硬币,按任意饮料按键,不出饮料;
先投入2元硬币,再投入1.5元硬币,自动售卖机提示“不允许多次投入等于或者超过饮料价钱的硬币,请联系工作人员退还硬币”
其他情况下的用例:
自动售卖机要有防盗警报;
自动售卖机网络中断;
自动售卖机断电;
输入1.5元硬币之后,自动售卖机断电了或者断网了,提示“请联系工作人员退还硬币”;
输入硬币,相应的饮料没有了,提示“请联系工作人员退还硬币”;
输入假币/游戏币,提示“请输入合理的正常的硬币”
应用的安装和卸载在任何一款APP中都属于最基本功能。一旦出错,就属于优先级为紧要Critical的缺陷。因此APP的安装和卸载应作为一个测试点多加重视。主要关注以下几个方面:"
▲应用是否可以正常安装(命令行安装(测试人员):豌豆荚/手机助手,应用商店等 装;apk/ipa安装包安装)。
▲ 应用是否可以在iOS和Android不同系统,版本,机型上进行安装(有的系统版本过低,应用不能适配)(安装兼容性的测试)。
▲安装过程中是否能暂停,再次点击,是否继续安装。
▲安装 时如何表现,是否有相应提示,提示是否友好。
▲安装过程中断网或网络不稳定的情况下,是否有相应提示
▲是否可以正常删除(卸载)应用(桌面删除;第三方软件删除;命令行删除)。
▲卸载过程中出现死机,断电,重启等意外的情况,待环境恢复后是否可以继续正常卸载。
▲移除APP
▲软件安装后需要检查应用是否能正常运行;
▲APP安装完成后,是否可以正常打开,稳定运行
▲APP的速度是可以让人接受,切换是否流畅
▲网络异常时,应用是否会崩溃在请求超时的情况下,如果程序逻辑处理的不好,就有可能发生Crash。(比如黄油相机APPV4.8.2.8版本,在无网络状态下,进入照片编辑页面,选择并拖动照片时,会发生闪退)。
▲反复使用同一个功能的时候,系统可以正常反应,而不是崩溃;
用户注册和登录功能是很多APP产品最基础的构成之一,而主流的登录页面大致分为8种: (1)账号密码注册登录; (2)手机号注册登录; (3)第三 方授权登录;(4)二维码登录;(5)刷脸登录;(6)指纹登陆; (7) 苹果账户对已经登录过的app账户和密码进行记忆,登录;(8)邮箱登录;(9)声纹登录;(10)蓝牙识别登录
本文针对前两种注册登录方式进行阐述:
▲输入正确(符合账户密码要求的)的账号密码,可正常注册和登录
▲已注册用户再次注册昵称重复也不让你注册
▲未注册用户尝试登录
▲密码 “***” 展示
▲账号输入框对最大长度和格式应有校验(比如邮箱账号需要邮箱格式等)
▲账号或密码输入错误时建议提示“账号或密码错误”,而不是“账号错误”或“密码错误”(安全方面的考虑)
▲密码是否加密传输(可抓取请求查看Charles,fiddler)
▲密码更改后,登录时是否做到了有效数据的校验:修改前的密码失效
▲未登录时对一些页面的操作,是否做了控制
▲切换账号登录,检验登录的信息是否做到及时更新
▲对于多个端都进行操作时,确保数据库操作无误,且每个端可以及时看到数据的更新(数据同步,因为同一个账户,用的数据库的表是同一个表)
▲多设备同时登录同一帐号时(iOS+iOS,Android+Android,iOS+Android),检查是否将原用户剔除,弹出异地登录提示,且对一些需要登录后才能使用的页面无操作权限。 (如果APP账户切换手机重新登陆 需要验证)。
▲手机号输入框格式校验检查
▲验证短信文案是否符合所测APP
▲ 重复发送验证码,前一个验证码正常失效
▲频繁操作验证码发送,应有操作限制
▲验证码有效期校验(超过有效期无法登录)。
目前很多包含购票功能的APP中都会设置日历控件方便选票,那么对日
历控件的测试我们需要关注哪些呢?
▲月份和日期对应(比如2月有28天,7月31天)
▲闰年2月,应有29天
▲ 跨年时,年份应有增加
当前很多APP的使用依赖于位置,通知,网络,定位,蓝牙,WiFi,应用自启动,存储,摄像头,麦克风等用户权限,针对用户权限我们可以多关注以下几点:
▲首次启动APP询问是否同意启用权限
▲消息权限开启时,消息推送是否正常接收(iOS系统应用启用和后台关闭时都应该可以收到;Android系统在后台关闭进程后就不会推送)
▲消息权限关闭后,APP客户端接收不到消息推送。
▲位置权限开启时,APP可定位到当前位置
▲位置权限关闭后,APP需定位才可用的功能,是否有提示引导用户开启权限,比如“请打开系统设置中’隐私-定位服务‘,允许“XXXX”使用您的位置”
▲网络权限关闭时,APP是否有提示(“服务器或网络错误,请稍后重试”),是否有提示引导用户开启权限。
▲强制更新(APP开启后要求必须更新,否则无法使用APP):
▲非强制更新(只提示一次更新):
▲ 取消版本更新时,老版本可以正常使用
▲APP更新后版本号应有更新
▲APP更新后新增功能和老功能可正常使用。(兼容性)
▲当有新版本时,不删除客户端的情况下,直接更新是否成功
▲删除 APP 后更新(重新安装)
中国移动 ;中国电信;中国联通
▲3G,4G,WiFi网络环境下应用的各功能可正常运行
▲网络异常时,数据交换失败是否会有提醒
▲有网到无网再到有网环境时,数据是否可以自动恢复,正常加载
▲只允许内网访问的APP,在连接到外网时是否有友好提示
▲尽量覆盖该产品的主要用户(建议选取产品自己的数据,具体技术方案可以采取APP内部埋点的方法。如果是新发布的产品,可以选取竞品类产品的数据)
▲从不同系统,版本,分辨率,机型(不同厂家ROM)等纬度进行适配测试
▲通常选择在少数主流设备上执行全向的用例,在其他兼容性范围内的设备上覆盖主要功能的测试用例
▲关注各功能界面在不同分辨率下是否存在 UI 展示问题(如果代码没有对不同分辨率做适配处理,就可能会出现错位,遮挡,留白,拉伸和模糊等问题)
▲基于 UI 自动化脚本的云测试方案(基于轻量级的 UI 自动化脚本,以及借助云平台大量的真机资源)
▲没有内存空间时,APP能否正确响应
▲ 横竖屏切换展示
▲APP运行时网络中断
▲反复操作某个功能(一般是比较重要的功能),不断点击和刷新,是否会出现闪退(隐含的是向APP后台的服务器不断发送请求)
▲APP运行时接入电话,短信,微信,或其他消息
由于移动互联网的应用太多,更新频繁,无论如何不是个人经验所能覆盖完