一、因果图法

1. 概念

因果图是一种逻辑图,表示:恒等、与、或、非
当输入有很多时,不同输入的组合对应不同的输出,用因果图来分析不同输入组合和不同输出组合之间的关系

  • 恒等:在恒等关系中,要求程序有1个输人和1个输出,输出与输入保持一致。若ci为1,则ei也为1;若ci为0,则ei,也为0。

  • 非:非使用符号“~”表示,在这种关系中,要求程序有1个输人和1个输出,输出是输入的取反。若ci为1,则ei为0;若ci为0,则ei为1。

  • 或:或使用符号“∨”表示,或关系可以有任意个输入,只要这些输入中有一个为则输出为1,否则输出为0。

  • 与:与使用符号“∧”表示,与关系也可以有任意个输入,但只有这些输入全部为输出才能为1,否则输出为0。

2. 步骤

  • 分析出所有的输入、输出
  • 找出输入输出之间的逻辑关系
  • 根据输入输出之间的关系画因果图
  • 根据因果图画判定表
  • 根据判定表设计测试用例

3. 例子

淘宝双十一活动,订单已提交,订单合计金额大于300元或有红包,则享更多优惠

  1. 分析输入输出
    输入:金额大于300,金额小于等于300;有红包,没有红包;订单已提交,订单没有提交
    输出:有优惠,没有优惠

  2. 关系
    订单提交,金额大于300,有红包,有优惠
    订单提交,金额大于300,没有红包,有优惠
    订单提交,金额小于等于300,有红包,有优惠
    订单提交,金额小于等于300,没有红包,没有优惠
    订单未提交,没有优惠

  3. 画因果图

  4. 画判定表

  5. 测试用例

订单已提交,金额大于300,有红包,有优惠
订单已提交,金额大于300,没有红包,有优惠
订单已提交,金额小于等于300,有红包,有优惠
订单已提交,金额小于等于300,没有红包,没有优惠
订单未提交,金额大于300,没有红包,没有优惠
订单未提交,金额小于等于300,有红包,没有优惠
订单未提交,金额小于等于300,没有红包,没有优惠
订单未提交,金额大于300,有红包,没有优惠

二、正交法

1. 概念

研究多因素多水平的一种实验(测试)方法,根据正交性,从输入组合当中选取最优的组合进行试验,分析结果,通过这些最优组合得出的试验结果来分析这个试验的结果。
因素:输入的变量
水平:变量的取值

正交表的构成:
列:因素数,变量的个数
水平数:每个变量的最大个数
行:L(正交表的行)=(水平数-1)*因素数+1

2. 性质

  1. 每一列不同数据出现的次数一致
  2. 任意两列不同数据的组合出现的次数一样

3. 步骤

  1. 确定所有的输入(变量)
  2. 确定每一个变量的取值的个数
  3. 确定因素数(正交表的列),水平数,正交表的行 L =(水平数-1)*因素数+1
  4. 根据正交表的性质,把变量的值映射到表中
  5. 写测试用例,正交表的每一行就是一个测试用例
  6. 补充正交表中没有的但是自己考虑到的可能出现的测试用例

4. 例子

邮箱注册

  1. 确定因素数(列):姓名,邮箱,密码,确认密码,验证码(5个);
  2. 水平数:输入,不输入(2个);
  3. 正交表的列 = 因素数 = 5
    正交表的行:L = (水平数-1)因素数+1 =(2 - 1) 5 +1 = 6
  4. 映射
  5. 写测试用例
姓名填写,邮箱不填写,密码填写,确认密码不填写,验证码填写
姓名不填写,邮箱填写,密码不填写,确认密码填写,验证码不填写
姓名不填写,邮箱不填写,密码填写,确认密码不填写,验证码不填写
姓名填写,邮箱填写,密码不填写,确认密码不填写,验证码填写
姓名填写,邮箱填写,密码填写,确认密码填写,验证码不填写
姓名不填写,邮箱不填写,密码不填写,确认密码填写,验证码填写

三、场景法

