day02_设计测试用例的常见方法

news2024/12/27 11:05:05

软件测试用例

概念:一个为了特定的目的(检验开发的代码实现是否满足用户的需求)而设计的文档(包含测试输入、执行条件、预期结果),文档的形式可以是xmind、excel等。

测试用例的核心要素

常见测试用例的包括但不限于下面核心8要素

  • 用例编号:表示用例的唯一性,有时也叫用例ID
  • 用例标题:表示要测试或验证的目的,通常一句话简要描述。忌讳出现有无,忌讳出现模糊不清的词语。一般使用输入内容+结果的方式呈现,见名知意。
  • 测试项目:当前测试的功能所属范围
  • 用例级别:表示用例测试功能的重要程度或者影响力。体现用例执行的先后顺序。测试正常功能的测试用例永远大于测试异常的
  • 预置条件:验证该功能需要的前提条件
  • 输入数据:必要的输入数据
  • 执行步骤:验证该功能需要的先后操作步骤,必须要有序号尽可能详细 ,保证任何人都通过执行步骤,来使用此测试用例
  • 预期结果:希望得到的结果,必须明确讳出现有无,忌讳出现模糊不清的词语,可以验证测试用例是否通过。分析需求文档,来确定预期结果

测试用例模板

示例

软件测试用例的作用

  • 便于理清测试思路,确保需覆盖测试的功能点无遗漏
  • 便于测试工作量的评估
  • 便于提前准备测试数据
  • 便于把控测试工作进度
  • 便于回归测试
  • 便于测试工作的组织,提高测试效率,降低测试交接成本

设计测试用例的常见方法,如下所示:

等价类划分法

等价类的概念: 在所有测试数据中,具有某种共同特征的数据子集。 我们使用等价类划分法可以解决测试过程中遇到要编写无穷大测试用例的问题。大大减少了测试用例的数量,从而提升测试效率。

适用场景

  • 针对需要数据量大,有测试数据输入的地方典型代表:页面级的输入框类测试

等价类分类:

  • 有效等价类:满足需求的数据子集
  • 无效等价类:不满足需求的数据子集

等价类划分法设计用例步骤

  1. 明确需求
  2. 确定有效和无效等价类
  3. 提取数据编写测试用例

 如何确定有效和无效的等价类

  • 有效等价类:满足需求的数据就是有效等价类
  • 无效等价类:我们可以从规则(需求本身)丶长度丶类型丶是否为空(必填项)丶是否重复.. 等方面去违反,来设计无效等价类。注意:我们一条测试用例最多只能有一个不满足需求的条件,便我们确定bug的所在。

案例:

新浪邮箱登录,要求输入(邮箱名)@sina.cn和(密码)。邮箱名为:4-16位字符,支持英文、数字、下划线(不能全是数字或者下划线)。密码:6-18位字符

分析过程 

设计测试用例:

下面是部分测试用例

       ID      模块优先级                         标题 前置条件 测试数据     执行步骤预期结果
register_001mailboxp1邮箱正确(4-16位英文)和密码正确(6-18位字符)时,登录成功网络正常

账号:abcd

密码:abcdef

1:打开邮箱

2:输入正确账号和密码

邮箱登录成功

用例标题:表示要测试或验证的目的,通常一句话简要描述,其他标题如下所示

边界值分析法

边界值分析法概念基于边界值有效等价类和无效等价类的分界点设计测试用例的一种【黑盒】方法。作用:对等价类的补充,统计表明程序最容易出错的地方就是在边界附近。

适用场景

  • 在等价类的基础上针对有边界范围的测试数据输入的地方
  • 常见词语描述:大小、尺寸、重量、最大、最小、至多、至少等修饰词语
  • 典型代表:有边界范围的输入框类测试

边界范围的确定

选取正好等于、刚好大于、搞好小于边界的值作为测试数据

  • 上点:边界上的点(正好等于)
  • 离点:距离上点最近的点(刚好大于、刚好下于)
  • 内点:范围内的点(区间范围内的数据)

示例

边界范围取值优化 

