测试用例介绍

news2025/5/9 16:35:53

文章目录

  • 一、测试用例基本概念
    • 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.coloradmin.cn/o/2371623.html

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

相关文章

phpstudy升级新版apache

1.首先下载要升级到的apache版本&#xff0c;这里apache版本为Apache 2.4.63-250207 Win64下载地址&#xff1a;Apache VS17 binaries and modules download 2.将phpstudy中原始apache复制备份Apache2.4.39_origin 3.将1中下载apache解压&#xff0c; 将Apache24复制一份到ph…

React Native基础环境配置

React Native基础环境配置 1.引言2.React-Native简介3.项目基础环境搭建1.引言 感觉自己掌握的知识面还是有点太窄了,于是决定看看移动端的框架,搞个react搭一个后端管理项目,然后拿react-native写个小的软件,试着找个三方上架一下应用市场玩玩。毕竟不可能一直在简历上挂一…

【Linux修炼手册】Linux开发工具的使用(一):yum与vim

文章目录 一、Linux 软件包管理器——yum安装与卸载的使用方法查看软件包 二、Linux编辑器——vimvim命名模式常用指令底行模式常用指令 一、Linux 软件包管理器——yum Linux安装软件的方式有3种&#xff1a; 源代码安装——成本极高rmp安装——具有安装依赖、安装源、安装版…

如何查看电脑显卡配置参数 一文读懂

显卡是电脑的重要硬件之一&#xff0c;尤其对于游戏玩家、设计师、视频编辑等用户来说&#xff0c;显卡的性能直接影响电脑的使用体验。如果您想知道电脑的显卡信息&#xff0c;或者打算升级显卡&#xff0c;那么了解如何查看显卡配置是非常必要的。本文将为您提供多种简单实用…

spring中的@ComponentScan注解详解

ComponentScan 是 Spring 框架中用于自动扫描并注册组件的核心注解&#xff0c;它简化了 Spring 应用中 Bean 的发现和装配流程。以下从核心功能、属性解析、使用场景及示例等方面进行详细说明。 一、核心功能与作用 自动扫描组件 ComponentScan 会扫描指定包及其子包下的类&am…

深入剖析 I/O 复用之 select 机制

深入剖析 I/O 复用之 select 机制 在网络编程中&#xff0c;I/O 复用是一项关键技术&#xff0c;它允许程序同时监控多个文件描述符的状态变化&#xff0c;从而高效地处理多个 I/O 操作。select 作为 I/O 复用的经典实现方式&#xff0c;在众多网络应用中扮演着重要角色。本文…

SpringBoot指定项目层日志记录

1、新建一个Springboot项目&#xff0c;添加Lombok依赖&#xff08;注意&#xff1a;这里使用的Lombok下的Slf4j快速日志记录方式&#xff09; <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependenc…

RISC-V hardfault分析工具,RTTHREAD-RVBACKTRACE

RV BACKTRACE 简介 本文主要讲述RV BACKTRACE 的内部主要原理 没有接触过rvbacktrace可以看下面两篇文章&#xff0c;理解一下如何使用RVBACKTRACE RVBacktrace RISC-V极简栈回溯组件&#xff1a;https://club.rt-thread.org/ask/article/64bfe06feb7b3e29.html RVBacktra…

matlab 中function的用法

matlab 中function的用法 前言介绍1. 基本语法示例&#xff08;1&#xff09;可以直接输出&#xff08;2&#xff09;调用函数 2.输入参数和输出参数示例多输入参数和输出参数定义一个函数&#xff0c;计算两个数的和与差&#xff1a;调用该函数&#xff1a; 3. 默认参数示例 4…

解锁 LLM 推理速度:深入 FlashAttention 与 PagedAttention 的原理与实践

写在前面 大型语言模型 (LLM) 已经渗透到我们数字生活的方方面面,从智能问答、内容创作到代码辅助,其能力令人惊叹。然而,驱动这些强大模型的背后,是对计算资源(尤其是 GPU)的巨大需求。在模型推理 (Inference) 阶段,即模型实际对外提供服务的阶段,速度 (Latency) 和吞…

