【软件测试专栏】软件测试 — 用例篇

news2024/11/13 18:25:46

  • 博客主页:Duck Bro 博客主页
  • 系列专栏:软件测试专栏
  • 关注博主,后期持续更新系列文章
  • 如果有错误感谢请大家批评指出,及时修改
  • 感谢大家点赞👍收藏⭐评论✍

软件测试 — 用例篇

关键词:测试用例概念、测试用例的万能公式、设计测试用例的方法

目录

  • 软件测试 — 用例篇
    • 一、测试用例
      • 1. 什么是测试用例
      • 2. 为什么需要写测试用例
    • 二、设计测试用例
      • 1. 常规思考+逆向思维+发散性思维
      • 2. 万能公式
    • 三、设计测试用例的方法
      • 1. 基于需求设计
      • 2. 具体的设计
        • 2.1 等价类
        • 2.2 边界类
        • 2.3 正交法
        • 2.4 判定表法
        • 2.5 场景法
        • 2.6 错误猜测法


一、测试用例

1. 什么是测试用例

测试用例是一种具体的测试任务,它描述了一系列的输入、操作以及预期结果,用于验证系统或软件的功能是否符合预期。

测试用例通常包括以下几个部分:

  • 测试目的:描述测试的目标和所要验证的功能。
  • 输入数据:提供给系统或软件的输入数据,包括各种边界情况和异常情况。
  • 操作步骤:详细描述测试人员需要执行的操作步骤。
  • 预期结果:定义每个测试步骤执行后期望得到的结果。
  • 实际结果:记录测试执行过程中的实际结果,与预期结果进行对比。

2. 为什么需要写测试用例

测试中可能会遇到很多问题,诸如:

  • 不知道是否较全⾯的测试了所有功能
  • 测试的覆盖率无法衡量
  • 对新版本的重复测试很难实施(即回归测试无法仅通过⼈⼯测试的方式进行历史功能的回归)
  • 存在⼤量冗余测试影响测试效率
    测试用例的出现就是解决这些问题!

测试用例的作用还可以避免测试⼈员被迫背锅


二、设计测试用例

1. 常规思考+逆向思维+发散性思维

  • 测试用例的编写不仅应当根据有效和预料到的输⼊情况,而且也应该根据无效和未预料到的输⼊情况。
  • 检查程序是否“未做其应该做的”仅是成功的⼀半,测试的另⼀半是检查程序是否“做了其不应该做的”。(是上⼀条原则的必然结果)
  • 计划测试⼯作时不应默许假定不会发现错误

2. 万能公式

设计测试用例的万能公式:功能测试+界⾯测试+性能测试+兼容性测试+易用性测试+安全测试

功能测试
功能测试是⼀个试图发现程序与其外部规格说明之间存在不⼀致的过程。外部规格说明是⼀份从最终用户的⻆度对程序行为的精确描述。功能测试通常是⼀项⿊盒操作。在进行功能测试时,需要对规格说明进行分析以提炼测试用例,本课程中讨论的具体设计测试用例的方法尤其适用于功能测试

界⾯测试
对软件界⾯上所有的内容都需要进行测试

性能测试
性能测试和功能测试的区别是:功能测试检查软件是否做了,而性能测试测试软件做的好不好。

兼容性测试
软件是部署在硬件系统之上,并依赖所需要的软件环境。
如QQ可以在PC端打开,也可以在移动端打开;移动端⼜分为IOS系统和Android系统,且市⾯上⼿机⼜有不同的品牌、不同的机型、不同的版本。软件是否能够在不同的环境下正确运行需要测试⼈员进行验证。

易用性测试
易用性测试的标准是检查产品是否具备简单易上⼿的属性。假如测试⼈员从来没有安装或使用过该产品,作为⼀个新用户,对当前产品是否能够快速适用产品的使用流程。

安全测试
安全测试和性能测试⼀样都是比较⼤的领域。
常⻅的安全问题如:

  • 隐私数据明⽂显⽰。
  • 参数未强校验导致SQL注⼊。
  • 越权:普通用户也可以执行管理员权限的操作。

除了万能公式之外,还有⼀个比较常用的测试类型:弱⽹测试、安装卸载测试

