测试用例介绍

文章目录

  • 一、测试用例基本概念
    • 1.1 测试用例基本要素
  • 二、测试用例的设计方法
    • 2.1 基于需求的设计方法
    • 2.2 等价类
    • 2.3 边界值
    • 2.4 错误猜测法
    • 2.6 场景设计法
    • 2.7 因果图
    • 2.5 正交排列
  • 三、综合:根据某个场景去设计测试用例(万能公式)
  • 四、如何使用Fidder操作网络(测网速)
  • 五、测试接口

一、测试用例基本概念

1.1 测试用例基本要素

  1. 基本要素:测试环境、操作步骤、测试数据、预期结果等
    • 不是说就上面这四个,只是说只知道这几个也行
  2. 测试用例的用处
    • 可作为测试执行者的依据辅助测试
    • 可作为自动化测试的基础,把重复的工作简化
    • 评估需求覆盖率
      • 覆盖率:用来计算测试的代码范围
        • 计算公式:测试的代码行数/没有测试的代码行数
        • 可由工具辅助计算
    • 用例的复用:当要更新一个软件时(由v1变为v2),在git操作上,我们会在v1基础上创建一个dev分支,然后在该分支上迭代其为v2代码,最后合并到master分支上。对于测试用例而言,我们需要写v2新功能的测试用例,至于v1的老功能可以复用v1时的测试用例
      • 为什么还需要测试v1的代码:因为我们无法保证开发人员在开发v2时,没有更改v1的代码,或者说新功能不会影响到老功能

二、测试用例的设计方法

这些设计方法都是针对【黑盒测试】的

2.1 基于需求的设计方法

  1. 根据需求来设计测试用例:设计出来的测试用例只是大概的,测试出来的软件也是不完善的。但不可以没有,因为它相当于是测试软件的思路,如果直接用什么等价类、边界值这种具体设计测试用例的方法,只会让人觉得很没有逻辑
    在这里插入图片描述

2.2 等价类

  1. 分类:等价类主要分为【有效等价类】和【无效等价类】
    • 有效等价类:满足用户需求的数据集合,使用这些数据,程序不会报错
    • 无效等价类:不满足用户需求的数据集合,使用这些数据,程序会报错
  2. 如何通过等价类设计测试用例
    • 充分理解需求
    • 将需求划分为【有效等价类】和【无效等价类】
    • 分别从【有效等价类】和【无效等价类】中抽取一个测试用例进行测试,只要被抽取的那个测试用例能够通过,则认为所代表的等价类测试通过
      • 理解:吃东西我们只要吃一口,就可以判断这道菜好不好吃了。此时,那一口就是被提出来的测试用例,整道菜就是该测试用例代表的等价类
    • 组合有效等价类和无效等价类
      • 组合规则
        • 有效等价类:一条测试用例尽可能的覆盖所有有效等价类
        • 无效等价类:一条无效等价类与其他的有效等价类
  3. 好处:可以用较少的测试用例达到尽量多的功能覆盖,解决了不能穷举测试的问题
  4. 案例

在这里插入图片描述

在这里插入图片描述

2.3 边界值

  1. 场景:因为边界情况很容易出bug,所以我们要多测试
  2. 上点、离点、内点
    • 上点:对于开区间、闭区间、半开半闭区间来说,上点都是边界上的点
    • 离点:对于开区间、闭区间、半开半闭区间来说,离点都是边界内的点
    • 内点:边界左右的一个点,如果是闭区间,离点是范围外的点;如果是开区间,离点就是范围内的点
      在这里插入图片描述
  3. 使用边界值法设计测试用例
    • 充分理解需求
    • 找上点、内点、离点
    • 针对上面这三点,结合等价类法去设计测试用例
  4. 案例
    在这里插入图片描述

2.4 错误猜测法

  1. 什么是“错误猜测法”:这个方法基本靠测试经验,测试人员根据经验猜测大概哪种情况下容易出错
  2. 缺点:难以系统化,并且过度依赖个人能力

2.6 场景设计法

  1. 如何利用场景设计法设计测试用例
    • 定位主事件流:主事件流就是用户经常操作的步骤、行为,是个大模块
    • 定位次事件流:主事件流里面,大都都会有很多意外
    • 将上述两个事件流串起来形成场景:此时一个场景就是一个测试用例
  2. 案例
    在这里插入图片描述

