如何编写具有完备性的测试用例 ? 具体思路是什么 ? 全套解决方案打包呈现给你 。

设计测试用例应该算是测试人员最为主要的工作之一 ,好的测试用例往往具有覆盖性强 ,扩展性高以及复用性好等特点 。该如何设计出好的测试用例 ?是我们每一位测试人员需要重点思考的问题 ,下面是我对设计测试用例设计的思考 :

1.建立设计用例框架

 

所谓的流程覆盖 ,就是对产品中存在的主要场景进行覆盖测试 ,参考依据就是产品原型的流程图以及用户的主要场景 ,通过流程图中的路径所进行的覆盖;

而功能的覆盖 ,主要指的是两个方面 ,分别为功能宽度的覆盖和功能深度的覆盖 ,具体原则就是先进行功能宽度(范围)的覆盖,再进行功能深度(方法)的覆盖。

类型覆盖就是针对质量模型中的特性,从测试的角度去覆盖测试 ,比如质量模型有易用性特性 ,你就可以通过易用性测试进行验证 。所以,最后的测试类型主要包括 :

  • 功能测试(在上面已经考虑,这里就可以忽略)

  • 易用性测试

  • 兼容性测试

  • 可靠性测试

  • 安全性测试

  • 性能测试

2.对应的测试方法

3.测试的颗粒度

如果我们面对一个庞大而又复杂的系统时,如果系统中的每个功能都要考虑的很细 ,那么无疑会给我们带来很大的工作量 。而且很多时候也没必要 ,你永远也不能把电商系统的支付功能和站内信功能按照同样的方式去设计 ,因为本身它们的重要程度就不一样。 所以设计测试用例的颗粒度自然也会不同 。那么该如何确定测试用例的颗粒度呢 ? 就是按照功能的重要程度来确定所使用的测试方法,越重要的功能使用的方法及策略会越多 ,反之就越少 。具体的使用步骤就是 :

 

  1. 确定功能测试范围 ,根据项目迭代的情况 ,确定本次版本所要测试的范围(确定范围边界) 。

  2. 给对应功能设置级别 ,一般按照严重程度可以划分为四个等级 ,划分等级的目的就是为了后面设计测试用例和使用测试策略时的侧重点是不同的 。若没有等级划分 ,就很难确定出使用的测试方法以及测试策略 。

  3. 针对每个功能给出设计的测试方法和测试策略 ,总体原则就是重要的功能测试方法会用的越多 ,同时测试策略也会加强该功能的测试 ,反之就会减少对其的测试 。这样可以将更多的时间花在重点功能上 。

按照以上步骤 ,结合一个案例就会得出如下的结果 ,如下图 :

4.如何设计测试用例

最后让我们回到最开始的问题 ,如何设计测试用例呢 ? 你可以按照如下的流程进行设计 :

 

  1. 提取测试点 ,主要是指根据需求提取测试点 ,需要与测试点不一定是一对一的关系 ,有时候可以是多个需求对应一个测试点 ,有时候也可以是一个需求能提取出多个测试点 。

  2. 使用测试方法对测试点设计测试用例 ,通过上面提取的测试点 ,然后根据对应的测试方法进行设计测试用例 。

  3. 复验回检测试用例,进入这个阶段,一般你的测试用例已经写完,你更多的是将已经编写的用例再进行一次检查 ,确实是否覆盖了需求 ?是否了不同的测试类型 ? 是否已经覆盖了相对应的方法 ?总之 ,你的目的就是为了捡漏补全 。

  4. 确定测试套件, 为了后续进行测试组合成各种套件,以便后续测试使用 。

下面我们就按照上面的框架去设计测试用例 ,依次先考虑 :流程 -> 功能 ->其它测试类型 。

1.流程测试

首先 ,要站在整体的角度进行全局思考 ,理解用户需求及使用场景,这样能更好的梳理出用户的常用场景 ,当然一般在产品原型中也提供了产品流程图 。然后我们使用场景法和流程图的方法来设计这一类型的测试用例 。比如如下的流程图 :

以上的流程图,一般有两种覆盖的方式,就是全覆盖和部分覆盖 。若进行全覆盖的话 ,就需要将每一个分支进行组合后覆盖 ,虽然从覆盖上来说是全的 ,但是花在用例上的陈本太高 ,大大超出了我们的正常的工作量 ,所以不建议这样覆盖。