1. 引例

  1. ATM 取款流程
    插卡 —— 输入密码 —— 输入金额 —— 取钱 —— 退卡
  2. 异常
    1. 插卡:卡插反了,卡消磁了,插入其他卡(公交卡,会员卡等);
      卡挂失,卡注销;
      停留时间长,卡被吞;
    2. 输入密码:密码连续三次输错,账户被锁定;
      ​ 密码前两次输错或者第一次输错,接下来一次输入正确;
      ​ 忘记密码,手机上重置密码;
    3. 金额:金额大于银行卡余额,ATM 机本身余额不足;
      ​ 输入的金额低于 ATM 要求的金额;
      ​ 输入是零钱(非100倍数),ATM机不允许;
      ​ 超过每日最大可以取款的金额数;
    4. 长时间未取(看 ATM 机器的处理);
      遗忘了部分钱没有取走;
    5. 其他:ATM 机网络异常;断电;机器故障
  3. 根据异常点写测试用例
    1. 卡插反了,会提示 “插卡错误”;
    2. 卡消磁,取款失败。会提示 ”无效卡“;
    3. 插入其他卡,取款失败。会提示 ”无效卡“;
    4. 卡挂失,取款失败。会提示 ”无效卡“

2. 概念

场景法是把一个个孤立的功能点按照一定的策略串联起来,形成一定的场景或者业务。把场景中的每一个功能点提出来,考虑功能点可能的不同的情况(正常的和异常的输入输出),根据这些情况去设计测试用例

四、错误猜测法

1. 概念

根据测试人员的知识、经验、直觉去判断哪一个模块会出现问题,专门针对这个模块进行测试用例的缩写
作为一种补充的设计测试用例的方法

按照需求去设计测试用例
1.分析并且验证需求的正确性和合理性
2.分析需求,细化需求,从细化的需求当中提取测试点(功能),
对每一个功能点进行测试用例的具体设计
面试题:黑盒测试设计测试用例的方法有哪一些?
等价类,边界值,因果图,正交法,场景法,错误场景法
简历 -> 专业技能
测试:掌握了黑盒测试设计测试用例的方法,如等价类,边界值,因果图法
掌握软件相关测试的基本概念和软件测试的流程

五、加强练习

1. 等价类和边界值的训练

  1. 题目要求
进行信息注册,包括:姓名、年龄
姓名:1-20个字符,不能包括数字,不能为空
年龄:18-60之间的整数,不能为空
  1. 姓名的测试
  2. 年龄的测试

2. 因果图法

  1. 题目
    有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”、“红茶”按钮,相应的饮料就送出来。若投入的是两元硬币,在送出饮料的同时退还5角硬币。
  2. 分析
1. 输入和输出输入:输入1.5元硬币,输入2元硬币,按“可乐”,按“雪碧”,按“红茶”输出:可乐,雪碧,红茶,输出5角硬币
2. 分析输入和输出之间的关系输入1.5元硬币,按“可乐”,输出“可乐”;输入1.5元硬币,按“雪碧”,输出“雪碧”;输入1.5元硬币,按“红茶”,输出“红茶”;输入2元硬币,按“可乐”,输出“可乐”,输出5角硬币;输入2元硬币,按“雪碧”,输出“雪碧”,输出5角硬币;输入2元硬币,按“红茶”,输出“红茶”,输出5角硬币;
  1. 画因果图
  2. 根据因果图,画判定表
  3. 根据判定表写测试用例
输入1.5元硬币,按“可乐”,输出“可乐”;
输入1.5元硬币,按“雪碧”,输出“雪碧”;
输入1.5元硬币,按“红茶”,输出“红茶”;
输入2元硬币,按“可乐”,输出“可乐”,输出5角硬币;
输入2元硬币,按“雪碧”,输出“雪碧”,输出5角硬币;
输入2元硬币,按“红茶”,输出“红茶”,输出5角硬币;
输入2元硬币,不按饮料的按键,不出饮料,超时会提示“请按相应的饮料按键”;
输入1.5元硬币,不按饮料的按键,不出饮料,超时会提示“请按相应的饮料按键”;
不输入硬币,不按饮料按键,不出饮料;
不输入硬币,按任意饮料按键,不出饮料;
先投入2元硬币,再投入1.5元硬币,自动售卖机提示“不允许多次投入等于或者超过饮料价钱的硬币,请联系工作人员退还硬币”
其他情况下的用例:
自动售卖机要有防盗警报;
自动售卖机网络中断;
自动售卖机断电;
输入1.5元硬币之后,自动售卖机断电了或者断网了,提示“请联系工作人员退还硬币”;
输入硬币,相应的饮料没有了,提示“请联系工作人员退还硬币”;
输入假币/游戏币,提示“请输入合理的正常的硬币”