2.7 因果图

  1. 为什么会有因果法:输入的数据也是有逻辑关系的,如输入的两个条件必须要同时满足才能通过测试,我们可以根据这个逻辑,去设计测试用例

  2. 因果图VS判定表法:因为因果图最终会转为判定表,所以这里干脆从【判定表】的部分讲,跳过中间部分,所以实际我们要学的其实是【判定表法】

  3. 逻辑关系种类

    • 恒等:条件为真,结果一定为真;条件为假,结果一定为假
    • :条件全为真,结果才为真
    • :条件全为假,结果才为假
    • :条件为假,结果才为真
  4. 如何根据判定表法设计测试用例

    • 充分理解需求
    • 分析所有可能的输入和输出
    • 找出输入和输出的对应关系
    • 判定表
    • 把判定表对应到每一个测试用例上
  5. 案例
    在这里插入图片描述

  6. 缺陷:如果输入和输出十分复杂,制作判定表就十分麻烦,此时我们可以借助【正交表法】进行优化

2.5 正交排列

  1. 名词解析
    在这里插入图片描述

  2. 正交表性质
    在这里插入图片描述

  3. 如何根据正交表法设计测试用例:通常是需要工具辅助我们生成一个正交表

    • 确定因素(变量)
    • 确定因素取值(水平)
    • 通过工具生成正交表
    • 将正交表转换成测试用例
    • 补充正交表
  4. 案例
    在这里插入图片描述

三、综合:根据某个场景去设计测试用例(万能公式)

  1. 设计思路:实际测试,我们不会专门去使用上面那些设计方法,而是使用【万能公式】
  2. 万能公式:功能、界面、易用性、兼容性、安全性、性能、网络
    • 针对一个【物体】进行设计
      • 功能:这个物体经常被用来干什么
      • 界面:物体的形状、颜色、大小……
      • 易用性:物体的设计符合人体工学
      • 兼容性:该物体除了本质功能,还可以做哪些事情
      • 安全性:物体不能对人的健康有损害
      • 性能:承受能力,如抗压力、耐热力、耐寒力等
    • 针对一个【软件】进行设计
      • 功能:软件的基础功能(本职功能)是什么

      • 界面:界面的图片布局、图片大小、按钮颜色、文字字体……

      • 易用性:软件设计符合大众操作习惯,能让人操作流畅

        • 比如如果报警一般是红色日志,绿色一般表示通过,黄色则一般表示警告
      • 兼容性:软件可以在不同的平台去部署、运行

        • 兼容对软件十分重要,因为不同的用户会用不同的设备去使用该软件
        • 考虑到不同的设备(IOS、Android、PC)、以及对应的不同的版本(比如浏览器的版本、操作系统的版本……)
          • 苹果手机和苹果电脑的操作系统就是IOS,PC主要指电脑端,电脑的操作系统有Windows、Linux、Mac
        • 因为测试兼容多是重复性操作,所以我们可以用【自动化】来帮助我们提高测试的效率
      • 安全性:使用功能时,要防止黑客攻击,没有内存泄漏、SQL注入、xss漏洞等问题

        • xss漏洞:如果在输入框输入< script>代码< /script>,如果存在xss漏洞,程序就会执行里面的代码,如果代码涉及金钱,就会十分危险。如果没有,则是正常显示这段话
        • SQL注入:主要是字符串拼接问题,如数据库代码是select * from list where id = 10 or 1 = 1, 但是输入框输入的是xxx or 1 = 1,此时会搜出全部的数据
      • 性能:吞吐量(软件能够同时间承载多少个用户访问)、响应时间(软件渲染页面所需的时间)……
        在这里插入图片描述

      • 网络:在不同网速下能否正常运行

  3. 设计水杯的测试用例:利用万能公式有逻辑地求解,而不是想到什么测试点就说什么,每个部分至少能说出3,4个点
    • 注意:如果是大需求,就把其拆为小需求求解:如果是小需求直接用万能公式
      • 功能:能泡茶、能加热水、能保温、容量为500ml……
      • 兼容:能装酒、能装化学物质、能装饮料……
      • 易用性:便于携带、拿着舒服符合人体工学、水杯重量适中……
      • 安全:水杯的材质不会与水发生化学反应,从而产生有毒物质、杯盖足够紧,加热水时不会漏液……
      • 界面:水杯上的图案美观、图案不会褪色、容量刻度线明显……
      • 性能:防摔、防爆、保温效果好……
  4. 设计【微信发布朋友圈】的测试用例
    • 功能:能发送文本(再细分:能发送纯汉字、能发送纯英文、能结合、如果发送的文本过长超过了100字符,会有提示……)、能发送图片(支持发送9张及以内的图片、如果已经选中了9张图片不能再选中第10张、图片顺序能够调整……)、能发送视频、能进行分享操作……
    • 兼容:对于平板来说,无论是IOS还是Android都能发送(包含了各个版本)、对于PC电脑来说Windows和Mac不能发送朋友圈……
    • 易用性:软件操作流畅、软件操作简单
    • 安全:会自动过滤敏感词、防止SQL注入、防止xss漏洞、防止黑客攻击……
    • 界面:朋友圈页面布局好看、小部件符合大众习惯……
    • 性能:图片渲染时间短、支持大量用户同时发送朋友圈……