最可取的办法将每一个分支至少覆盖一次就可以了 ,这样的话就会大大降低用例数量 ,比如上图就可以变为 :

  • 流程1 :P1-d1-d2-d3-P5(基本流)

  • 流程2 :P1-d1-P2-d2-d3-P5(备选流-走P2分支)

  • 流程3 :P1-d1-d2-P3-d3-P5(备选流-走P3分支)

  • 流程4 :P1-d1-d2-d3-P4-P5(备选流-走P4分支)

下图是一个实际的案例 ,虽然流程少但是就可以按照这种流程去覆盖 。

 

2.功能测试

对单个功能设计测试用例的话 ,我们就可以按照先从需求提取测点,然后再设计测试用例的步骤来进行 ,比如下面的这个需求

最终将需求点转化为了测试用例 ,具体如下 :  

通过上面的案例可以看到 ,如果没有提取测试点这一步骤 ,其对应的测试用例就很容易遗漏掉,所以,在设计测试用例的过程中提取测试点是一个很重要的步骤 。

最后,就是从测试点到最终的测试用例的这一步其实就是用的不同的测试方法,具体方法可参考上面的测试方法,因这是一个很大的话题,暂时不在这里介绍,我在后面的文章进行详述 。

 

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

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

相关文章

#RAG|NLP|Jieba|PDF2WORD# pdf转word-换行问题

文档在生成PDF时,文宁都发生了什么。本文讲解了配置对象、resources对象和content对象的作用,以及字体、宇号、坐标、文本摆放等过程。同时,还解释了为什么PDF转word或转文字都是一行一行的以及为什么页眉页脚的问题会加大识别难度。最后提到了文本的编码和PDF中缺少文档结构标…

如何输入手机验证码才能查询?确保本人查询!

易查分的手机验证码功能可以通过预留手机号,让用户查询时输入验证码,确保是本人进行查询。本次就来介绍如何开启【手机验证码功能】。 📌使用教程 01准备电子表格 在准备表格时,建立查询时,查询条件必须设置两个或者两…

ElementUI 组件:Container 布局容器实例

