黑盒测试用例设计方法三(正交实验法、功能图法、用例设计方法综合选择)
测试步骤
- 一、正交实验法
- 1.1正交实验法介绍
- 1.2正交实验法实现步骤
- 1.3实际案例
- 二、功能图法
- 2.1功能图法原理介绍
- 2.2功能图法实现步骤
- 2.3实践案例
- 三、其他用例设计方法
- 3.1测试大纲法
- 3.2探索性测试法
- 3.3猴子测试(随意性测试)
- 四、用例设计方法综合选择
- 4.1测试用例设计方法怎么用
一、正交实验法
1.1正交实验法介绍
- 概念:正交实验法就是利用排列整齐的表-正交表来对实验进行整体设计、综合比较、统计分析,实现通过少数的试验次数找到较好的生产条件,以达到做好的效果。
- 这种实验设计法是从大量的试验点挑选适量的具有代表性的点,利用已经造好的表格-正交表来安排试验并进行数据分析的方法
- 基本思想:
在一项试验中,把影响试验结果的量称为试验(因素)因子,简称因素。在试验过程中,每一个因素可以处于不同的状态或状况,把因素所处的状态或状况,称为因素的水平,简称水平。
例如:字的显示效果—字体、字号、颜色—>称为因素 字体选择时,可以选择宋体、楷体、微软雅黑、隶书---->称为水平(212个)
字号选择时---->称为水平(100个)
颜色选择时---->称为水平(256个)
测试字的显示效果将会有:212100256=?
每列中不同数字出现的次数相等。这一特点表明每个因素的每个水平与其他因素的每个水平参与试验的几率是完全相等的,能有效地比较试验结果并找出最优的试验条件。
在任意2列其横向组成地数字对中,每种数字对出现的次数相等。这个特点保证了试验点均匀的分散在因素与水平地完全组合之中。
- 正交表的种类
-各列水平数均相同的正交表
-混合水平正交表 - 正交表的特性
-整齐可比、均衡分散
m、n、k这三个数字之间没有任何数学关系
仅适合用于每一个因素的水平数都相同的正交表
1.2正交实验法实现步骤
- 确定因素:这里的因素是指对软件运行结果有影响的软件(分析所有对结果有影响的因素)
-----确定因素的取值范围或集合(该步是为步骤3做准备的)
-----因素的取值范围是指软件输入的取值范围或集合以及可用的硬件资源 - 确定每个因素的水平
-----根据因素的取值范围或集合,采用等价类划分、边界值分析以及其他软件测试技术,在每个因素的取值范围或集合内挑选出有效等价类、无效等价类、正好等于、刚刚大于或刚刚小于边界值等有代表性的测试值 - 选择正交表(只有特定的因素数和水平数的组合才有对应的正交表,正交表的因素数和水平数一般要大于实际的因素数和水平数)
-----根据确定的因素和水平,选择合适的正交表
-----如果没有合适的正交表可用或需要的测试用例个数太多,要对因素和水平进行调整
1.3实际案例
案例:有一个工业产品,其生产工艺受到操作方式、温度、洗涤时间三个因素的影响,并且每个因素都有三种可能的取值,具体如下所示,请设计试验组合。
因素 | 操作方式 | 温度(℃) | 洗涤时间(min) |
---|---|---|---|
Ⅰ | 60 | 15 | |
Ⅱ | 80 | 20 | |
Ⅲ | 100 | 25 |
完全排列组合:333=27
使用小工具(正交设计助手)完成正交实验的设计(L9_3_4:三水平,四因素,9次试验)
每一列中,同一个数字出现的次数相等(3次)
任意两列中,同一个数字对出现的次数相等(1次)
二、功能图法
2.1功能图法原理介绍
功能图法又叫做状态迁徙图
- 来源:在遇到有事务流或由于某种条件成立导致状态改变的软件时,如何进行测试用例的设计就比较麻烦
- 使用场合:软件的状态会根据某些内容、条件、操作的变化而变化
- 状态迁徙图法的目标
设计足够多的测试用例达到对系统状态的覆盖、状态-条件组合的覆盖以及状态迁移路径的覆盖 - 以操作系统的进程调度算法为例:
2.2功能图法实现步骤
- 列出所有可能的输入事件,以ip N 的方式命名(input,N为1,2,3,4……)
- 把软件的打开的初始状态,定义为“空闲”状态
- 在“空闲”状态上加所有可能的输入(只加一次)
- 在上一步产生的所有新状态,分别加所有可能的输入(只加一次,并且曾经加过的操作不再重复添加)
- 循环执行上一步
- 直到再没有任何新状态产生,列出所有的状态,生成状态表
- 组合任意可能的状态组合,写出相应的测试用例
2.3实践案例
案例:以QQ登陆界面为例,说明功能的变迁。
(1)识别出可以进行的操作
ip 1:输入账号
ip 2:输入密码
ip 3:点击登录
ip 4:点击关闭按钮
(2)定义QQ登陆界面为 空闲 状态。
(3)给空闲状态加操作。第一轮分析后:
产生了新的状态。针对新的状态进行分析(第二轮):
得到一个新状态。所以继续进行分析:
虽然得到了一个全新的界面(状态),但是和空闲状态发生了人“隔断”,因此将其视为空闲状态的结束。可以结束分析过程
(4)将状态变化过程列表化,准备设计测试用例。
状态名称/序号 | A | B | C | D |
---|---|---|---|---|
空闲 | 1 | 1 | 1 | 1 |
QQ号已输入 | 2 | 2 | ||
密码已输入 | 2 | |||
QQ号、密码已输入 | 3 | |||
QQ主界面 | 4 | |||
退出 | 2 | 3 | 3 |
①A列:从QQ的登陆界面,直接点击关闭按钮,QQ登陆退出
②D列:从QQ的登陆界面,先输入QQ号(状态变为QQ号已输入);再输入密码(状态变为QQ号、密码已输入),点击登录,状态就会变为QQ主界面
③B列:(略)
测试用例的设计争取达到:“大道至简、大巧若拙”就好。越自然越好。
三、其他用例设计方法
3.1测试大纲法
- 一种着眼于需求的方法
- 为列出各种测试条件,将需求转换为大纲(思维导图)的形式
- 无需用例设计。一般从根节点开始,到叶节点结束。这样的一条路径就是一条测试用例
- 一般用于快速的测试和记录过程,用例一般进行后补。
3.2探索性测试法
- 基于测试人员经验与直觉的测试方法
- 是对测试用例设计的有效补充
- 探索性测试也必须生成测试用例
3.3猴子测试(随意性测试)
- 一种没有书面测试用例、记录期望结果、检查列表、脚本或指令的测试
- 缺点
(1) 测试往往不太真实
(2)不能达到一定的覆盖率
(3)许多测试都是冗余的
(4)需要使用同样的随机数才能重建测试
四、用例设计方法综合选择
- 首先进行等价类划分法
- 在任何情况下都必须使用边界值分析方法
- 如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用因果图法和判定表驱动法
- 对于参数配置类的软件,要用正交实验法选择较少的组合方式达到最佳效果
- 状态迁徙图法也是很好的测试用例设计方法,我们可以通过不同时期条件的有效性设计不同的测试数据
- 对于业务流清晰的系统,可以利用场景法贯穿整个案例过程
- 可以用错误推测法追加一些测试用例
- 对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度,如果没有达到要求的覆盖标准,应当再补充足够的测试用例
4.1测试用例设计方法怎么用
- 首先明确用例设计方法都有哪些:
(1)等价类划分法
(2)边界值分析法
(3)因果图法
(4)判定表法
(5)场景法
(6)正交实验法
(7)状态迁徙图法(功能图法) - 如何使用?用例设计方法的使用不是孤立存在的,而是存在于项目中。尤其是一个项目中。
- 以教育APP为例说明各种用例设计方法的使用:
(1)在启动页中。有如下需求:
①读取版本更新信息。匹配当前APP与线上需要更新的APP版本是否一致
②读取用户信息。未登录用户,则不用获取;已登录用户,验证是否登陆过期。
用例设计方法:采用场景法进行设计
设计场景:
①APP的安装版本比最新版低。启动就需要进行版本检测,并进行提示。
②APP安装版本与最新版一样。默认检测过程成功。
③APP启动检测用户登陆状态,如果登陆过期或者未登录,启动完成后直接跳转登录界面。
④APP启动检测用户登陆状态,如果登录信息有效,启动完成后直接跳转首页界面。
(2)在登录界面,看需求。
①手机号:暂时只支持大陆账号
②验证码:长度为6位数字
③短信验证码文本内容:【正教】456712(正教验证码),30分钟内有效,为确保您账号安全,请勿把验证码告诉他人。感谢您关注正教!
④登录按钮点击后。系统可能的弹窗提示。
用例设计方法采用等价类划分法和边界值分析法、因果图分析法。
等价类划分法:
①手机号的有效性。(手机号包含各种不合法字符);
②验证码包含各种不符合要求的字符;
边界值分析法
①手机号超过/不足长度限制;
②验证码超过/不足长度限制
③验证码有效期为30分钟;所以超过30分钟后使用验证码,就是边界值的使用。
④弹窗提示1s消失;超过或者不足的测试都是边界值的应用。
因果图法:
①提交数据时,APP网络中断,有网络异常的提示;
②提交数据时,服务端崩溃或者无法提供正常服务,有服务器报错提示或者等待提示
③提交数据时。手机号不符合要求(不存在),有手机号错误的提示
④提交数据时,验证码输入不是收到的验证码、超市,有验证码错误提示
(3)课程内容页。需求如图所示:
用例设计方法:场景法、等价类划分、边界值分析法。
场景法
①该课程今日有作业、有提问的内容展示。老师发布作业的时候,学生提问。
②该课程今日有作业、无提问的内容展示。老师发布作业的时候,学生没有提问。
③该课程今日无作业、有提问的内容展示。老师没有发布作业的时候,学生提问。
④该课程今日无作业、无提问的内容展示。老师没有发布作业的时候,学生也不提问。
等价类划分法、边界值分析法
①日期的显示。有没有出现2017年2月有29天的现象?
②日期的显示。会不会出现2017年2月1日和2017年1月31日重复或者像个一天的现象?
总结:所有测试用例的设计方法,没有独立使用的,都是融合在一起使用。往往在一个软件的界面中,都可以使用好几种测试用例的设计方法。
正交实验法是一种极其特殊的用例设计方法,一般没地方用。下面图中的功能适合使用:
黑盒测试用例设计方法三(正交实验法、功能图法、用例设计方法综合选择)相关推荐
- 软件测试--黑盒测试用例、测试步骤设计方法(正交实验法、功能图法、其他用例设计方法)
黑盒测试用例设计(三) 正交实验法 正交表:一种特制的表,一般的正交表记为Ln(mk) m代表水平数,k代表因素数,n是需要进行实验的个数.这三个数没有任何数学关系. 仅适用于每个因素的水平数都相同的 ...
- 正交实验法+功能图法
文章目录 正交实验法 功能图法 正交实验法 1.使用工具:正交表 2.统计和分析实验数据,从大量实验中找到合适的实验数据组合. 3.大量实验挑选出具有代表性的点,进行实验,分析数据 4.核心概念 1) ...
- 测试用例入门(三)-使用边界值分析法编写测试用例
在<软件测试>一书中是这样描述边界值分析法的作用:如果在悬崖峭壁边可以自信.安全的行走而不掉下去,平地就不在话下了. 本篇文章中的演示代码均由Python编写 目录 一.边界值分析法概述 ...
- 四因素三水平正交试验表_测试用例设计方法(二)——正交实验法
正交实验法严格来说不是为测试用例设计的方法,它广泛用于各种实验实践中.是研究多因素多水平的又一种设计方法,它是根据正交性从全面试验中挑选出部分有代表性的点进行试验,这些有代表性的点具备了"均 ...
- 测试用例设计方法:正交实验法使用示例
1.简介 正交试验设计法(Orthogonal experimental design), 是从大量的试验点中挑选出适量的.有代表性的点,应用依据迦罗卡瓦理论导出的"正交表",合理 ...
- 软件测试 通用技术03 测试用例 黑盒测试用例设计方法 等价类划分法 边界值分析法 判定表法 场景法 功能图法 其他用例设计方法 用例设计方法综合选择
文章目录 1 测试用例 1.1 测试用例的定义 1.2 测试用例模板 1.3 测试用例模板的内容 测试用例编号 测试项 依赖用例 测试步骤 测试数据 预期结果 测试结果 测试人 备注 2 测试用例编写 ...
- 常用测试用例设计方法之正交实验法详解
正交试验法 正交试验设计法,是从大量的试验点中挑选出适量的.有代表性的点,应用依据迦罗瓦理论导出的"正交表",合理安排试验的一种科学的试验设计方法. 因子/因素:所有影响试验指标的 ...
- 其他测试用例设计方法-错误推测法与正交实验法
常用的测试用例设计方法,前面基本都介绍完了,其中等价类划分法.边界值法与场景法是最常用的. 本篇文章介绍剩余两种测试方法--错误推测法与正交实验法. 错误推测法 基于经验和直觉推测程序中所有可能存在的 ...
- 软件测试中用正交实验法设计测试用例
软件测试中用正交实验法设计测试用例 正交实验法的由来 一.正交表的由来 拉丁方名称的由来 古希腊是一个多民族的国家,国王在检阅臣民时要求每个方队中每行有一个民族代表,每列也要有一个民族的代表. 数学家 ...
最新文章
- mysql之子查询作业
- 计算机控制zos,第二章zOS操作系统的功能概述2.1zOS的内存管理.PDF
- php工厂模式和单例模式,php 设计模式之工厂模式、单例模式、注册树模式
- homebrew mac_借助Homebrew使从Mac到Linux的转换更加容易
- linux java setting,setting java_home and path environmental variables in linux [duplicate]
- linux保存编辑信息,linux系统编辑神器 -vim用法大全
- 如何访问个人邮箱中的未读邮件
- 01背包和完全背包 的完整讲解版 包含 一维数组实现 和二维数组实现题目
- 服务器增加驱动器,向存储空间直通添加服务器或驱动器
- android打飞机游戏素材,微信打飞机游戏素材
- 【滤波器】7. 带通滤波器
- API接口性能测试应该关注哪些指标
- 举例说明国内云计算厂商代表有哪些?
- javaScript实现通过鼠标滑轮改变元素大小
- android9.0设置默认输入法
- WorldEdit 指令大全 开发记录
- 一键更新盘古权限系统
- 七夕到了,程序员怎么过七夕
- QQ兼容android版本6,QQ浏览器6.6.1版本支持安卓7.0 支持多项新特性
- 【Linux虚拟机安装及网络配置】
热门文章
- Token最核心的价值是建立一套激励机制,INE智联生态一直在践行!
- dm8基础知识及常见问题解决(linux)
- 硬刚马斯克,为何不能简单地“将区块大小增加10倍?”| Vitalik Buterin
- matlab算置信带,Kolmogorov-Smirnov检验置信带在Matlab中的实现
- 小程序中使用Symbol类型的iconfont
- ArcGIS arcpy代码工具——数据驱动工具批量导出MXD文档并同步导出图片
- 线性八叉树_八叉树OcTree
- 【华为OD机试真题 java、python、c++】字符串解密(100%通过+复盘思路)
- 使用MySQL数据库创建表时添加外键约束
- 2019年主导云计算安全的发展趋势