设计测试用例的方法

news2025/2/1 22:56:01

设计测试用例的方法有很多,等价类划分法是重点,边界值分析法次之,对于因果图法知道概念就行,老师说考试不会考,但是历年考试中貌似考过一次,这就不知道了,反正考试大题基本课本例题,好像数字都不带换的。猜的,考完别真实我,扫黑除恶请认准 1101 花开富贵,谢谢!

目录

1. 等价类划分法

2. 边界值分析法

3. 因果图法

4. 正交法

5. 场景法

6. 判定表法

7. 决策表法


1. 等价类划分法

等价类定义:输入具有代表性的数据子集

等价类划分法是把所有可能的输入数据,即把程序的输入数据集合划分成若干个子集(即等价类),然后从每一个等价类中选取少数具有代表性的数据作为测试用例。

等价类分为:

① 有效等价类是指完全满足产品规格说明的输入数据,即有效的、有意义的输入数据所构成的集合;

② 无效等价类和有效等价类相反,即不满足程序输入要求或者无效的输入数据构成的集合。

随便举个例子,计算两个1到100之间整数的和。

这时候还用穷举测试吗?

1+2=3,1+3=4  ······ 1+100=101

100+1=101,100+2=102 ······ 100+100=200

你说可以,那我现在换成计算1到1000000之间整数的和,穷举一下?显然不可能,这时候就用到我们的等价类划分法。

有效等价类:满足题目需求的,1 ~ 100之间的整数;

无效等价类:不满足题目需求的,小于1,大于100,非数字,小数。

再比如我们课本上的电话号码的例子,历年题中有考过类似的。

经过类别划分后,每一类的代表性数据在测试中的作用都等价于这一类中的其他值。

2. 边界值分析法

很多时候,我们的错误点往往都是在边界处发生的,为什么呢?

有效数据和无效数据的分界点,往往作为程序员编写程序的判断点,代码编写者一不留神,多写一个等于号或者少写一个等于号,边界处很可能就会出问题了,从而引出边界值分析法。

它是我们目前非常常用的一种黑盒测试用例方法。

什么是边界?

边界是指对于输入等价类和输出等价类而言,稍高于其边界值及稍低于其边界值的一些特定情况。

边界范围:选取正好等于、刚刚好大于或刚刚好小于边界值作为测试数据,每一个边界都要单独作为一个专门的测试用例去编写。

同样还是上边那个例子,计算两个1到100之间整数的和。

正好等于:1,100

刚刚好大于:2,101

刚刚好小于:0,99

特殊边界值:

① 输入域的默认值、空值或空格;

② 报表的第一行、最后一行或第一列、最后一列;

③ 循环的第一次和最后一次;

④ 屏幕上光标移到最右边、最下面等;

⑤ 16 bit 整数的 32767、-32768。

3. 因果图法

通过因果图可以建立输入条件和输出条件之间的逻辑模型,当输入有很多,不同输入的组合对应不同的输出,用因果图来分析不同输入组合和不同输出之间的关系。

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

①分析出所有的输入输出;

②找出输入输出之间的关系;

③根据输入输出之间的关系画因果图;

④根据因果图画判定表;

⑤根据判定表设计测试用例。

因果图举例:

4. 正交法

使用步骤:

① 根据需求形成因子状态表(因子 → 控件名称,状态 → 每个控件对应的取值);

② 确定所采用的正交表;

③ 将正交表中的字母用文字代替;

④ 一行就是一条测试用例。

应该不考,了解即可。

5. 场景法

基本流:按照正确的业务流程操作的一种途径;

备选流:出现错误的操作流程。

场景法设计测试用例的步骤:

① 确定项目角色(前台用户、后台用户);

② 明确角色的常用功能;

③ 根据需求构建测试场景;

④ 一个场景就是一条 case。

举个例子,用户进入一个在线购网站进行购物,选购物品后,进行在线购买,这时需要使用账号登录,登录成功后,进行付钱交易,交易成功后,生成订购单,完成整个购物过程。

这里仅展示部分场景,实际上你能想象到的每个场景都要写出来。 

6. 判定表法

案例如下,若用户欠费或者关机,则不允许主被叫。

 适用范围:题目条件中有多个输入和多个输出,输入和输入之间有相互的组合关系,而且输入和输出之间有相互的制约和依赖关系。

7. 决策表法

决策表方法就是对多个条件的组合进行分析,从而设计测试用例来覆盖各种组合,决策表从输入条件的完全组合来满足测试的覆盖率要求,具有严格的逻辑性,所以基于决策表的测试用例设计方法是最严格的,测试用例具有很高的完整性。