弱⽹测试
弱⽹测试的目的就是尽可能保证用户体验,关注的关键点包括:

  • ⻚⾯响应时间是否可以接受,关注包括热启动、冷启动时间、⻚⾯切换、前后台切换、⾸字时间,
    ⾸屏时间等。
  • ⻚⾯呈现是否完成⼀致。
  • 超时⽂案是否符合定义,异常信息是否显⽰正常。
  • 是否有超时重连。
  • 安全⻆度:是否会发⽣dns劫持、登陆ip更换频繁、单点登陆异常等。
  • ⼤流量事件⻛险:是否会在弱⽹下进行更新apk包、下载⽂件等⼤流量动作。

在这里插入图片描述

安装卸载测试
针对需要进行部署的软件,除了软件功能外,我们还需要关注软件的能够成功安装和卸载


三、设计测试用例的方法

1. 基于需求设计

测试⼈员接到需求之后,要对需求进行分析和验证,从合理的需求中进⼀步分析细化需求,从细化的需求中找出测试点,根据这些测试点再去设计测试用例。

举例:以该注册邮箱账号需求为例,我们来设计测试用例

在这里插入图片描述
设计测试用例步骤如下

  1. 明确需求中的功能点
    账号注册,账号登陆
  2. 结合万能公式设计测试点
    在这里插入图片描述

2. 具体的设计

2.1 等价类

依据需求将输⼊(特殊情况下会考虑输出)划分为若⼲个等价类,从等价类中选出⼀个测试用例,如
果 这个测试用例测试通过,则认为所代表的等价类测试通过,这样就可以用较少的测试用例达到尽量
多的 功能覆盖,解决了不能穷举测试的问题。

等价类分类:

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

步骤
根据等价类设计测试用例的方式:
1.确定有效等价类和无效等价类
2.编写测试用例,设计具体测试数据

缺点

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

2.2 边界类

边界值分析法就是对输⼊或输出的边界值进行测试的⼀种⿊盒测试方法。通常边界值分析法是作为对
等 价类划分法的补充,这种情况下,其测试用例来⾃等价类的边界。

边界值包含:边界值+次边界值

  1. 输⼊框⻓度为1-11,取边界值为:1、11、12、0
  2. 运动员的参赛项目为1-3项,取边界值为:0项、1项、3项、4项
  3. 查询⾯⻚⾯有999行,每50行为⼀⻚,取边界值为:输出0行、1行、50行、51行、999行
2.3 正交法

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

正交表的构成:因素数、⽔平数、行数。
因素:对指标的影响条件,通常是正交表中的⼀列。
⽔平:因素对应的可选项。

正交表的性质:
每⼀列中,不同的数字出现的次数相等。
任意两列中数字的排列方式⻬全而且均衡

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

  1. 找到因素和⽔平
  2. 用allparis⼯具⽣成正交表
    a. 将因素和⽔平写⼊Excel表格中
    b. allparis目录下创建新的⽂本⽂件new.txt,复制Excel中的因素和⽔平,直接粘贴到⽂本中保存
    并退出
    c. 使用allparis命令⽣成正交表:allparis.exe new.txt>zhengjiao.txt
  3. 根据正交表编写测试用例
  4. 补充遗漏的重要测试用例

在后续的文章中进行详细介绍 》》》》软件测试专栏

2.4 判定表法

判定表是⼀种表达逻辑判断的⼯具,形如:
在这里插入图片描述

根据判定表法设计测试用例的步骤:

  1. 确认需求中输⼊条件和输出条件
  2. 找出输⼊条件和输出条件之间的关系
  3. 画判定表
  4. 根据判定表编写测试用例
2.5 场景法

现在的软件⼏乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同⼀事件不同的
触发顺序和处理结果就形成事件流。

通过运用场景来对系统的功能点或业务流程的描述,从而提高测试效果的⼀种方法。用例场景来测试
需求是指模拟特定场景边界发⽣的事情,通过事件来触发某个动作的发⽣,观察事件的最终结果,从
而用来发现需求中存在的问题。我们通常以正常的用例场景分析开始,然后再着⼿其他的场景分析。
场景法⼀般包含基本流和备用流,从⼀个流程开始,通过描述经过的路径来确定的过程,经过遍历所
有的基本流和备用流来完成整个场景。

