当前位置: 首页 > news >正文

测试用例的设计思路

接到提测单后要做的事情:

  • 测试准备阶段
    1. 确认提测单内包含的文件、URL地址可以访问
    2. 确认需求 (迭代目标、用户故事、用户愿望、问题反馈等)
    3. 确认回归测试范围、更新测试范围、新增测试范围
    4. 编写测试点思维导图,过程中有问题及时进行沟通
    5. 与迭代相关人员约一个时间, 开内部的测试点评审会
    6. 根据评审通过的测试点, 编写测试用例 (如果迭代已提测, 可以写用例和执行同步进行, 以提升测试效率)
    7. 通过冒烟用例集给开发, 让开发完成提测冒烟
  • 测试执行阶段
    1. 第一轮测试执行
    2. 第二轮测试执行 (回归第一轮发现的问题)
    3. 输出测试报告
    4. 第三轮测试执行 (迭代版本发布时的验证)
  • 测试结束阶段
    1. 编写迭代总结内容 (做到好的、做的不好的、需要保持的)
      • 工时是否存在偏差
      • 被关闭的缺陷是否有合理的关闭原因
    2. 测试用例入库 (迭代库 -> 全量库)

常规的八个用例设计方向:

  • UI界面 : 界面布局、排版是否符合UI设计师或产品需求, 文字, 图标大小。比如: 点赞按钮的位置, 点赞人的名称文字显示, 点赞红星图标, 点赞个数。
  • 易用性 : 操作简单, 操作是否有友好提示, 如果是输入框 (是否支持Tab、Enter等快捷键)。 比如: 点赞后有提示, 点赞流程简单, 点赞入口。
  • 兼容性 : 不同手机、浏览器、操作系统版本, 软件版本, 分辨率, 显示正常且功能正常。比如: 平板, 小米, 华为, 微信客户端。
  • 功能测试 : 场景+流程 (用户可能执行的操作, 业务流程) + 新增改查删除+排序。比如: 点赞别人的朋友圈 (朋友点赞我的朋友圈), 点赞成功, 取消点赞, 点赞是否看到共同好友, 删除朋友圈, 删除点赞, 点赞的排序。
  • 接口测试 : 接口正常调用, 返回报文正常。比如: 点赞接口调用, 参数 (后端)。
  • 弱网测试 : 断网、网络信号差, 操作的时候来电话, 4G/5G 网络切换。比如: 打电话的时候点赞, 断网点赞。
  • 性能测试 : 使用该功能的响应时间是否在需求规定的时间, 多次快速操作。比如: 点赞到显示点赞的响应时间, 点赞后好友消息更新的速度, 同时点赞, 多次点赞。
  • 安全测试 : 客户端和服务端都需要验证 (不能单单是在客户端验证), 涉及手机号、身份证、银行卡、密码等敏感信息是否加密。比如: 点赞是否泄露用户信息。

编写用例时点注意事项如下:

  1. 用例能被别人轻松地阅读、理解和执行
  2. 用例要紧密联系测试点
  3. 要在 预期结果 中与测试点完成闭环
  4. 存在代码时, 代码放 前置条件 里定义好, 再放 操作步骤 里引用
  5. 存在特殊需求或情况时, 需要在 备注 里详细说明
  6. 存在多团队或组织时, 需要考虑测试对象在多团队或组织下的检查
  7. 如果测试点为代码配置项时, 避免贴大段代码, 应该突出配置项及其关联
  8. 如果测试对象可以重复, 需要根据其重复规则设计测试场景
  9. 如果测试点关联或支持多类型、多场景时, 拆成多条用例来写
  10. 编写 用例标题
    • 分隔, 前面写模块、属性或路径, 后面写测试点
    • 多条用例有大量重复内容时, 需要说明它们之间的差异点
  11. 编写 前置条件
    • 首先保证 操作步骤 的正常执行, 不能有冲突
    • 其次要明确边界, 刚好能完成 操作步骤 即可
  12. 编写 操作步骤
    • 要突出测试点, 非测试点放在 前置条件 里一笔带过
    • 步骤描述 包含多项检查时, 在 预期结果 中应给出多项结果
    • 预期结果 里包含文本检查时, 需要考虑多语言的场景
    • 步骤描述 只有单行文本时, 不用有序或无序列表
  13. 编写用例内容时
    • 包含专业或难理解的词汇时, 补充简单描述或添加文档链接
    • 包含 uuidid 等动态数据时, 用参数描述指代
    • 包含多个测试对象时, 可以用 “A~Z”、“a~z” 或数字指代
    • 包含有序列表时, 数字后应用 . 而不是其他符号
    • 当同一个页面有多个入口时, 固定一个入口作为路径, 避免模糊不清
  14. 编写前端UI组件的测试用例时
    • 用例内不能依赖设计稿、开发或自己的Demo,要做到只看用例就能测试
    • 如果必须要引用外部内容,可以用文件或图片以附件形式贴到用例里
    • 验证测试点的组件属性或事件要明明白白地写在用例中
      • 在文档不明确时,用别名代替属性或事件,待文档明确后再修改别名
      • 条件允许时,贴上组件属性或事件的配置代码,让用例有较强的可执行性
    • 根据测试点是否复杂,来控制用例的颗粒大小
      • 复杂时,设计多条用例实现
      • 简单时,在一条用例中,将组件属性或事件变成参数,并在步骤中修改参数