四、如何使用Fidder操作网络(测网速)

  1. 概念:Fidder和Charles可以用来控制网络,实现测网速等操作
  2. 方法
    在这里插入图片描述
    在这里插入图片描述

五、测试接口

  1. 测试方式:可以使用代码测试,也可以使用可视化工具postman测试
  2. 测试方向
    • 针对接口方法测试:post、get、put、delete……(注,get方法里不能用post)
    • 针对参数测试:选取符合要求和不符合要求的参数,分别进行测试,如参数的个数、参数为空……
    • 针对业务测试:根据返回结果,判断业务是否正确
      在这里插入图片描述

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

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

相关文章

基于蓝牙Beacon人员导航方案

基于蓝牙Beacon人员导航方案 一、室内定位市场痛点与技术选择 大型商场&#xff08;单层超2万㎡&#xff09;和医院&#xff08;科室超200个&#xff09;的复杂空间中&#xff0c;传统GPS信号衰减超90%&#xff0c;用户平均寻路耗时10-15分钟&#xff0c;30%购物决策因“找店…

使用vue3 脚手架创建项目

1.创建项目 并 运行 1.1 创建项目 vue create abcd 1.2 运行 创建好项目后&#xff0c;命令行会提示你运行项目 npm run serve 2.介绍各个目录 node_modules : 项目依赖包&#xff0c;其中包括很多基础依赖&#xff0c;自己也可以根据需要安装其他依赖 assets文件夹&a…

跨语言哈希一致性:C# 与 Java 的 MD5 之战?

在跨平台或异构系统集成的场景中&#xff0c;我们经常需要在不同的编程语言之间交换数据或验证数据一致性。MD5 作为一种广泛使用的哈希算法&#xff0c;就常常扮演着生成唯一标识或校验数据完整性的角色。然而&#xff0c;不少开发者可能会遇到这样一个令人困惑的问题&#xf…

基于RuoYi的WMS仓库管理系统源码级解决方案

基于RuoYi的WMS仓库管理系统源码级解决方案 项目地址 一、系统简介 WMS&#xff08;Warehouse Management System&#xff09;仓储管理系统是现代物流管理的核心系统&#xff0c;通过对仓库业务的精细化管理&#xff0c;实现入库、出库、库存等环节的高度自动化和智能化。 系…

研究:大模型输出一致性:确定性与随机性的场景化平衡

大模型在相同输入下的输出是否一致,本质上取决于其设计目标、任务性质以及技术实现方式。这一问题需要从技术原理、应用场景、用户需求三个维度进行深度分析: 一、技术实现:确定性与随机性的平衡 模型架构的确定性基础 大模型的核心参数(如权重矩阵)在训练完成后是固定的…

青年座谈会的读书汇报

今天&#xff0c;单位组织了一个五四青年座谈会&#xff0c;我们室由于大家都在出差忙之类的&#xff0c;我必须要参加&#xff0c;还要我做一个汇报&#xff0c;我一新来的还没深入到研发工作中&#xff0c;于是决定写了一篇简单的读书笔记&#xff0c;再用deepseek润色一下&a…

RabbitMQ安装流程(Windows环境)

安装资料链接&#xff1a;https://download.csdn.net/download/ly1h1/90705840?spm1001.2014.3001.5503 代码案例链接&#xff1a;https://download.csdn.net/download/ly1h1/90706521 1.下载依赖&#xff0c;Downloads - Erlang/OTP 2.下载RabbitMQ安装包&#xff0c;In…

vscode 使用gitcode团队管理项目

1、下载安装vscode https://code.visualstudio.com/Download 2、安装git 3、在vscode中安装GitLens插件 4、打开终端 点击会显示当前更改的项目 5、提交更改的文件&#xff0c;会提示输入用户名、密码&#xff0c;这里的密码即是令牌&#xff0c;令牌在第一次创建的时候显…

el-input限制输入只能是数字 限制input只能输入数字

方法一&#xff1a; 通过设置type属性&#xff1a;type“number”&#xff0c;这种方式一般会影响样式&#xff0c;不建议使用&#xff0c;如下图&#xff1a; <el-input type"number" v-model"aaa"></el-input>方法二&#xff1a; 通过绑定值…