条件桩:列出问题的所有条件;

动作桩:列出可能针对问题所采取的操作;

条件项:针对所列条件的具体赋值;

动作项:列出在条件项组合情况下应该采取的动作。

具体步骤:

① 列出所有的条件桩和动作桩;

② 填入条件桩;

③ 填入动作桩;

④ 简化、合并相似规则或者相同动作。

课本实例

根据输人3条边(a、b、c)边长的值来判断是否构成一个三角形,如果是三角形,继续断是等腰三角形还是等边三角形等。为了使问题简单些,假定 a、b、c 只能输人大于零的数不需要考虑 a、b、c 取零或负数的情况。

分析:根据3条边,判断是否能构成三角形,只要两条边之和大于第3边。然后在判断是否有两条边相等,是否所有两条边都相等,从而决定是等腰三角形还是等边三角形。所以共有6个条件---a+b>c、a+c>b、b+c>a、a=b、b=c、a=c;而动作(结果显示)有4个 —— 非三形、不等边三角形、等腰三角形、等边三角形。而且,根据一些规则和推理可以简化组合。

如果不能构成三角形,则不需要判断后3个条件。
如果构成三角形,即 a+b>c、a+c>b 和 b+c>a 都必须成立,没有例外。
如果 a=b 且 a=c,则 b=c 肯定成立。
如果 a=b,而 a=c 不成立,就不需要判断 b=c,实际上 b=c 也肯定不能成立,只能为等腰三角形。

这样可以大大简化,将64种组合降低到8种组合,形成非常优化的决策表,每一列构成一个规则,设计相应的测试用例覆盖各项规则,即覆盖表中各列。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/104281.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(十八)Vue之生命周期

文章目录引出生命周期外部的定时器实现生命周期实现生命周期详解挂载流程更新流程销毁流程总结Vue学习目录 上一篇:(十七)Vue之自定义指令 引出生命周期 先看一个需求:一上来就让一段文字的透明度循环从1-0-1的过程&#xff0c…

Fabric.js 文本自动换行的实现方式

本文简介 点赞 关注 收藏 学会了 在 fabric.js 提供的文本组件中,默认状态是不会自动换行。如果你的使用场景中需要自动文本自动换行,可以使用 Textbox ,并将 splitByGrapheme 设置为 true 即可。 文本自动换行 如果需要实现本文自动换行…

盘点:保护企业数据安全的10种方法

即便是大型企业也无法防止网络攻击导致的数据泄露,但有多种保护数据安全的方法。 许多公司谨慎处理敏感信息,包括客户个人信息、企业财务记录和账户,以及企业暂时不想泄露的绝密项目,保持数据的安全至关重要。 全球知名企业发生了…

Java(十五)----Stream流

1 Stream流 1.1 Stream流的优势 Java8中有两大最为重要的改变。第一个是 Lambda 表达式;另外一个则是 Stream API。 Stream API ( java.util.stream) 把真正的函数式编程风格引入到Java中。这是目前为止对Java类库最好的补充,因为Stream API可以极大提…

11 深入了解InnoDB引擎

1. Innodb逻辑存储结构 表空间:ibd文件段segment:区extent:一个区大小为1m,里面有64个page页;为了保证页的连续性innodb会一次从磁盘申请4-5个区页page:一个page页大小为默认为16k行row:Trx id、…

深入探究Python上下文管理器

引子 上下文管理器是一种简化代码的有力方式,其内部也蕴含了很多Python的编程思想,今天我们就来探究一下Python的上下文管理器。 大家之前都知道,使用Python打开文件的时候最好要使用with语句,因为这样就算在文件操作中出现了异常…

基于java的校园共享自行车系统的设计与实现/校园共享单车管理系统

摘 要 伴随着社会以及科学技术的发展,互联网已经渗透在人们的身边,网络慢慢的变成了人们的生活必不可少的一部分,紧接着网络飞速的发展,管理系统这一名词已不陌生,越来越多的学校、公司等机构都会定制一款属于自己个…

React扩展:setState、lazyLoad、hook

目录 1.setState的两种写法 ①setState(对象,[callback])②setState(函数,[callback])函数可以接收到stata和props,callback回调函数能获取状态更新后的数据 写了个Demo组件 import React, { Component } from reactexport default class Demo extends Component…

万岳直播电商系统源码代码分析

