软件测试---用例篇

2023-11-06

软件测试—用例篇

测试用例(Test Case)概念

是为了实施测试而向被测试系统提供的一组集合,这组集合包括:测试环境、操作步骤、测试数据、预期结果等要素。

好的测试用例是不熟悉业务的人也能根据用例很go准

  • 用例表达清楚,无二义性,不能出项“是否”这样的词汇
  • 用例可操作性强
  • 用例的输入输出明确,一条用例只有一个预期结果
  • 用例可维护性好,即可读性好
  • 用例对需求的覆盖性高
  • 暴露程序bug的能力强,才能发现更多更深的bug。
测试用例的好处

测试执行者的依据
使得工作可重复,自动化测试的基础
评估需求覆盖率
用例的复用
积累测试的方法思路以供后续借鉴

测试用例除了有很多好处外,也有它的缺点:测试用例的设计是费时费力的工作,往往设计测试用例所花费的时间比执行测试的时间要多。

设计测试用例要解决的问题:

  • 不知道是否全面的测试了所有的功能
  • 测试的覆盖率无法衡量
  • 对新版本的重复测试很难实施
  • 存在大量冗余测试影响测试效率
测试用例的设计方法(七种)

1.基于需求的设计

RBT( Requirements-Based Testing)是基于需求的测试方法,会使测试更加有效,因为 它使测试专注于质量问题产生的根源,即需求。

基于需求的测试是最根本的软件测试,它关注两个关键问题:

  • 验证需求是否正确,完整,无二义性,逻辑一致
  • 从黑盒角度,设计出充分并必要的测试集,使设计和代码能够完全满足需求

1.等价类划分
概念:根据需求将输入划分为若干个等价类,从等价类中选出一个测试用例,若这个测试用例通过,就认为所代表的等价类测试通过,这样就使用了较少的测试用例达到尽量多的功能覆盖,解决了不能穷举测试的问题。

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

    eg:账号为9位数字字符
    有效等价类:9位数字字符
    无效等价类:(1)有非数字字符 (2)少于9位数字字符 (3)多于9位数字字符


等价类只考虑到了输入域的分类,未考虑输入域的组合,需要其他方法来补充 **2.边界值分析** 对输入输出边界值进行测试的一种黑盒测试方法,一般是等价类划分法的补充,边界值来自于等价类的边界。一般应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。

常见的边界值:

  • 对16-bit 的整数而言 32767 和 -32768 是边界
  • 屏幕上光标在最左上、最右下位置
  • 报表的第一行和最后一行
  • 数组元素的第一个和最后一个
  • 循环的第 0 次、第 1 次和倒数第2 次、最后一次
  1. 输入框长度为1-11,取边界值为:1、11、12、0
  2. 运动员的参赛项目为1-3项,取边界值为:0项、1项、3项、4项
  3. 查询面页面有999行,每50行为一页,取边界值为:输出0行、1行、50行、51行、999行、1000行
注意:要搞清楚是闭区间还是开区间

如:
(1,10)取边界值为:1,2,9,10
[ 1,10 ] 取边界值为:0,1,10,11
(1,10 ]取边界值为:1,2,10,11

**3.因果图** 是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,适合检查输入条件的各种组合情况。特别适用于被测试程序具有多种输入条件、程序的输出又依赖于输入条件的各种情况。 等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了 **四种因果关系**
  • 恒等

这里写图片描述

这里写图片描述
- 或

这里写图片描述
- 非

这里写图片描述

因果图法设计测试用例的步骤
1.分析所有可能的输入和输出
2.找出输入和输出之间的对应关系
3.画出因果图
4.将因果图转成判定表
5.判定表对应每个测试用例

一个案例:
假设业务单据的处理规则为:“淘宝618活动,提单已提交,订单合计金额大于300元或有红包,则进优惠”
步骤一:

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

步骤二:

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

步骤三:因果图
这里写图片描述
步骤四:判定表
这里写图片描述
步骤五:测试用例
1,2,3,4,5(包含6,7,8)

因果法设计测试用例可以帮助测试人员理清输入和输出的关系,但是对于比较复杂的输入和输出,会耗费大量时间