场景主要包括4种主要的类型:正常的用例场景,备选的用例场景,异常的用例场景,假定推测的场景

该方法可以比较⽣动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,是测试用例更容
易理解和执行。

典型的应用是是用业务流把各个孤立的功能点串起来,为测试⼈员建立整体业务感觉,从而避免陷⼊
功能细节忽视业务流程要点的错误倾向
在这里插入图片描述
根据场景法设计测试用例的步骤

  1. 确定基本流
  2. 确定备选流
  3. 根据备选流补充测试用例
  4. 编写测试用例
2.6 错误猜测法

错误猜测法是对被测试软件设计的理解,过往经验以及个⼈直觉,推测出软件可能存在的缺陷,从而
针对性地设计测试用例的方法。

这个方法强调的是对被测试软件的需求理解以及设计实现的细节把握,还有个⼈的经验和直觉。

错误推测法和目前流行的“探索式测试方法”的基本思想⼀致,这类方法在敏捷开发模式下的投⼊产
出比很高,被⼴泛应用于测试。


在这里插入图片描述

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

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

相关文章

【基础】Three.js加载纹理贴图、加载外部gltf格式文件

1. 模型使用纹理贴图 const geometry new THREE.BoxGeometry(10, 10, 10);const textureLoader new THREE.TextureLoader(); // 创建纹理贴图加载器const texture textureLoader.load("/crate.gif"); // 加载纹理贴图const material new THREE.MeshLambertMater…

运维问题0001:MM模块-MIGO收货报错“消息号 M7036 对于采购订单********无收货可能”

