测试用例的设计方法

等价类

因材施教的例子:

原则上讲,老师都应该根据每个学生的学习情况制定相应符合的学习方案,但是实际上学生太多,老师管不过来,只能讲学生分为三六九等,优等生强调知识面的扩展和综合能力的提升,中等生强调夯实基础,查缺补漏,差等生强调优先掌握重点,暂时逃过难点.......

思路:输入的集合是无穷的,不能全部都覆盖到

等价类:依据需求将输入划分为若干个等价类,从等价类中选出一个测试用例,如果这个测试用例测试通过,则认为所代表的整个等价类测试通过,这样就可以通过较少的测试用例达到尽量多的功能覆盖,解决了不能穷举测试的问题

弊端:等价类只考虑输入域的分类,没有考虑输入域的组合,需要其他的设计方法和补充

  • 有效等价类:对于程序的规格说明书是合理的,有意义的输入数据构成的集合,利用有效等价类验证程序是否实现了规格说明书中所规定的功能和性能
  • 无效等价类:根据需求说明书,不满足需求的集合

超市买水果

有效等价类:苹果,香蕉,桃子...

无效等价类:青菜,大米,饮料...

边界值

日常语言的漏洞:

考完试发成绩了,老师布置寒假作业:超过60分的,所有题目抄写一遍,低于60分的,所有题目抄写三遍

于是小明就没有作业~~~,因为他刚好60分

边界值:边界值分析法就是对输入或者输出的边界值进行测试的一种黑盒测试方法,通常边界值分析法是作为对等价类划分方法的补充,这种情况下,其测试用例来自等价类的边界

1. 输入框长度为1-11,边界值取值:0,1,11,12

2. 运动员参赛项目为1-3项,边界值取值:0项,1项,3项,4项

3. 查询面页面有999行,每50行为一页,边界值取值:0行,1行,50行,51行,999行

因果图

因果图:因果图是一种简化了的逻辑图,能直观的表明程序输入条件(原因)和输出动作(结果)之间的相互关系,因果图法是借助图形来设计测试用例的一种系统方法,特别适用于被测试程序具有多种输入条件,程序的输出又依赖于输入条件的各种情况

因果图需要掌握的基本知识:

  • 恒等

恒等:如果原因为真,那么结果必为真

与:只有当两个原因都为真的时候结果才为真

或:两个原因中有一个为真,那么结果就为真

非:只有原因为假,结果才为真 

因果图设计测试用例的步骤:

  1. 分析所有可能的输入和可能的输出
  2. 找出输入与输出之间的关系
  3. 画出因果图
  4. 把因果图转化成判定表
  5. 把判定表对应到每一个测试用例

案例:

淘宝在双十一退出打折优惠活动,订单已提交,订单金额大于300或有红包,则优惠

1. 对于这条业务规则,首先通过分析所有可能的输入和可能的输出,可以得到如下结果:

  • 输入:订单已提交,订单金额大于300,有红包
  • 输出:优惠,不优惠

2. 然后进行第二步,找出输入域输出之间的关系,通过分析得出以下对应关系

  • 订单已提交,订单金额大于300,则优惠
  • 订单已提交,订单金额小于等于300,无红包,不优惠
  • 订单已提交,订单金额小于等于300,有红包,优惠
  • 订单已提交,有红包,优惠
  • 订单未提交,不优惠

3. 为了方便画出因果图和判定图,对所有输入和输出编号,编号如下:

  • 1:订单已提交
  • 2:订单金额大于300
  • 3:有红包
  • 21:优惠
  • 22:不优惠

4. 画因果图

5. 画判定表

    1 2 3 4 5 6 7 8
条件 1 Y Y Y Y N N N N
  2 Y Y N N Y Y N N
  3 Y N Y N Y N Y N
中间结果 11 Y Y Y N Y Y Y N
动作 21 Y Y Y N N N N N
  22 N N N Y Y Y Y Y

6. 最终的测试用例

1,2,3,4,5(包括6,7,8)

正交排列

因果图法测试用例太多怎么办?

正交法的目的是为了减少用例数量,用尽量少的用例,覆盖输入的两两组合