4.正交法
正交法的出现时为了减少测试用例的数目,用尽可能少的用例覆盖输入的两两组合
利用因果图来设计测试用例时, 作为输入条件的原因与输出结果之间的因果关系,有时很难从软件需求规格说明中得到。往往因果关系非常庞大,以至于据此因果图而得到的测试用例数目多的惊人,给软件测试带来沉重的负担,为了有效地,合理地减少测试的工时与费用,可利用正交实验设计方法进行测试用例的设计。

正交实验设计方法:从大量的(实验)数据(测试用例)中挑选适量的,有代表性的点(例),从而合理地安排实验(测试)的一种科学实验设计方法.类似的方法有:聚类分析方法,因子方法方法等.

正交表的两条性质

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

因素(Factor):在一项实验中,凡欲考察的变量称为因素(变量)
水平(Level):实验范围内,因素被考察的值被称为水平(变量的取值)

正交表的构成:
1.行数(Runs):正交表中行的个数,即实验的次数,用N表示
2.因素数(Factors):正交表中列的个数,用C表示
3.水平数:任何单个因素所能取值的最大个数,从0~水平数-1或从1~水平数,用T表示

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

正交法设计测试用例的步骤:
1.有哪些因素(变量)
2.每个因素有哪些水平(变量的取值)
3.选择合适的正交表
4.把变量的值映射到正交表中
5.把每行各因素水平的组合作为一条测试用例
6.再加上可疑但没在表中出现的测试用例

案例:继续以注册为例(类似工具可以使用微软的PICT工具)
步骤一:
因素:姓名、邮箱、密码、确认密码、验证码
步骤二:
水平:填写、不填写
步骤三:
表中的因素数>=5;
表中至每个因素数的水平数>=2
行数取最少的一个,即试验次数最少的一个
L=N(TC)
这里的N是实验次数,N(min)=因素数C*(水平数T-1)+1=5*(2-1)+1=6
选择正交表,这里选择了L6_2_5。
步骤四:
这里写图片描述
正交表的建立需满足正交表的两条性质,并且实验次数应大于等于最小试验次数6
步骤五:
根据正交表生成八条测试用例
步骤六:
增补可疑测试用例,这里我们没有可疑的

6.场景设计法
软件一般以事件触发来控制流程
事件流:点击之后完成的动作,同一事件不同的触发顺序和处理结果就形成事件流。
场景法特别适用于控制流清晰的系统。

设计步骤:
1.画出程序控制流图(可先画出程序流程图,再把流程图转化成控制流图)
2.根据控制流图设计出场景
3.根据场景设计测试用例

7.错误猜测法
经验丰富的测试人员经常用这种方式。
基于多年的经验和直觉,找出程序中可能出现的bug,有针对性地设计测试用例。
经验可能来自于在对某项业务的测试较多,也可以来自于售后用户的反馈意见,或者从故障管理库中整理bug。梳理出产品以往哪些地方容易出现问题,问题越多的地方,潜在的bug也就越多。

以注册为例:
1.校验中特殊字符空格的处理?
空格在前面或后面可直接截取,在中间就认为出现错误
2.密码校验的大小写?
3.姓名中的特殊字符?
4.密码发送是明文?

测试用例的有效性

测试用例对应的功能已删除,不能进行操作
执行一条测试用例,发现了bug
执行一条测试用例未发现bug,实际该处BUG已修改,该条测试用例是有效的,是为了测试无bug

测试用例的粒度和评价

粒度:是指测试用例编写的详细程度
最简单的测试用例是测试的纲要,仅仅指出要测试的内容,如探索性测试中的测试设计,仅会指出需要测试产品的哪些要素、需要达到的质量目标、需要使用的测试方法等。
而最复杂的测试用例就像飞机维修人员使用的工作指令卡一样,会指定输入的每项数据,期待的结果及检验的方法, 具体到界面元素的操作步骤,指定测试的方法和工具等。

(1)测试用例写得过于复杂或详细,会带来两个问题:一个是效率问题,另一个是维护成本问题
(2)测试用例写得过于简单,则可能失去了测试的意义。

因此,我们可以根据产品的质量需求、项目对用例的要求、测试的时间和资源是否充足这三点来把握测试用例的粒度

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