【Python数据驱动决策】数据分析与可视化全流程实战指南

目录 前言技术背景与价值当前技术痛点解决方案概述目标读者说明一、技术原理剖析核心概念图解核心作用讲解关键技术模块说明技术选型对比二、实战演示环境配置要求核心代码实现案例1:销售数据清洗案例2:月度销售趋势分析案例3:产品关联分析(热力图)运行结果验证三、性能对…

Spring的BeanFactory和FactoryBean的区别

​ ‌BeanFactory和FactoryBean在Spring框架中扮演着不同的角色&#xff0c;具有不同的功能和用途。‌ 定义与角色 ‌BeanFactory‌&#xff1a;BeanFactory是Spring IoC容器的核心接口&#xff0c;用于管理和维护Bean的定义、创建和生命周期。它是Spring IoC容器的基础&…

Typecho博客使用阿里云cdn和oss:handsome主题进阶版

Typecho使用阿里云cdn和oss 设置前需要保证阿里云cdn和oss已配置好且可以正常使用一、准备工作二、修改 Handsome 主题的静态资源链接方法 1&#xff1a;直接修改主题文件&#xff08;推荐&#xff09;方法 2&#xff1a;通过主题设置自定义&#xff08;方便&#xff09; 三、处…

部署mongodb三幅本集群

背景&#xff1a;原先使用的mongodb采用的是SSPL协议&#xff0c;此协议客户检测到有bug&#xff0c;故需要替换mongodb的版本&#xff0c;原先采用helm部署的mongodb但是无法找到4.1.4版本的chart包&#xff0c;故手写yaml部署 1、部署mongodb-arbiter服务 这个服务是用来选…

jdk1.8.0_05 在 SpringBootTest Debug模式下奔溃

之前好好的项目&#xff0c;最近换了之前的电脑&#xff0c;但是在使用SpringBootTest 启动debug模式时&#xff0c;虚拟机就会奔溃&#xff0c;通过修改如果把 junit5 import org.junit.jupiter.api.Test; 修改为 junit4 ,就不奔溃了 import org.junit.Test; 但是这样的…

QGIS+mcp的安装和使用

QGISmcp的安装和使用 安装qgis_mcp 下载qgis_mcp&#xff1a; git clone https://github.com/jjsantos01/qgis_mcp.git安装uv uv是一个由Rust语言编写的python包管理工具&#xff0c;旨在提供比传统工具&#xff08;如 pip&#xff09;更高效的依赖管理和虚拟环境操作。 p…

厚铜pcb生产厂家哪家好?

在为您的项目选择厚铜PCB供应商时&#xff0c;技术实力、生产经验与交付能力是决定产品可靠性的关键。随着新能源汽车、工业电源、5G通信等领域对高电流承载、高效散热的需求激增&#xff0c;厚铜PCB&#xff08;铜厚3oz以上&#xff09;的工艺门槛不断提升。本文结合行业头部企…

再见,物理删除!MyBatis-Plus @TableLogic 优雅实现逻辑删除

在开发应用程序时&#xff0c;我们经常会遇到需要删除数据的场景。但直接从数据库中物理删除&#xff08;DELETE​&#xff09;数据有时并非最佳选择。为什么呢&#xff1f; 数据恢复: 一旦物理删除&#xff0c;数据通常难以恢复&#xff0c;误操作可能导致灾难性后果。审计追…

湖北理元理律师事务所:债务管理领域的平台化创新探索

随着中国居民负债率攀升至62%&#xff08;央行2023年数据&#xff09;&#xff0c;债务管理从个体需求演变为社会性课题。湖北理元理律师事务所通过“法律科技金融”的融合模式&#xff0c;构建了国内首个全链条债务管理平台&#xff0c;其服务逻辑与行业价值值得深度剖析。 平…

【更新】LLM Interview (2)

字数溢出&#xff0c;不解释 前文&#xff1a;llm interview (1) 文章目录 强化学习专题1 什么是RL&#xff1f;2 RL和监督、非监督、深度学习的区别3 RL中所谓的损失函数与深度学习中的损失函数有何区别&#xff1f;4 RL历史5 RL分类5.1 分类图示5.2 根据智能体动作选取方式分…

高性价比手机如何挑选?

这四个关键点&#xff0c;助你找到心仪机~ 一、性能强者&#xff1a;游戏娱乐畅快到底 处理器相当于手机的 “大脑”&#xff0c;处理速度快、能力强&#xff0c;运行大型游戏毫无压力。 搭配上大容量运存&#xff0c;多任务切换也能秒速完成&#xff0c;再也不怕游戏卡顿啦。…