正交试验设计是研究多因素多水平的一种设计方法,它是根据正交性,由实验因素的全部水平组合中挑选出部分有代表性的点进行实验,通过对这部分实验结果的分析了解全面试验的情况,找出最优的水平组合,正交试验设计是一种基于正交表的,高效率,快速,经济的试验.

因素(Factor):在一项试验中,凡是考虑的变量都称为因素(变量)

水平(位级)  Level :在试验范围内,因素被考查的值称为水平(变量的取值)

正交表的构成:

  • 行数(Runs):正交表中行的个数,即试验的次数,用N表示
  • 因素数(Factors): 正交表中列的个数,用C表示
  • 水平数(Levels): 任何单个因素能够取到的值的最大个数,正交表中包含的值为从0到数"水平数-1"或者从1到"水平数",用T表示

正交表的表示形式: L=行数(水平数*因素数)  L=N(TC)

正交表的两条性质:

  • 每一列中各数字出现的次数都一样多
  • 任何两列锁构成的各有序数对出现的次数都一样多

正交法设计测试用例的步骤:

  • 1、有哪些因素(变量)
  • 2、每个因素有哪几个水平(变量的取值)
  • 3、选择一个合适的正交表
  • 4、把变量的值映射到表中
  • 5、把每一行的各因素水平的组合作为一个测试用例
  • 6、加上你认为可疑且没有在表中出现的用例组合 

案例

以注册为例:

1.因素:姓名,邮箱,密码,确认密码,验证码

2.水平: 填写,不填写

实验说明 选择正交表 因素与水平      
序号 1 2 3 4 5
因素名称 姓名 EMAIL 密码 确认密码 验证码
水平1 填写 填写 填写 填写 填写
水平2 不填写 不填写 不填写 不填写 不填写

3.表中的因素数:5

表中至每个因素数的水平数=2

行数取最少的一个,即试验次数最少的一个

L=N(TC)=(2-1)*5+1=6(25)     N试验次数   T水平数   C因素数

4.生成测试用例

实验计划表            
所在列 1 2 3 4 5 6
因素 姓名 EMAIL 密码 确认密码 验证码 实验结果
实验1 填写 填写 填写 填写 填写  
实验2 填写 填写 不填写 填写 不填写  
实验3 填写 不填写 填写 不填写 不填写  
实验4 不填写 填写 不填写 填写 不填写  
实验5 不填写 不填写 填写 不填写 填写  
实验6 不填写 不填写 不填写 不填写 填写  

场景设计法

现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流,该方法可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,使测试用例更容易理解和执行

案例

以注册为例

错误猜测法

错误猜测法是经验丰富的测试人员喜欢使用的一种测试方法

基于经验和直觉,找出程序中你认为会出现的错误,有针对性地设计测试用例,经验可能来自于对某项业务的测试较多,也可以来自售后用户的反馈意见,或者从故障管理库中整理出bug,整理出产品越往哪些地方越容易出现问题,问题越多的地方,潜在的bug越多

案例

以注册为例

1、校验中特殊字符空格的处理?
2、密码校验中的大小写?
3、姓名中的特殊字符?
4、密码发送是否明文