软件测试---用例篇 的相关文章

  • 软件测试开发/全日制/测试管理丨接口测试抓包与 Mock/接口自动化测试

    在软件开发中 接口测试是确保系统各个组件之间协同工作的重要环节 接口测试抓包与Mock以及接口自动化测试相结合 能够更全面 高效地验证接口的正确性 性能和稳定性 从而打造一个稳健的接口生态系统 接口测试抓包 接口测试抓包是一种通过监控和记录
  • “性能压测揭密:关键指标分析!“

    在进行全链路压测和性能测试时 需要关注多个关键性能指标 KPIs 来评估系统的性能表现 以下是一些常见的性能测试指标 1 吞吐量 Throughput 系统在单位时间内能够处理的请求数量或事务数量 通常以每秒请求数 RPS TPS 来衡量
  • 软件测试/测试开发/全日制/测试管理丨Redis内存数据库

    Redis是一种开源 内存中的数据结构存储系统 它提供了高性能 灵活性和丰富的数据结构 以下是Redis内存数据库的基本介绍 键值存储 Redis基于键值对的存储模型 其中每个键都与一个特定的值相关联 这种简单的数据模型使其易于使用和理解
  • Jmeter 性能-并发量计算

    并发概念 指网站在同一时间访问的人数 人数越大瞬间带宽要求更高 服务器并发量分为 业务并发用户数 最大并发访问数 系统用户数 同时在线用户数 估算业务并发量的公式 C nL T C C 3 C的平方根 说明 C是平均的业务并发用户数 n是l
  • 步骤详图 教你在linux搭建容器环境

    警告 切勿在没有配置 Docker YUM 源的情况下直接使用 yum 命令安装 Docker 1 准备工作 系统要求 要安装Docker CE 社区版 操作系统的最低要求是CentOS7 7以下版本都不被支持 卸载旧版本 Docker改版
  • 微信小程序的自动化测试框架

    微信发布了小程序的自动化测试框架Minium 提供了多种运行验证方式 其特点 支持一套脚本 iOS Android 模拟器 三端运行 提供丰富的页面跳转方式 看不到也能去得到 可以获取和设置小程序页面数据 让测试不止点点点 可以直接触发小程
  • 基于Loadrunner的性能分析及调优经验分享

    公司某个系统的微信端计划将开放给几百上千的人员登录查询 并且登录账号为同一账号多人使用 后台服务能够支撑起多用户的并发操作以及成百上千人登录微信端对生产数据库或者登录查询的性能效率高成为交付可靠生产环境的必要条件 因此 项目组决定提交测试
  • 新入职一个00后卷王,每天加班到2点,太让人崩溃了····

    在程序员职场上 什么样的人最让人反感呢 是技术不好的人吗 并不是 技术不好的同事 我们可以帮他 是技术太强的人吗 也不是 技术很强的同事 可遇不可求 向他学习还来不及呢 真正让人反感的 是技术平平 却急于表现自己的人 每天加班到12点 在老
  • 软件测试|Pydantic详细介绍与基础入门

    简介 Pydantic 是一个强大的 Python 库 用于数据验证和解析 特别是用于处理 JSON 数据 它的主要目标是使数据验证和解析变得简单 直观和可维护 本文将介绍 Pydantic 的基础知识 包括如何定义模型 验证数据以及处理错
  • 软件测试|深入了解Python中的super()函数用法

    简介 Python中的super 函数是一种强大的工具 用于在子类中调用父类的方法 它在面向对象编程中非常有用 可以让你轻松地扩展和重用现有的类 本文将详细介绍super 函数的用法 并提供一些示例来帮助你更好地理解它的功能 什么是supe
  • 软件测试|使用matplotlib绘制平行坐标系图

    简介 绘制平行坐标系图 Parallel Coordinates Plot 是一种用于可视化多维数据的强大方法 在这篇文章中 我们将介绍如何使用Matplotlib库创建平行坐标系图 以及如何解释和定制这种图表 我们将使用一个示例数据集来演
  • 软件测试|web自动化测试神器playwright教程(三十八)

    简介 在我们使用selenium时 我们可以获取元素的属性 元素的文本值 以及输入框的内容等 作为比selenium更为强大的web自动化测试神器 playwright也可以实现对元素属性 文本值和输入框内容的抓取 并且实现比seleniu
  • 软件测试|Pydantic处理时间类型数据

    简介 我们之前介绍过使用 pydantic 验证数据 比如校验数据的格式等 但是在我们的日常工作中 还有一种数据是需要我们验证的 比如时间数据 时间数据不同于字符串 列表等数据 与他们的验证不一样 本文就来为大家介绍一下 pydantic
  • 软件测试|教你如何使用Python绘制出奥运五环旗

    简介 我们之前介绍过使用turtle来绘制正多边形 但是绘制正多边形只是turtle模块最基础的使用 我们可以使用turtle模块绘制出更多不一样的精彩图形 本文就来给大家介绍一个比较简单的turtle绘图实例 绘制奥运五环旗 初始化参数
  • 软件测试|使用matplotlib绘制多种柱状图

    简介 在数据可视化领域 Matplotlib是一款强大的Python库 它可以用于创建多种类型的图表 包括柱状图 本文将介绍如何使用Matplotlib创建多种不同类型的柱状图 并提供示例代码 创建基本柱状图 首先 让我们创建一个基本的柱状
  • msyql 异常,别干着急,70%的问题都在这里!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 开眼了,自动化测试还能这样用?

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 程序员找工作难!拿到外包公司的 offer 我应该去么?

    引言 前一阵子有一个帖子引起了非常广泛的讨论 描述的就是一个公司的外包工作人员 加班的时候因为吃了公司给员工准备的零食 被公司的HR当场批评 这个帖子一发出来 让现在测试行业日益新增的外包公司备受关注 那么外包公司和非外包公司有什么样的不一
  • 15:00面试,15:06就出来了,问的问题有点变态。。。

    从小厂出来 没想到在另一家公司又寄了 到这家公司开始上班 加班是每天必不可少的 看在钱给的比较多的份上 就不太计较了 没想到9月一纸通知 所有人不准加班 加班费不仅没有了 薪资还要降40 这下搞的饭都吃不起了 还在有个朋友内推我去了一家互联
  • Airtest自动化测试工具

    一开始知道Airtest大概是在年初的时候 当时 看了一下官方的文档 大概是类似Sikuli的一个工具 主要用来做游戏自动化的 通过截图的方式用来解决游戏自动化测试的难题 最近 移动端测试的同事尝试用它的poco库来做自动化 看样子还不错