作用:7个点优化为5个点

  • 上点:必选(不考虑区间开闭)
  • 内点:必选(建议选择中间范围)
  • 离点:开内闭外(考虑开闭区间,开区间选择内部离点,闭区间选择外部离点

 边界值法设计用例步骤

  1. 明确需求
  2. 确定有效和无效等价类
  3. 确定边界范围值
  4. 提取数据编写测试用例

注意事项:边界值分析法是对等价类划分法的一种补充,因此同一个需求的测试用例应该是两者之和。

判定表法

等价类边界值分析法主要关注单个输入类条件的测试,并未考虑输入条件之间的各种组合、输入条件与输出结果之间有相互制约关系的测试。此时我们就要使用判定表法了。判定表:是一种以表格形式表达多条件逻辑判断的工具

应用场景

  • 存在多个输入条件、多个输出结果,输入和输入之间有组合关系,输入和输出之间有依赖或关系

判定表组成:

  • 条件桩:所有输入条件
  • 动作桩:所有的可能的输出结果
  • 条件项:单个条件的取值范围,一般都是有效等价类和无效等价类
  • 动作项:基于每一种条件的组合,得到确认的结果

设计测试用例的步骤

  1. 明确条件桩(找到所有的输入条件
  2. 明确动作桩(找到所有的输出结果
  3. 对条件桩进行全组合
  4. 明确每个组合对应的动作桩(基于每一种条件的组合情况,确定本组合下的输出结果。)
  5. 设计测试用例,每行数据对应一条测试用例

约定:

  • 金额大于500的情况下使用Y代替
  • 过期的情况下使用Y代替
  • 金额小于500情况下使用N代替
  • 不过期的情况下使用N代替

判定表如下所示:

因果图

概念:用图解的方法表示输入的各组合关系,写出判定表,进而设计测试用例的一种【黑盒测试】方法。

适用范围:

  • 适用于分析程序输入条件的各种组合情况,以及输入和输出之间的依赖关系。

基本符号

  • 恒等(-):条件成立,结果成立。
  • 非(~)NOT:条件成立,结果不成立;条件不成立,结果成立。
  • 或(V)OR:只要有一个条件成立,结果就成立;所有条件都不成立时,结果才不成立。
  • 与/且(^)AND:多个条件必须同时成立,结果成立;只要有一个不成立,结果就不成立。

设计测试用例的步骤

  1. 需求分析
  2. 画出因果图
  3. 将因果图转换为判定表
  4. 生成测试用例

正交法

正交表是数学中一种特殊的表。使用此表的好处:用最小的测试用例获得最大的测试覆盖率。

正交表的基本说明

  • k代表因素(输入参数)
  • m叫水平(输入参数的取值)
  • n代表测试用例数
  • 读法:k因素m水平

​​​应用场景

  • 存在多个输入条件、多个输出结果,输入和输入之间有组合关系,输入和输出之间有依赖或关系。组合情况数据量太别大的情况下。

 基于正交表设计测试用例步骤

  1. 需求分析
  2. 确定因素与水平(因素:控件名称;水平:每个控件对应的取值)
  3. 确定要采用的正交表
  4. 将正交表中的字母用文字代替
  5. 设计测试用例(一行就是一条测试用例)

基于allpairs设计测试用例

  1. 需求分析
  2. 确定因素与水平(因素:控件名称;水平:每个控件对应的取值)
  3. 将确定的因素与水平复制到txt文件中
  4. 打开DOS窗口,进入allpairs目录,运行命令:allpairs.exe test.txt > result.txt
  5. 根据生成的新文件编写测试用例(一行就是一条测试用例)

场景法

场景法,也可以叫流程图法,是用流程图描述用户的使用场景,然后通过覆盖流程路径来设计测试用例

场景法的意义

  • 用户使用角度:用户平时使用的不是单个功能,而是多个功能组合起来进行使用
  • 测试人员角度:平时测试的都是单个功能点进行测试,容易忽略多个功能的组合测试

 场景法的适用场景

  • 对于多个功能之间的组合逻辑测试,可以使用场景法。例如:集成测试丶系统测试丶验收测试...

设计测试用例的步骤

  1. 需求分析
  2. 绘制流程图
  3. 设计测试用例(一条流程路径就是一条测试用例

绘制流程图步骤

  • 第1步:确认场景中关键业务步骤
  • 第2步:确定业务之间的先后顺序
  • 第3步:用箭头连接即可

流程图常用符号

案例:ATM机取款流程

错误推测法

定义:通过经验和直觉推测系统可能出现问题的地方,一般由经验丰富的测试人员使用。

设计思想

  • 凭人们对过去所作测试结果的分析,列举出可能出现问题的清单,根据清单测试来发现缺陷

适用场景

  • 所有正常测试结束后,通过错误推断法再测试之前问题较多的模块
  • 时间紧,任务量大,根据之前项目类似经验找出易出错的模块重点测试 ​​​​​​​

测试用例设计方法总结

  • 具有输入功能,但输入之间没有组合关系  选择 等价类
  • 输入有边界 如长度、类型  选择 边界值
  • 多输入、多输出、输入与输入之间存在组合关系、输入与输出之间存在依赖或制约关系  选择 判定表、因果图
  • 用最少的测试用例获得最大测试覆盖率时 选择  正交法
  • 多个功能的组合测试 选择  场景法、流程图
  • 最后推荐使用 错误推测法 来进一步补充测试用例

​​​​​​方法之间不是割裂开来的,而是根据实际需求来综合使用。一个需求我们可以同时使用多种方法来设计测试用例

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

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

相关文章

Echarts-授人以鱼不如授人以渔

Echarts 授人以渔 授人以鱼不如授人以渔 这篇文章就告诉大家如何快速查阅官网的配置项手册 建议收藏,老司机请跳过 echarts是一个非常强大的图形库 但是对于很多刚入门的小伙伴而言echarts里面配置项海量的名词看到吐血 想要修改样式的时候不知道改哪里 下面就简…

【LeetCode】1653. 使字符串平衡的最少删除次数

1653. 使字符串平衡的最少删除次数 题目描述 给你一个字符串 s &#xff0c;它仅包含字符 ‘a’ 和 b’​​​​ 。 你可以删除 s 中任意数目的字符&#xff0c;使得 s 平衡 。当不存在下标对 (i,j) 满足 i < j &#xff0c;且 s[i] ‘b’ 的同时 s[j] ‘a’ &#xff0…

一次输入多个数据-batchsize大于1的简单的线性回归模型-标量

最简单的线性回归模型-标量 接上篇&#xff0c;由于batchsize为1&#xff0c;因此loss有很大的波动&#xff0c;这篇我们讨论batchsize大于1的情况。若batchsize数量为N&#xff0c;则ywxbywxbywxb的损失函数为&#xff1a; L∑i1N(wxi∗b−yi∗)2(wxTbeT−yT)(wxbe−y)\begin{…

html网页源码加密

html加密、网页加密、网页源码加密html网页源码能加密吗&#xff1f;能加密到何种程度&#xff1f; 某些时候&#xff0c;我们可能需要对html网页源码加密&#xff0c;使网页源码不那么容易被他人获得。出于这个目标&#xff0c;本文测试一种html加密方式。 提前透露&#xf…

Linux系统PWM应用编程

目录应用层如何操控PWM编写应用程序在开发板上测试本章我们将学习如何对开发板上的PWM 设备进行应用编程。 应用层如何操控PWM 与LED 设备一样&#xff0c;PWM 同样也是通过sysfs 方式进行操控&#xff0c;进入到/sys/class/pwm 目录下&#xff0c;如下所示&#xff1a; 这里…

Java多态性

用一句话概括就是&#xff1a;事物在运行过程中存在不同的状态。 多态的存在有三个前提: 1.要有继承关系 2.子类要重写父类的方法 3.父类引用指向子类对 但是其中又有很多细节需要注意。首先我们定义两个类&#xff0c;一个父类Animal&#xff0c;一个子类Cat。 父类Animal cl…

Hive学习——企业级调优

目录 一、计算资源调优 (一)Yarn资源配置——集群 1.Yarn配置说明 (1)yarn.nodemanager.resource.memory-mb (2)yarn.nodemanager.resource.cpu-vcores (3)yarn.scheduler.maximum-allocation-mb (4)yarn.scheduler.minimum-allocation-mb (二)MapReduce资源配置 二、…

裁员降本,扭转颓势!通用汽车吹响智能电动「中国集结号」

2023年&#xff0c;将是合资品牌能否搭上中国智能电动市场红利的关键一年。 全新一代VCS智能座舱&#xff08;高通8155&#xff0c;30英寸6K曲面OLED显示屏&#xff0c;12.6英寸WHUD以及5G版本的别克eConnect车联系统&#xff09;、全新一代Super Cruise超级辅助驾驶系统&#…

7.SpringSecurity中的权限管理

SpringSecurity中的权限管理 SpringSecurity是一个权限管理框架&#xff0c;核心是认证和授权&#xff0c;前面已经系统的给大家介绍过了认证的实现和源码分析&#xff0c;本文重点来介绍下权限管理这块的原理。 一、权限管理的实现 服务端的各种资源要被SpringSecurity的权限…

ccc-pytorch-卷积神经网络介绍(5)

文章目录一、卷积二、池化三、Batch Norm四、经典卷积网络简单介绍一、卷积 卷积连续函数形式&#xff1a; F(x)∫f(t)g(x−t)dtF(x)\int f(t)g(x-t)dtF(x)∫f(t)g(x−t)dt 物理意义是一个函数在另一个函数上的加权叠加。在2D卷积中指卷积核在数据矩阵中分割出的矩阵和卷积核相…

PMP和软考高项集成,更应该考哪个呢?

要看你自己的偏向&#xff0c;要说考的话&#xff0c;我是觉得都值得考的&#xff0c;一个证一份技术嘛。 我给你稍微介绍一下&#xff0c;PMP都是美国PMI发起的考试&#xff0c;软考高项是国内的考试。PMP是项目管理证书&#xff0c;学习的内容是项目管理&#xff0c;包含大约…

研报精选230306

目录 【行业230306东亚前海证券】食品饮料行业2023年年度投资策略&#xff1a;复苏在途&#xff0c;蓄势待发【行业230306国金证券】基础化工行业研究&#xff1a;MDI价格上行&#xff0c;新一轮国企改革在即【行业230306中银证券】华为汽车产业链深度报告&#xff1a;三种合作…

k8s控制器

目录 一、控制器简介 二、控制器类型 1、RC和RS 2、Deployment 3、DaemonSet 4、Job 5、CronJob 6、StateFulSet 7、HPA 一、控制器简介 在kubernetes中&#xff0c;按照Pod的创建方式可以将其分为两类&#xff1a; 自主式:kubernetes直接创建出来的Pod&#xff0c;…

【Alamofire】【Swift】属性包装器注解@propertyWrapper

Alamofire 中的源码例子 import Foundationprivate protocol Lock {func lock()func unlock() }extension Lock {/// Executes a closure returning a value while acquiring the lock.////// - Parameter closure: The closure to run.////// - Returns: The value…

9.SpringSecurity核心过滤器-SecurityContextPersistenceFilter

SpringSecurity核心过滤器-SecurityContextPersistenceFilter 一、SpringSecurity中的核心组件 在SpringSecurity中的jar分为4个&#xff0c;作用分别为 jar作用spring-security-coreSpringSecurity的核心jar包&#xff0c;认证和授权的核心代码都在这里面spring-security-co…

Promise入门

Promise入门 Promise的基本概念 男女相爱了&#xff0c;女方向男方许下一个承诺怀孕new Promise&#xff0c;这是会产生两种结果怀上(resolve)和没怀上(reject)&#xff0c;resolve对应then&#xff0c;reject对应catch&#xff0c;无论是否怀上都会执行finally。 <script&…

【论文速递】CASE 2022 - EventGraph: 将事件抽取当作语义图解析任务

【论文速递】CASE 2022 - EventGraph: 将事件抽取当作语义图解析任务 【论文原文】&#xff1a;https://aclanthology.org/2022.case-1.2.pdf 【作者信息】&#xff1a;Huiling You, David Samuel, Samia Touileb, and Lilja vrelid 论文&#xff1a;https://aclanthology.o…

sql server 对比两个查询性能 ,理解Elapsed Time、CPU Time、Wait Time

分析 SET STATISTICS TIME ONyour sqlSET STATISTICS TIME OFF由上图分析: cpu time 是查询执行时占用的 cpu 时间。如果了解系统的多任务机制&#xff0c;就会知道系统会将整个 cpu 时间分为一个一个时间片&#xff0c;平均分配给运行的线程——一个线程在 cpu 上运行一段时间…

《PyTorch深度学习实践9》——卷积神经网络-高级篇(Advanced-Convolution Neural Network)

一、1∗11*11∗1卷积 由下面两张图&#xff0c;可以看出1∗11*11∗1卷积可以显著降低计算量。 通常1∗11*11∗1卷积还有以下功能&#xff1a; 一是用于信息聚合&#xff0c;同时增加非线性&#xff0c;1∗11*11∗1卷积可以看作是对所有通道的信息进行线性加权&…

Air101|Air103|Air105|Air780E|ESP32C3|ESP32S3|Air32F103开发板:概述及PinOut

1、合宙Air101&#xff08;芯片及开发板&#xff09; 合宙Air101是一款QFN32 封装&#xff0c;4mm x 4mm 大小的mcu。通用串口波特率&#xff0c;设置波特率为921600。 ​ 管脚映射表 GPIO编号 命名 默认功能及扩展功能 0 PA0 BOOT 1 PA1 I2C_SCL/ADC0 4 PA4 I2C_S…