以小编经验来看,传统商户领域的客流量受地区的限制,往往比较单一、固定,商家需压耗费大量的时间进行打造IP,而电商直播系统的出现则完全打破了这一规则,商家可以通过直播的形式,轻松获取源源不断的客流量&a…

网络中的一些基本概念(总结)

目录 1.IP地址 2.端口号 3.协议 4.五元组 5.协议分层 1.OSI七层模型 2.TCP/IP五层(四层)模型 6.网络分层对应 7.封装 8.分用 9.客户端和服务器 1.IP地址 IP地址是用来定位主机的网络地址,主要用于标识主机和一些其他的网络设备,比如路由器通常是用点分十进制来表示的]…

节律失调:Theta-Gamma耦合精度改变损害老年人的联想记忆

根据著名的神经通信理论,振荡活动的精确协调能够形成联想记忆。我们认为,正常的认知老化会损害神经通信的时间精确性,从而损害联想记忆的形成。我们发现,在年轻人和老年人中都存在高频gamma功率与低频theta相位的耦合支持联想记忆…

地下水监测系统介绍 地下水水位在线监测系统解决方案及应用

平升电子地下水监测系统/地下水水位在线监测系统解决方案由地下水自动监测站监测设备和监测中心平台软件组成。监测设备自动采集、存储地下水水位、水温、水量、水质数据,通过4G/NB-IoT/北斗无线通信网络定时上报至省/市/县级监测中心平台,平台自动接收和…

神奇的 Excel 插件:Azure DevOps 插件

我想离开测试部分,与您分享一个插件,我发现它在我作为业务分析师的商业生活中非常有用。如果您与 Azure DevOps Board 擦肩而过,本文适合您:) 本周,我将与您分享一个我用来跟踪在 Azure DevOps 中完成的工作的插件。 在解释它的安装和使用之前,我想分享一下为什么我需要…

【Lilishop商城】No3-11.模块详细设计,促销模块(优惠券、满减、秒杀、积分)的详细设计

仅涉及后端,全部目录看顶部专栏,代码、文档、接口路径在: 【Lilishop商城】记录一下B2B2C商城系统学习笔记~_清晨敲代码的博客-CSDN博客 全篇会结合业务介绍重点设计逻辑,其中重点包括接口类、业务类,具体的结合源代…

skynet开发一个猜数字游戏

skynet开发一个猜数字游戏游戏简介接口设计和实现agent服务接口room服务接口hall服务接口redis服务gate服务接口编写skynet的config文件游戏演示总结后言游戏简介 猜数字游戏目的是掌握 actor 模型开发思路。 规则: 满三个人开始游戏,游戏开始后不能退…

1.初识Node.js

由于浏览器中有Javascript解析引擎,所以写的javascript可以在浏览器中执行,不同的浏览器有不同的JS解析引擎。由于浏览器内置了DOM,BOM,AJAX这种API,所以JS才能使用他们。 Node.js和浏览器都可以为JS提供运行环境,可以使用Node.j…

【Python机器学习】神经网络中误差反向传播(BP)算法详解及代码示例(图文解释 附源码)

需要全部代码请点赞关注收藏后评论留言私信~~~ 误差反向传播学习算法 用神经网络来完成机器学习任务,先要设计好网络结构S,然后用训练样本去学习网络中的连接系数和阈值系数,即网络参数S,最后才能用来对测试样本进行预测。 在研…

智能驾驶进入新周期:从「定点量产」到「做大做强」

智能驾驶赛道已经进入一个全新的周期。 过去三年时间,中国本土供应商陆续进入乘用车前装量产赛道,部分企业实现了从0到1的量产突围,而一些领跑的本土供应商已率先进入规模化上车的新阶段。 从最初的技术突破、产品落地,到定点量…

干货 | IC模拟版图设计学习笔记,一文教你快速入门

模拟版图设计处于IC设计流程的后端,属于模拟IC设计岗位的一种。随着我国半导体行业的发展,IC模拟版图岗位的人才需求也越来越大。而每个芯片最终能够付诸于生产都离不开集成电路版图设计师的功劳,所以IC模拟版图工程师在芯片产业的发展过程中…

Nginx-反向代理

什么是反向代理 用户直接访问反向代理服务器就可以获得目标服务器的资源。这一过程叫反向代理 如何配置反向代理 修改nginx配置文件 1.切换到nginx的conf路径下操作nginx的配置文件 cd /usr/local/openresty/nginx/conf 1.1防止修改错误可以先备份一下配置文件 cp nginx.…