随机推荐

  • 好书推荐《R语言在定量金融中的应用》

    给大家推荐一本R语言在定量金融方面的好书 是我老师编写的 我也非常有幸参与到这本书的编写过程中 这本书2015年5月份正式上线 其实从2013年底开始写的 经历大约两年的时间 这本书一出来就收到了很大的关注 读者反映都很好 这本书本身是属于
  • HIVE中数据更新(update)操作的实现

    数据更新是一种常见的操作 然后数据仓库的概念一般要求的是数据是集成 稳定的 HIVE作为一种分布式环境下以HDFS为支撑的数据仓库 它同样更多的要求数据是不可变的 然而现实很多任务中 往往需要对数据进行更新操作 经查 Hive自0 11版本
  • 蓝牙模块四大天线方式

    在蓝牙产品中 天线与蓝牙模块的关系是相辅相成的 是一个除了作为核心的系统芯片外 天线是另一个具有影响蓝牙模块传输特性的关键性组件 首先简单概述什么是天线 天线是一种用来发送或者接收电磁波的器件 天线的作用 发射天线的作用是将发射机的高频电流
  • flex布局导致ellispsis失效

    问题描述 之前的文本超过长度省略文章中 讲到了如何通过CSS控制文本超过长度省略 但是在flex布局中 ellispis却失效了 举例说明 文档结构如下 div class container div class div 1 div div
  • 【Java 实现微信支付、Native 支付流程】,从编写代码到支付成功,一步到位!

    文章目录 1 项目环境介绍 2 微信支付文档 2 1 业务流程说明 3 准备信息 3 1 微信公众账号如何获取 3 2 商户号如何获取 3 3 API密钥如何获取 3 4 准备工具类 4 进入开发阶段 4 1 后端编写 生成微信支付二维码
  • 网格搜索(Grid Search)/超参搜索

    1 网格搜索法 网格搜索法 Grid Search 是一种在机器学习中用于确定最佳模型超参数的方法之一 在机器学习中 超参数是指在训练模型之前需要手动设置的参数 而不是通过学习过程中自动学习得到的参数 网格搜索法通过指定一个超参数的候选值列
  • softmax(三):softmax交叉熵的缺点

    还是废话不说 直接上峰神的链接 Softmax理解之Smooth程度控制 softmax交叉熵我们经常使用 但是为啥有的任务 用softmax交叉熵效果很好 有的任务用效果却不怎么样 在实际项目中 分析softmax交叉熵的缺点 才能知道
  • Activity MQ生产/消费和订阅/发布的区别

    1 在有多个消息接收者时 生产 消费模式下多个消费者会轮流消费队列中的消息 2 而订阅 发布模式下所有订阅者都会得到所有的消息 1 生产和消费 生产者生产消息放到队列里 多个消费者同时监听队列 谁先抢到消息谁就会从队列中取走消息 即对于每个
  • any_value()

    目录 any value ONLY FULL GROUP BY 查看ONLY FULL GROUP BY 解决方法 any value ONLY FULL GROUP BY MySQL5 7之后 sql mode中ONLY FULL GRO
  • gfortran版本

    gcc里面已经集成了gfortran吧
  • JDBC ResultSet获取Date类型相关

    前段时间发现用自己写的工具类获取数据库信息的时候 使用getString来获取数据库date类型的数据时 获取的格式为 yyyy mm dd hh mi ss z精度会一直到毫秒 这个实在是郁闷 而使用getDate来获取 则是只有日期没有
  • 【数据结构】动图详解二叉树——堆及堆排序

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 目录 一 树的概念 1 树的特征 2 树的相关名词 二 树的表示
  • 抗锯齿相关技术介绍:MSAA、FXAA、SMAA、TXAA、MSAA

    在图像处理中 锯齿一直是一个大问题 因此图像中的抗锯齿 Anti aliaing 简称AA 也被称为边缘柔化 消除混叠 抗图像折叠有损等 AA主要是处理图像有锯齿的边缘 使其图像更清晰清晰 下面有一些反锯齿的常用技术 一 多重采样抗锯齿 M
  • 36 KVM管理设备-配置虚拟串口

    文章目录 36 KVM管理设备 配置虚拟串口 36 1 概述 36 2 操作步骤 36 KVM管理设备 配置虚拟串口 36 1 概述 在虚拟化环境下 由于管理和业务的需求 虚拟机与宿主机需要互相通信 但在云管理系统复杂的网络架构下 运行在管
  • DOM(文档对象模型)

    目录 1 DOM是什么 2 DOM 树 3 节点 4 获取元素 4 1 根据id获取 4 2 根据标签名获取 4 3 根据 name 属性来获取 4 4 根据类名来获取 4 5 根据选择器获取 4 6 获取body元素 4 7 获取html
  • html给百度富文本编辑器editor设置默认值,设置固定高度

    通常在一些文章编辑或者内容编辑的应用场景下会用到百度编辑器设置默认值进行回显 百度到的问题代码 UE getEditor editor setHeight 500 UE getEditor editor setContent 内容 执行完浏
  • Linux系列之:9秒钟掌握多种实时查询日志的方法,再也不用cat命令了。

    实时查询日志 1 引言 2 less 3 tail 3 1 单文件实时查询 3 2 多文件实时查询 3 3 目标名称查询 3 4 跟踪日志 4 multitail 4 1 安装 4 2 用法 5 总结 1 引言 由于最近从某些企业毕业的同学
  • 查看当前SHELL的种类

    shell种类 shell种类常见的有sh bash csh zsh tcsh等 方法 echo 0
  • 【C语言程序设计】C语言渔夫打鱼晒网问题!

    如果一个渔夫从 2011 年 1 月 1 日开始每三天打一次渔 两天晒一次网 编程实现当输入 2011 1 月 1 日以后的任意一天 输出该渔夫是在打渔还是在晒网 实现过程 1 自定义函数 leap 用来判断输入的年份是否是闰年 2 自定义
  • 软件测试---用例篇

    软件测试 用例篇 测试用例 Test Case 概念 是为了实施测试而向被测试系统提供的一组集合 这组集合包括 测试环境 操作步骤 测试数据 预期结果等要素 好的测试用例是不熟悉业务的人也能根据用例很go准 用例表达清楚 无二义性 不能出项