4个纯CSS自定义的简单而优雅的滚动条样式

今天发现 uni-app 项目的滚动条不显示&#xff0c;查了下原来是设置了 ::-webkit-scrollbar {display: none; } 那么怎么用 css 设置滚动条样式呢&#xff1f; 定义滚动条整体样式‌ ::-webkit-scrollbar 定义滚动条滑块样式 ::-webkit-scrollbar-thumb 定义滚动条轨道样式‌…

查看jdk是否安装并且配置成功?(Android studio安装前的准备)

WinR输入cmd打开命令提示窗口 输入命令 java -version 回车显示如下&#xff1a;

5月8日直播见!Atlassian Team‘25大会精华+AI实战分享

在刚刚落幕的 Atlassian Team’25 全球大会上&#xff0c;Atlassian发布了多项重磅创新&#xff0c;全面升级其协作平台&#xff0c;涵盖从Al驱动、知识管理到跨团队协作&#xff0c;再到战略执行的各个方面。 为帮助中国用户深入了解这些前沿动态&#xff0c;Atlassian全球白…

Windows系统下使用Kafka和Zookeeper,Python运行kafka(一)

下载和安装见Linux系统下使用Kafka和Zookeeper 配置 Zookeeper Zookeeper 是 Kafka 所依赖的分布式协调服务。在 Kafka 解压目录下,有一个 Zookeeper 的配置文件模板config/zookeeper.properties,你可以直接使用默认配置。 启动 Zookeeper 打开命令提示符(CMD),进入 K…

C++之“继承”

继续开始关于C相关的内容。C作为面向对象的语言&#xff0c;有三大特性&#xff1a;封装&#xff0c;继承&#xff0c;多态。 这篇文章我们开始学习&#xff1a;继承。 一、继承的概念和定义 1. 继承的概念 什么是继承呢&#xff1f; 字面意思理解来看&#xff1a;继承就是…

Webug4.0靶场通关笔记19- 第24关邮箱轰炸

目录 第24关 邮箱轰炸 1.配置环境 2.打开靶场 3.源码分析 4.邮箱轰炸 &#xff08;1&#xff09;注册界面bp抓包 &#xff08;2&#xff09;发送到intruder &#xff08;3&#xff09;配置position &#xff08;4&#xff09;配置payload &#xff08;5&#xff09;开…

java CompletableFuture 异步编程工具用法1

1、测试异步调用&#xff1a; static void testCompletableFuture1() throws ExecutionException, InterruptedException {// 1、无返回值的异步任务。异步线程执行RunnableCompletableFuture.runAsync(() -> System.out.println("only you"));// 2、有返回值的异…

若依框架Ruoyi-vue整合图表Echarts中国地图标注动态数据

若依框架Ruoyi-vue整合图表Echarts中国地图 概述创作灵感预期效果整合教程前期准备整合若依框架1、引入china.json2、方法3、data演示数据4、核心代码 完整代码[毫无保留]组件调用 总结 概述 首先&#xff0c;我需要回忆之前给出的回答&#xff0c;确保这次的内容不重复&#…

算法中的数学:约数

1.求一个整数的所有约数 对于一个整数x&#xff0c;他的其中一个约数若为i&#xff0c;那么x/i也是x的一个约数。而其中一个约数的大小一定小于等于根号x&#xff08;完全平方数则两个约数都为根号x&#xff09;&#xff0c;所以我们只需要遍历到根号x&#xff0c;然后计算出另…

[监控看板]Grafana+Prometheus+Exporter监控疑难排查

采用GrafanaPrometheusExporter监控MySQL时发现经常数据不即时同步&#xff0c;本示例也是本地搭建采用。 Prometheus面板 1&#xff0c;Detected a time difference of 11h 47m 22.337s between your browser and the server. You may see unexpected time-shifted query res…