六、某APP的测试用例设计

1. 安装和卸载

应用的安装和卸载在任何一款APP中都属于最基本功能。一旦出错,就属于优先级为紧要Critical的缺陷。因此APP的安装和卸载应作为一个测试点多加重视。主要关注以下几个方面:"

▲应用是否可以正常安装(命令行安装(测试人员):豌豆荚/手机助手,应用商店等 装;apk/ipa安装包安装)。

▲ 应用是否可以在iOS和Android不同系统,版本,机型上进行安装(有的系统版本过低,应用不能适配)(安装兼容性的测试)。
▲安装过程中是否能暂停,再次点击,是否继续安装。

▲安装 时如何表现,是否有相应提示,提示是否友好。

▲安装过程中断网或网络不稳定的情况下,是否有相应提示

▲是否可以正常删除(卸载)应用(桌面删除;第三方软件删除;命令行删除)。

▲卸载过程中出现死机,断电,重启等意外的情况,待环境恢复后是否可以继续正常卸载。

▲移除APP

2. 运行

▲软件安装后需要检查应用是否能正常运行;

▲APP安装完成后,是否可以正常打开,稳定运行

▲APP的速度是可以让人接受,切换是否流畅

▲网络异常时,应用是否会崩溃在请求超时的情况下,如果程序逻辑处理的不好,就有可能发生Crash。(比如黄油相机APPV4.8.2.8版本,在无网络状态下,进入照片编辑页面,选择并拖动照片时,会发生闪退)。

▲反复使用同一个功能的时候,系统可以正常反应,而不是崩溃;

3. 注册和登录

用户注册和登录功能是很多APP产品最基础的构成之一,而主流的登录页面大致分为8种: (1)账号密码注册登录; (2)手机号注册登录; (3)第三 方授权登录;(4)二维码登录;(5)刷脸登录;(6)指纹登陆; (7) 苹果账户对已经登录过的app账户和密码进行记忆,登录;(8)邮箱登录;(9)声纹登录;(10)蓝牙识别登录

本文针对前两种注册登录方式进行阐述:

3.1 账号密码注册登录

▲输入正确(符合账户密码要求的)的账号密码,可正常注册和登录

▲已注册用户再次注册昵称重复也不让你注册

▲未注册用户尝试登录

▲密码 “***” 展示

▲账号输入框对最大长度和格式应有校验(比如邮箱账号需要邮箱格式等)

▲账号或密码输入错误时建议提示“账号或密码错误”,而不是“账号错误”或“密码错误”(安全方面的考虑)

▲密码是否加密传输(可抓取请求查看Charles,fiddler)

▲密码更改后,登录时是否做到了有效数据的校验:修改前的密码失效

▲未登录时对一些页面的操作,是否做了控制

▲切换账号登录,检验登录的信息是否做到及时更新

▲对于多个端都进行操作时,确保数据库操作无误,且每个端可以及时看到数据的更新(数据同步,因为同一个账户,用的数据库的表是同一个表)

▲多设备同时登录同一帐号时(iOS+iOS,Android+Android,iOS+Android),检查是否将原用户剔除,弹出异地登录提示,且对一些需要登录后才能使用的页面无操作权限。 (如果APP账户切换手机重新登陆 需要验证)。

3.2 手机号注册登录

▲手机号输入框格式校验检查

▲验证短信文案是否符合所测APP

▲ 重复发送验证码,前一个验证码正常失效

▲频繁操作验证码发送,应有操作限制

▲验证码有效期校验(超过有效期无法登录)。

4. 日历控件