具体场景下的用例测试点设计:

  • 接口或函数测试
    • 列表参数
      • 排序用途
        • 首尾和中间插入新值
        • 首尾和中间移除旧值
  • UI组件库测试
    • 浏览器(Safari/Edge/Chrome/Firefox)兼容性
      • 最新的版本
      • UI组件库支持的最低版本

相关文章:

测试用例的设计思路

接到提测单后要做的事情: 测试准备阶段 确认提测单内包含的文件、URL地址可以访问确认需求 (迭代目标、用户故事、用户愿望、问题反馈等)确认回归测试范围、更新测试范围、新增测试范围编写测试点思维导图,过程中有问题及时进行沟通与迭代相关人员约一个…...

HCIP——交换综合实验

一、实验拓扑图 二、实验需求 1、PC1和PC3所在接口为access,属于vlan2;PC2/4/5/6处于同一网段,其中PC2可以访问PC4/5/6;但PC4可以访问PC5,不能访问PC6 2、PC5不能访问PC6 3、PC1/3与PC2/4/5/6/不在同一网段 4、所有PC通…...

大学生如何搭建自己的网站

这篇是我在大一的时候,写过的一篇文章。 前言 作为一名大学生,我觉得搭建个人网站很有意义。 这篇博客讲述的是这个寒假,我是如何从零到搭建好个人网站的过程。我提供的主要是具体的思路,也附带了一些零零散散的细节。时间跨度…...

linux 路由表的优先级

[rootlocalhost cc]# ip rule list 0: from all lookup local 32765: from 10.0.19.24 lookup 4096 32766: from all lookup main 32767: from all lookup default 现在有 4 条路由规则,优先级是怎样的,0 代表最低优先级还是最高优先级 在 Linux 的 IP …...

毕业项目分享

大家好,今天给大家分享112个有趣的Python实战项目,可以直接拿来实战练习,涵盖机器学习、爬虫、数据分析、数据可视化、大数据等内容,建议关注、收藏。 项目名称 主要技术 2023招聘数据分析可视化系统爬虫 7种薪资预测模型 Flas…...

Android启动系列之进程杀手--lmkd

本文概要 这是Android系统启动的第三篇文章,本文以自述的方式来讲解lmkd进程,通过本文您将了解到lmkd进程在安卓系统中存在的意义,以及它是如何杀进程的。(文中的代码是基于android13) 我是谁 init:“大…...

tex中的边框