1、问题解析: 该报错为SAP标准报错类型,针对公司不同配置/业务设计/校验逻辑,导致该问题原因比较多。 常见的问题总结如下: 1)输入的PO信息有问题(例如:PO输入错误/PO删除状态/PO冻结状态/PO已完成收货等…

HCIE认证要学多久?3个方面决定HCIE学习时长

HCIE认证作为华为公司推出的顶级专业认证,已经成为网络技术领域内的一个标杆。 它不仅象征着专业技能的高峰,也是许多IT专业人士职业发展的重要里程碑。 HCIE作为华为高级认证虽然可以不需要满足任何条件直接报考,但掌握必要的知识内容必不可…

MySQL复习2

高级查询 准备 create database greatselect; use greatselect;drop table if exists class; create table class (cid int(11) not null auto_increment,caption varchar(32) not null,primary key (cid) )engine innoDB AUTO_INCREMENT5 default charset utf8;create tab…

报考条件、材料、流程?关于CISP认证,你必须要了解这些

信息安全一直是一个火热的话题,在近两年又被推上了高峰。对此,相关认证也不例外。 很多朋友都想get一本安全方向的证书,在广大安全方向的认证中,CISP可谓是发展迅猛,并越来越广为人知,也越来越受到IT从业者…

python Bokeh库学习记录

First steps 2: 添加和自定义渲染器 在之前的入门指南中,你使用了Bokeh的figure()函数来绘制折线图。 在本节中,你将使用不同的渲染函数来创建各种其他类型的图表。你还将自定义你的图像外观。 渲染不同的图形符号 Bokeh的绘图界面支持多种不同的图形…

古典显示格式解一偏微分方程并绘制结果的彩色图

解如下偏微分方程 以上公式的Latex代码 \begin{cases}\frac{\partial u}{\partial t}a\frac{\partial ^2u}{\partial x^2}\,\,,0<x<1,t>0\\u\left( x,0 \right) 4x\left( 1-x \right) \,\,,0\leqslant x\leqslant 1\\u\left( 0,t \right) u\left( 1,t \right) 0 ,t\g…

补题篇--codeforces

传送门&#xff1a;Problem - G - Codeforces 题意&#xff1a; 思路&#xff1a; 注意&#xff1a; n 的范围很小&#xff0c;大概率考察状态压缩 因此这个题可以考虑用 状压dp f[i][j] 表示状态为 i 的选法&#xff0c;以第 j 首歌为结尾的播放列表中的歌曲总数 f[ i | …

生活方式对人健康影响非常大 第三篇

身体健康因素中 生活方式占到60% 赶紧去调整自己哪错了 上游的生活方式管理 是药三分毒 药物会影响身体肝肾功能,代谢 所以你要去找上游到底是我哪错了 短板越多 个健康状态越差 饮食管理是生活方式管理中难度最大的 原则1:与基因相对应相平衡 只吃素 会导致大脑萎…

【书生大模型实战营】进阶岛 第6关 MindSearch 快速部署

文章目录 【书生大模型实战营】进阶岛 第6关 MindSearch 快速部署MindSearch 部署到Github Codespace 和 Hugging Face Space创建开发机 & 环境配置MindSearch下载及环境配置获取硅基流动API Key作业 - 基础任务在Github codespaces 启动 MindSearch通过 Github Codespace …

spring框架4 - bean加载

本节内容&#xff1a;beanFactory.getBean("user"); Testvoid testGetBean() {Gun gun beanFactory.getBean("m416", Gun.class);log.info("gun{}", gun);} public <T> T getBean(String name, Class<T> requiredType) throws Bea…

2024年威胁暴露管理两大新趋势

文章目录 前言一、威胁暴露管理的两大新类别二、EAP:减少对CVSS的依赖三、AEV:锁定现实威胁四、CTEM实施面临的挑战与应对策略五、主动风险管理的新时代前言 2024年,安全运营(SecOps)领域迎来重大变革。根据Gartner最新发布的《安全运营技术成熟度曲线》报告,持续威胁暴…

一款人脸识别的芯片内部

三年前在一家3D人脸识别的芯片公司&#xff0c;先后做过两个稍具规模的芯片项目&#xff0c;因为各种原因&#xff0c;这些最终都没有上市&#xff0c;成为沉寂在实验室的产物。但是这些芯片的总体设计都颇具匠心&#xff0c;自己在当时也很有触动&#xff0c;现在拿出一点来供…

揭秘难以复现Bug的解决之道:堆栈分析实战

目录 引言 友情提示难以复现的Bug之痛 寄存器(SP、LR)详解 SP寄存器&#xff1a;堆栈的指路明灯LR寄存器&#xff1a;函数调用与异常处理的桥梁 问题分析与解决流程揭秘 保存现场分析堆栈数据 堆栈结构入栈顺序 案例 J-Link工具 常用命令保存RAM数据到本地 分析栈基本信息 分…

【最新华为OD机试E卷】最大报酬(100分)-多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-E/D卷的三语言AC题解 💻 ACM金牌🏅️团队| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,…

【Python】企业排名、地域分布与词云分析可视化

目录 数据处理 Pyecharts 各国数量 分布地图 数量占比 城市分布 营业收入 利润转化 数据处理 2021世界五百强企业数据&#xff0c;包含公司名称、公司链接、营业收入(百万美元)、利润(百万美元)、国家等信息。数据集下载&#xff1a;Python企业排名、地域分布与词云分…

opencv-python 图像增强十七:泊松图像融合

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、概述二&#xff0c;实现&#xff1a; 前言 在深入探讨图像处理与计算机视觉领域的过程中&#xff0c;我们不禁对图像融合技术的精妙与实用性感到着迷。图像…

物联网之云平台架构

一&#xff0c;一个典型的物联网云平台 一个典型的物联网&#xff08;IoT&#xff09;云平台需要实现多个功能&#xff0c;以支持物联网设备的接入、数据处理、设备管理、实时控制等需求。 &#xff08;一&#xff09;核心功能 1&#xff0c;设备接入与管理&#xff1a; - 设…

【达梦数据库】DBeaver连接达梦数据库

打开 DBeaver&#xff0c;新建驱动管理器 新建驱动管理器&#xff0c;配置信息如下 添加库文件&#xff0c;jar包使用项目上使用的jdbc驱动包即可&#xff0c;找到本地maven仓库jar位置进行添加。 <dependency><groupId>com.dameng</groupId><artifact…

打开配置好的gee的jupyter Lab环境

目录 打开anconda 打开箭头下的cmd环境&#xff0c;输入jupyter lab