目前很多包含购票功能的APP中都会设置日历控件方便选票,那么对日
历控件的测试我们需要关注哪些呢?

▲月份和日期对应(比如2月有28天,7月31天)

▲闰年2月,应有29天

▲ 跨年时,年份应有增加

5. 权限设置

当前很多APP的使用依赖于位置,通知,网络,定位,蓝牙,WiFi,应用自启动,存储,摄像头,麦克风等用户权限,针对用户权限我们可以多关注以下几点:

▲首次启动APP询问是否同意启用权限

▲消息权限开启时,消息推送是否正常接收(iOS系统应用启用和后台关闭时都应该可以收到;Android系统在后台关闭进程后就不会推送)

▲消息权限关闭后,APP客户端接收不到消息推送。

▲位置权限开启时,APP可定位到当前位置

▲位置权限关闭后,APP需定位才可用的功能,是否有提示引导用户开启权限,比如“请打开系统设置中’隐私-定位服务‘,允许“XXXX”使用您的位置”

▲网络权限关闭时,APP是否有提示(“服务器或网络错误,请稍后重试”),是否有提示引导用户开启权限。

6. 软件更新

▲强制更新(APP开启后要求必须更新,否则无法使用APP):

  1. 多次关闭和打开APP后是否正常跳出更新弹窗,且无法关闭
  2. 点击更新是否正确跳转至后台配置的更新页面

▲非强制更新(只提示一次更新):

  1. 可正常关闭更新弹窗
  2. 重启APP更新提示按照需求再次显示,或者不再显示
  3. 点击更新是否正确跳转至后台配置的更新页面

▲ 取消版本更新时,老版本可以正常使用

▲APP更新后版本号应有更新

▲APP更新后新增功能和老功能可正常使用。(兼容性)

▲当有新版本时,不删除客户端的情况下,直接更新是否成功

▲删除 APP 后更新(重新安装)

7. 网络环境

中国移动 ;中国电信;中国联通

▲3G,4G,WiFi网络环境下应用的各功能可正常运行

▲网络异常时,数据交换失败是否会有提醒

▲有网到无网再到有网环境时,数据是否可以自动恢复,正常加载

▲只允许内网访问的APP,在连接到外网时是否有友好提示

8. 兼容性测试

▲尽量覆盖该产品的主要用户(建议选取产品自己的数据,具体技术方案可以采取APP内部埋点的方法。如果是新发布的产品,可以选取竞品类产品的数据)

▲从不同系统,版本,分辨率,机型(不同厂家ROM)等纬度进行适配测试

▲通常选择在少数主流设备上执行全向的用例,在其他兼容性范围内的设备上覆盖主要功能的测试用例

▲关注各功能界面在不同分辨率下是否存在 UI 展示问题(如果代码没有对不同分辨率做适配处理,就可能会出现错位,遮挡,留白,拉伸和模糊等问题)

▲基于 UI 自动化脚本的云测试方案(基于轻量级的 UI 自动化脚本,以及借助云平台大量的真机资源)

9. 异常测试

▲没有内存空间时,APP能否正确响应

▲ 横竖屏切换展示

▲APP运行时网络中断

▲反复操作某个功能(一般是比较重要的功能),不断点击和刷新,是否会出现闪退(隐含的是向APP后台的服务器不断发送请求)

▲APP运行时接入电话,短信,微信,或其他消息

由于移动互联网的应用太多,更新频繁,无论如何不是个人经验所能覆盖完