文章目录 利用tcolorbox宏包给公式加框 利用tcolorbox宏包 tcolorbox可以创建一个盒子的环境,例如: \documentclass{article} \usepackage{tcolorbox} \begin{document}\begin{tcolorbox}[left1cm, right1cm, top0.5cm, bottom0.5cm,colbackblue!10!wh…...

面试题库之JAVA基础篇(三)

final 被final修饰的类不可以被继承。被final修改的方法不可以被重写。被final修改的方法,jvm会尝试内联,以提高运行效率。被final修改的变量不可变,如果修改的是引用,那么引用不可变,引用指向的对象内容可变。被fin…...

CTF-虚拟机-QEMU-前置知识-操作流程与源码阅读

文章目录 总览内存PCI设备PCI配置空间前64个字节对应源码Memorry空间的BARIO空间的BAR MMIOPMIOIspci访问PCI设备配置空间中的Memory空间和IO空间MMIOPMIO QQM(qemu object model)简洁概要将 TypeInfo 注册 TypeImpl:ObjectClass的初始化&…...

java成神秘籍第一卷

前言 适合还没有入行小白学习,有些朋友会跑来问我这行的一些问题,下面算是详细系统的整理了一下啦。 全当是学习 复盘 整理 记录了 java成神秘籍第一卷 前言一 前提1 要不要考公,考编,考研2 语言选择3 就业岗位4 目标5 考不考虑…...

golang实现文件上传(高并发+分块+断点续传+加密)

运行视频 // todo 根据前端传递文件加密 func (s *FileProcess) FileProcessEncryptionByFront(file multipart.File, h *multipart.FileHeader) interface{} { //根据字节直接处理文件 这个是前端传递的二进制流s.FileProcessInit() //文件初始化 设置原来文件…...

用HeidiSQL在MySQL中新建用户

用HeidiSQL登录到MySQL数据库,注意登录的时候要使用有权限的用户: 选择工具-》用户管理: 点击左上角的“添加”: 输入用户名、密码,并且分配权限: 点击右边的“添加对象”: 可以根据自己…...

【IPv6】IPv6协议

一、IPv6数据报格式 这是与v4报头的对比 1.8bit的版本保留了,v4版本就是4,v6就是6。 2.v6去除了v4的首部长度字段,因为v6的首部长是固定的40字节。 3.服务类型(Type of Service, ToS)和通信类型(Traffi…...

无需服务器,无需魔法,拥有一个微信机器人就是这么简单

前情提要 还没看过的朋友可以看一下上一篇文章《拥有一个微信机器人总共需要几步?》在这篇文章里,我们提到,创建微信机器人需要一个大前提--你得有一台服务器。现在,不再需要了!没错,上一篇提到的Serverles…...

1、命名空间、C++的复合类型、缺省参数

命名空间 1、命名空间的定义 使用namespace定义&#xff0c;使用作用域限定符::访问 #include <iostream> namespace ICBC{int money 0;void save( int m){money m;} } int main( void ){ICBC::save( 100); std::cout << "工行卡余额&#xff1a;"…...

colab notebook导出为PDF

目录 方法一&#xff1a;使用浏览器打印功能 方法二&#xff1a;使用nbconvert转换 方法三&#xff1a;在线转换 方法一&#xff1a;使用浏览器打印功能 一般快捷键是CTRLP 然后改变目标打印机为另存为PDF 这样就可以将notebook保存为PDF了 方法二&#xff1a;使用nbconver…...

【Python动漫系列】名侦探柯南(完整代码)

文章目录 名侦探柯南环境需求完整代码程序分析系列文章名侦探柯南 《名侦探柯南》是由青山刚昌创作的一部侦探漫画,于1994年开始连载,并被改编为动画、电影、游戏等多种形式。故事讲述了高中生侦探工藤新一在破案时被不良组织所毒害,身体缩小成了一个小学生,为了寻找解药并…...

【matlab】QR分解

QR分解 给定一个mn的矩阵A&#xff0c;其中m≥n&#xff0c;即矩阵A是高矩阵或者是方阵&#xff0c;QR分解将矩阵A分解为两个矩阵Q和R的乘积&#xff0c;其中矩阵Q是一个mn的各列正交的矩阵&#xff0c;即QTQI&#xff0c;矩阵R是一个nn的上三角矩阵&#xff0c;其对角线元素为…...

Liunx系统使用超详细(三)

本篇内容开始逐渐描述有关liunx的各种命令的使用方法&#xff01; 目录 一、目录和文件区别 1.1目录&#xff1a; 1.2文件&#xff1a; 1.3总结&#xff1a; 二、Linux命令的写法 三、linux命令清屏 四、pwd命令 五、ls命令 5.1 ls&#xff1a; 5.2 ls -l&#xff1a…...

Kubernetes学习笔记-Part.06 Docker安装

目录 Part.01 Kubernets与docker Part.02 Docker版本 Part.03 Kubernetes原理 Part.04 资源规划 Part.05 基础环境准备 Part.06 Docker安装 Part.07 Harbor搭建 Part.08 K8s环境安装 Part.09 K8s集群构建 Part.10 容器回退 第六章 Docker安装 在master、worker、harbor上均需…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强&#xff0c;React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 &#xff08;1&#xff09;使用React Native…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

【 java 虚拟机知识 第一篇 】

目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

在树莓派上添加音频输入设备的几种方法

在树莓派上添加音频输入设备可以通过以下步骤完成&#xff0c;具体方法取决于设备类型&#xff08;如USB麦克风、3.5mm接口麦克风或HDMI音频输入&#xff09;。以下是详细指南&#xff1a; 1. 连接音频输入设备 USB麦克风/声卡&#xff1a;直接插入树莓派的USB接口。3.5mm麦克…...

Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?

Pod IP 的本质与特性 Pod IP 的定位 纯端点地址&#xff1a;Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址&#xff08;如 10.244.1.2&#xff09;无特殊名称&#xff1a;在 Kubernetes 中&#xff0c;它通常被称为 “Pod IP” 或 “容器 IP”生命周期&#xff1a;与 Pod …...