ElementUI安装与使用指南 Container 布局容器 点击下载learnelementuispringboot项目源码 效果图 项目里el-container-example.vue代码 <script> export default {name: el_container_example,data() {const item {date: 2024-01-31,name: 国龙,address: 上海市某区…

Mac 终端可以使用yarn,但是vscode里面报错segmentation fault

Mac 终端可以使用yarn 但是vscode里面报错segmentation fault 查阅官网https://www.yarnpkg.cn/getting-started/install 在vscode运行corepack enable即可解决该问题

网络异常案例五_SYN被丢弃

问题现象 公司同事使用的时候&#xff0c;反馈系统不稳定&#xff0c;访问的时候&#xff0c;有时候会出现白屏&#xff08;连接超时&#xff09;&#xff0c;或者系统页面点击没有响应&#xff0c;过一会之后刷新系统又可以正常展示了。之前未收到过类似反馈&#xff0c;一直…

20240131在WIN10下配置whisper

20240131在WIN10下配置whisper 2024/1/31 18:25 首先你要有一张NVIDIA的显卡&#xff0c;比如我用的PDD拼多多的二手GTX1080显卡。【并且极其可能是矿卡&#xff01;】800&#xffe5; 2、请正确安装好NVIDIA最新的545版本的驱动程序和CUDA。 2、安装Torch 3、配置whisper http…

2024年数学建模美赛 分析与编程

2024年数学建模美赛 分析与编程 1、本专栏将在2024年美赛题目公布后&#xff0c;进行深入分析&#xff0c;建议收藏&#xff1b; 2、本专栏对2023年赛题&#xff0c;其它题目分析详见专题讨论&#xff1b; 2023年数学建模美赛A题&#xff08;A drought stricken plant communi…

k8s Sidecar filebeat 收集容器中的trace日志和app日志

目录 一、背景 二、设计 三、具体实现 Filebeat配置 K8S SideCar yaml Logstash配置 一、背景 将容器中服务的trace日志和应用日志收集到KAFKA&#xff0c;需要注意的是 trace 日志和app 日志需要存放在同一个KAFKA两个不同的topic中。分别为APP_TOPIC和TRACE_TOPIC 二、…

【笔记】React-Native跟Android交互--简单示例

/** * 使用命令 npx react-nativelatest init DemoRN创建项目 * * "react": "18.2.0", * "react-native": "0.73.2" * * 官网有详细教程&#xff1a;https://reactnative.dev/docs/native-modules-android */ 一、RN invoke androi…

Java 的 Map 與 List

通過重新new 一個ArrayList 轉化 resTask.setList(new ArrayList<Group>(custMap.values())); 无序的Map List 有序的数据放到Map&#xff0c;就变成无序。 List排序 按照code 的字母进行排序A-Z resTask.getListData().sort(Comparator.comparing(Gmer::getCode));…

Hadoop3.x基础(2)- HDFS

来源&#xff1a;B站尚硅谷 目录 HDFS概述HDFS产出背景及定义HDFS优缺点HDFS组成架构HDFS文件块大小&#xff08;面试重点&#xff09; HDFS的Shell操作&#xff08;开发重点&#xff09;基本语法命令大全常用命令实操准备工作上传下载HDFS直接操作 HDFS的API操作HDFS的API案例…

Vue.js 学习14 集成H265web.js播放器实现webpack自动化构建

Vue.js 学习14 集成H265web.js播放器实现webpack自动化构建 一、项目说明1. H265web.js 简介2. 准备环境 二、项目配置1. 下载 H265web.js2. 在vue项目里引入 H265web3. 设置 vue.config.js 三、代码引用1. 参照官方demo &#xff0c; 创建 executor.js2. 在 vue 页面里引用htm…

Wireshark网络协议分析 - Wireshark速览

在我的博客阅读本文 文章目录 1. 版本与平台2. 快速上手2.1. 选择网络接口进行捕获&#xff08;Capture&#xff09;2.2. 以Ping命令为例进行抓包分析2.3. 设置合适的过滤表达式2.4. 数据包详情2.5. TCP/IP 四层模型 3. 参考资料 1. 版本与平台 Wireshark是一个开源的网络数据…

Linux——安装MySQL

1、安装mysql8.0.35 1.1、安装步骤 1.更新包列表&#xff0c;首先&#xff0c;确保您的系统已更新到最新状态。运行以下命令来更新包列表和安装最新的软件包&#xff1a; sudo apt update sudo apt upgrade2.安装MySQL服务器&#xff1a;运行以下命令来安装MySQL服务器&…

【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏5(附项目源码)

本节最终效果演示 文章目录 本节最终效果演示系列目录前言修改鼠标光标和中心提示图鼠标光标素材修改默认鼠标光标修改中心提示图 拾取提示弹窗简单绘制UI拾取弹窗功能 源码完结 系列目录 前言 欢迎来到【制作100个Unity游戏】系列&#xff01;本系列将引导您一步步学习如何使…

ASTORS国土安全奖:ManageEngine AD360荣获银奖

美国安全今日&#xff08;AST&#xff09;的年度“ASTORS”国土安全奖计划是一个备受瞩目的活动&#xff0c;致力于突显国土安全领域的创新与进步。这一奖项旨在表彰在保护国家免受安全威胁方面做出卓越贡献的个人和组织。该计划汇聚了执法、公共安全和行业领袖&#xff0c;不仅…

能耗在线监测系统在节能管理中的应用

上海安科瑞电气股份有限公司 胡冠楠 咨询家&#xff1a;“Acrelhgn”&#xff0c;了解更多产品资讯 摘要&#xff1a;开展能耗在线监测系统建设&#xff0c;对加强政府部门和企业节能管理中的应用前景&#xff0c;分析系统在能源消费预测分析、能效对标、节能监察、能源精细化…

单片机驱动多个ds18b20

目录 1设计内容 2ds18b20介绍 2.1传感器引脚及原理图 2.2寄存器配置 3程序实现 3.1配置初始化 3.2配置寄存器 3.3ROM读取 3.4温度读取 1设计内容 通过51单片机&#xff0c;读取总线上挂载的多个ds18b20的温度信息。 如下图&#xff0c;成功读取到3路温度数据。 2ds18…

路由备份聚合排错

目录 实验拓扑图 实验要求 实验排错 故障一 故障现象 故障分析 故障解决 故障二 故障现象 故障分析 故障解决 故障三 故障现象 故障分析 故障解决 故障四 故障现象 故障分析 故障解决 故障五 故障现象 故障分析 故障解决 实验拓扑图 实验要求 按照图示配…

软件工程知识梳理4-详细设计

详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统&#xff0c;也就是说.经过这个阶段的设计工作.应该得出对目标系统的精确描述.从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。 详细设计的的目标不仅仅是逻辑上正确地实现每个模块地功能&a…