软件测试之黑盒测试方法介绍及测试用例练习相关推荐

  1. 软件测试密码修改教程,软件测试之用户注册和密码修改测试用例设计

    软件测试之用户注册和密码修改测试用例设计 发表于:2009-03-05来源:作者:点击数: 软件测试技术导航 软件测试技术 : 软件测试工程师 测试用例 功能测试 测试管理 缺陷管理 手机测试 自动测 ...

  2. 软件测试之黑盒测试用例

    目录 1.测试用例要素(四个重要的要素) 2.测试用例的给我们带来的好处 3.测试用例的设计方法 3.1 基于需求进行测试用例的设计 3.2 具体的设计方法之等价类 3.2 边界值 3.3 判定表 3 ...

  3. 软件测试之黑盒测试用例的四种设计方法

    一.输入域测试用例设计方法 输入域测试法是一种综合考虑了等价类划分.边界值分析等方法的综合方法,针对输入域测试法中可能出现的各种情况,输入域测试法主要考虑三个方面: 极端测试(Extremal Tes ...

  4. 软件测试之黑盒测试用例的四种设计方法【建议细看】

    一.输入域测试用例设计方法 输入域测试法是一种综合考虑了等价类划分.边界值分析等方法的综合方法,针对输入域测试法中可能出现的各种情况,输入域测试法主要考虑三个方面: (1)极端测试(ExtremalT ...

  5. 【测试】软件测试之黑盒、白盒、灰盒测试

      黑盒测试: 不关心软件内部的逻辑,是关心输入和输出是否达到预期效果,相当把测试的软件看成一个只有输入和输出的黑盒子.   黑盒测试设计测试用例的方法:等价类.边界值.因果图法.正交法.场景法和错误 ...

  6. 软件测试之Web测试方法总结

    一.输入框 1.字符型输入框: (1)字符型输入框:英文全角.英文半角.数字.空或者空格.特殊字符"~!@#¥%--&*?[]{}"特别要注意单引号和&符号.禁止直 ...

  7. 软件测试之——性能测试,Web性能测试用例(详全)

    目录:导读 前言 一.预期指标的性能测试 二.独立业务性能测试 三.组合业务性能测试 四.疲劳强度性能测试 五.大数据量性能测试 六.网络性能测试 七.服务器性能测试 八.总结 前言 性能测试 简而言 ...

  8. 初识软件测试之相关模型介绍

    一.开发模型 1. 瀑布模型 -- 线性顺序 优点:各个阶段比较独立,看重需求分析和软件测试 缺点:无法适应需求的变化:测试到编码后才介入,导致前期的缺陷无法及时发现,无法及时修正 适用项目:适用于需 ...

  9. 全程软件测试之测试需求分析与计划

    全程软件测试之测试需求分析与计划 在项目启动之后,就要着手软件项目的计划,包括软件测试计划.软件测试计划是整个开发计划的组成部分,同时,它又依赖于软件组织过程.项目的总体计划.质量文化和方针.在测试计 ...

最新文章

  1. 多线程下使用Jedis
  2. 从串口驱动的移植看linux2.6内核中的驱动模型 platform device platform driver【转】...
  3. mysql 读取data文件_利用mysql的LOAD DATA INFILE的功能读取客户端文件
  4. isecure center 综合安防管理平台_企业综合安全管理平台
  5. scala中的if esle使用
  6. 集装箱装柜计算机器在线,装箱大师在线计算教程
  7. Java 单点登录安全性如何保障?
  8. windows安装php
  9. 服务器按照应用级别来划分 可以分为哪些,服务器按应用级别有哪些分类
  10. RFID在图书馆系统管理中的有哪些应用优势?
  11. VM虚拟机安装CentOS 7详解
  12. awd的批量脚本 pwn_记一次AWD反杀之旅
  13. jsp视频播放代码 avi
  14. 20组免费的Photoshop渐变效果素材
  15. iOS从相册选择视频和保存视频到相册
  16. NVIDIA Tesla T4 GPU参数
  17. sessionregistry一直为空得_天地为书房
  18. jquery下载所有版本(实时更新)
  19. 亚马逊中国站获取全部商品分类
  20. 使用深度学习识别狗的品种

热门文章

  1. 浏览器未安装flash插件,如何提示用户安装adobe flash player?
  2. 兔子生兔子问题(java实现)
  3. (七)fastai 2018 lesson8 目标检测 ~ lesson9 目标检测
  4. 香帅的北大金融学课笔记13 -- 投资决策
  5. 建模语言UML在软件开发中的应用
  6. 重磅发布!GitHub App 正式上架
  7. linux如何把文件压缩成,linux把文件压缩成.tar.gz的命令
  8. 单位篮球比赛结束,感想很多
  9. 知名油漆涂料品牌排行榜前十名
  10. 电脑安卓手机模拟器怎么修改IP地址