史上最详细的测试用例的设计方法及案例相关推荐

  1. 2021最详细的测试用例的设计方法及案例——骚操作

    测试用例的设计方法 一.概念 1.什么是测试用例? 在测试过程中很重要的一类文档,它是测试工作的核心.是一组在测试时输入输出的标准.是软件需求的具体对照. 2.测试用例的作用: 检验软件是否满足客户需 ...

  2. 史上最详细配置阿里镜像加速器方法

    史上最详细配置阿里镜像加速器方法 遇到问题及解决过程   我在centos 7下使用 docker pull mysql 命令安装mysql(我在SmarTTV软件上操作的),需要下载很多的文件,而且 ...

  3. 测试用例的设计方法及案例

    测试用例的设计方法 一.软件测试的生命周期(软件测试的流程是什么?) 二.如何描述一个BUG? 三.测试用例的设计方法 3.1等价类 3.2边界值法 3.3因果图法 3.4场景设计法 3.5正交排列法 ...

  4. 史上最详细黑盒测试用例方法总结(等价类、边界值、因果图等)

    黑盒测试用例设计方法 一.等价类 等价类划分法原理 1.把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例 2.每一类的代表性数据在测试中的作用等价于这一类中的其他值,如果某 ...

  5. 史上最全的测试用例设计方法

    目录 前言 等价类划分方法: 边界值分析方法: 错误推测方法 因果图方法 判定表驱动分析方法 总结 前言 今天还是给大家带来一些干货,总结了一下测试用例的设计方法.具体内容太多我总结成了文档,获取方法 ...

  6. 自学软件测试怎么学?【史上最详细学习路线】(附全套资料)

    对于想入行学软件测试的新手来说,首先需要一个高效的学习线路图,还要有全套的学习资料,两者结合才能有最好的学习效果. 授人以鱼不如授人以渔,所以今天我也想把我的经验和经历分享给大家,史上最详细的软件测试 ...

  7. 软件测试自学怎么学?【史上最详细学习路线】(附全套资料)

    对于想入行学软件测试的新手来说,首先需要一个高效的学习线路图,还要有全套的学习资料,两者结合才能有最好的学习效果. 授人以鱼不如授人以渔,所以今天我也想把我的经验和经历分享给大家,史上最详细的软件测试 ...

  8. 史上最详细的微生物扩增子数据库整理

    声明:文件所有链接内容来自"生信控"公众号,已经获作者向屿授权. 本人对每个数据库的使用目的和经验配导读,需要使用的小伙伴读点击链接跳转原文学习. "生信控"相 ...

  9. IPV4与IPV6的区别(史上最详细)

    IPV4与IPV6的区别(史上最详细) 描述 IPv4 IPv6 地址 长度为 32 位(4 个字节).地址由网络和主机部分组成,这取决于地址类.根据地址的前几位,可定义各种地址类:A.B.C.D 或 ...

  10. 史上最详细唇语识别数据集综述

    更新:VIPL官网网页格式更改,导致旧的LRW1000链接无法访问,现已更新LRW1000数据集链接,内部包含申请需要的文件 推荐一个大佬的综述,关于实现唇语识别的多种途径. 说明:本文包括经常用语唇 ...

最新文章

  1. 用Uber的方式管理机器学习模型
  2. 数据中心内虚拟机迁移带来的网络技术难题
  3. php v9验证码错误,PHPCMS v9后台登陆提示验证码错误的解决方法
  4. Android零基础入门第26节:layout_gravity和gravity大不同
  5. linux dhcpv6有状态配置,Centos 7下IPV6 有状态DHCPV6配置
  6. 你和语言模型,谁的填空能力更强?
  7. 宇视网络视频录像机通道名称如何设置
  8. 华为AX3 PRO路由器与光猫桥接
  9. 【FPGA】基于OV5640的 图像边沿检测
  10. Spring三种切面
  11. wav2letter++ 第一次training 日志
  12. gsoap中文文档(1.介绍)
  13. docx行间距怎么设置_word全文行距怎么设置
  14. 千锋培训的python怎么样学习内容有什么?
  15. 空间数据结构(四叉树、八叉树、BVH树、BSP树、k-d树)
  16. SRE运维面试相关高频题库
  17. TRIZ系列-创新原理-1-分割原理
  18. 各类正则表达式收集Java版
  19. 机器学习西瓜书笔记:神经网络:BP算法公式推导
  20. js 延期执行_javaScript 中怎么延迟执行一个方法?

热门文章

  1. 边城工具集:绘图及标注工具
  2. 微信卡券的创建、领取、核销
  3. Win11 系统安装事项,跳过微软账户登录,VMWare安装Win11
  4. 基于SNN脉冲神经网络的Hebbian学习训练过程matlab仿真
  5. UML之Astah的基本使用教程-1
  6. chrome 截长图功能
  7. 你想要的单片机自学指南都在这里(大一必看)
  8. Gradle的使用教程
  9. gradle教程java_Gradle教程系列 ——Gradle基本语法
  10. 2015阿里天池大数据竞赛-Solution