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

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

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.mzph.cn/news/660117.shtml

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

相关文章

代码随想录 Leetcode40.组合总和 II

题目&#xff1a; 代码&#xff08;首刷看解析 2024年2月1日&#xff09;&#xff1a; class Solution { public:vector<vector<int>> res;vector<int> path;void backtracking(vector<int>& candidates, int target, int startIndex, vector<…

opencv#41 轮廓检测

轮廓概念介绍 通常我们使用二值化的图像进行轮廓检测&#xff0c;对轮廓以外到内进行数字命名&#xff0c;如下图&#xff0c;最外面的轮廓命名为0&#xff0c;向内部进行扩展&#xff0c;遇到黑色白色相交区域&#xff0c;就是一个新的轮廓&#xff0c;然后依次对轮廓进行编号…

玛格全屋定制携手君子签,实现业务信息、流程、合同全面数字化

中国定制家居领导品牌——玛格全屋定制携手君子签&#xff0c;部署玛格业务系统&#xff0c;将电子签章系统与供应链上下游业务合同签署场景融合&#xff0c;通过无纸化、电子化的签署环境&#xff0c;打造业务“线上审批、签署、归档”闭环&#xff0c;助推业务减负提效。 电…

prometheus的alertmanager监控报警

监控告警&#xff1a; alert是一个单独的模块&#xff0c;需要我们单独的配置。 需要声明一个邮箱地址。配置是以configmap进行部署。 alert 实验&#xff1a; vim alert-cfg.yaml apiVersion: v1 kind: ConfigMap metadata:name: alertmanagernamespace: monitor-sa data…

跟着cherno手搓游戏引擎【16】Camera和Uniform变量的封装

相机封装&#xff1a; OrthographicCamera.h: #pragma once #include <glm/glm.hpp> namespace YOTO {class OrthographicCamera{public:OrthographicCamera(float left,float right , float bottom,float top);const glm::vec3& GetPosition()const { return m_Pos…

对同一文件多次mmap

abstract 问&#xff1a;对同一个文件多次mmap&#xff0c;返回的地址相同吗? 答&#xff1a;不相同 code #ifdef __linux__#include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <sys/mman.h> …

Vue-49、Vue技术实现动画效果

1、首先&#xff0c;在Vue项目中的src/components文件夹下创建一个名为AnimatedBox.vue的文件。 2、编辑AnimatedBox.vue文件&#xff0c;添加以下代码&#xff1a; <template><div class"animated-box" click"toggle"><transition name&q…

【C++】STL优先级队列(priority_queue)

priority_queue 基本介绍 priority_queue就是优先级队列。其头文件就是queue&#xff0c;但是队列和优先级队列关系不大&#xff0c;两个是不同的数据结构。但二者都是适配器&#xff0c;容器适配器。 优先级队列中存放的数据是有优先级的。 其内部有以下成员方法&#xff0c…

使用post-css实现移动端适配

介绍移动端适配以及适配方案 适配原因 移动端不像PC端,有足够大的屏幕展示较多的内容不同的移动端设备&#xff0c;有不同屏幕宽度同样大小的页面元素在不同屏幕宽度设备展示时&#xff0c;布局就会错乱有些元素没有展示在可视范围内有些元素不能撑满整个屏幕&#xf…

【Linux】初始进程地址空间

最近&#xff0c;我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念&#xff0c;而且内容风趣幽默。我觉得它对大家可能会有所帮助&#xff0c;所以我在此分享。点击这里跳转到网站。 目录 一、再谈fork二、程序地址空间2.1代码验证 三、虚拟地址&am…

成熟的汽车制造供应商协同平台 要具备哪些功能特性?

汽车行业是一个产业链长且“重”的行业&#xff0c;整个业务流程包括了研发、设计、采购、库存、生产、销售、售后等一系列环节&#xff0c;在每一个环节都涉及到很多信息交换的需求。对内要保证研发、采购、营销等业务环节信息流通高效安全&#xff0c;对外要与上、下游合作伙…

Python编程实验一:流程控制结构

目录 一、实验目的与要求 二、实验内容 三、主要程序清单和程序运行结果 第1题 第2题 第3题 第4题 四、实验结果分析与体会 一、实验目的与要求 &#xff08;1&#xff09;通过本次实验&#xff0c;学生应掌握多分支语句 if …elif…else结构的用法&#xff1b; &…

vue3/vue2中自定义指令不可输入小数点.

import { directive } from vueconst noDecimal {mounted(el) {el.addEventListener(keypress, (e) > {if (e.key .) {e.preventDefault() }})} }// 使用自定义指令 directive(no-decimal, noDecimal)使用 标签上添加 v-no-decimal <el-input…

重磅!讯飞星火V3.5正式发布,3大核心能力超GPT-4 Turbo!

1月30日&#xff0c;科大讯飞召开星火认知大模型V3.5升级发布会&#xff0c;这是国内首个基于全国产算力训练的多模态认知大模型。科大讯飞董事长刘庆峰先生、研究院院长刘聪先生出席了大会&#xff0c;并对最新产品进行了多维度解读。 讯飞星火V3.5的7大核心能力实现全面大幅…

【Python】P2 Python3 安装使用

目录 新手教程开发教程 本篇博客文章划分为两个主要部分&#xff1a; 【新手教程】旨在为 Python 编程的新手提供指导&#xff0c;适合于初学者入门&#xff0c;但不太适合用于开发大型项目&#xff1b;【开发教程】则面向那些已经有项目开发经验或者希望迅速提升开发技能的读…

BUUCTF-Real-[ThinkPHP]5-Rce

1、ThinkPHP检测工具 https://github.com/anx0ing/thinkphp_scan 漏洞检测 通过漏洞检测&#xff0c;我们发现存在rce漏洞&#xff01; 2、漏洞利用 ---- [!] Name: Thinkphp5 5.0.22/5.1.29 Remote Code Execution VulnerabilityScript: thinkphp5022_5129.pyUrl: http://n…

新春营销不间断,AI 整活更省心

新年、春节历来都是营销的大热节点&#xff0c;各种好物集、年货节、送礼清单比比皆是。这些新鲜玩法的背后是大量的品牌内容「弹药库」。 然而&#xff0c;品牌想在竞争激烈的新春季刷满存在感&#xff0c;并非易事。一方面&#xff0c;节日期间&#xff0c;消费者对于内容的审…

Tensorflow2.0笔记 - where,scatter_nd, meshgrid相关操作

本笔记记录tf.where进行元素位置查找&#xff0c;scatter_nd用于指派元素到tensor的特定位置&#xff0c;meshgrid用作绘图的相关操作。 import tensorflow as tf import numpy as np import matplotlib.pyplot as plttf.__version__#where操作查找元素位置 #输入的tensor是Tr…

【蓝桥杯冲冲冲】动态规划学习 [NOIP2003 提高组] 加分二叉树

【蓝桥杯冲冲冲】动态规划学习 [NOIP2003 提高组] 加分二叉树 蓝桥杯备赛 | 洛谷做题打卡day24 文章目录 蓝桥杯备赛 | 洛谷做题打卡day24[NOIP2003 提高组] 加分二叉树题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示数据规模与约定思路 题解代码我的一些话 [NOI…

Python数据可视化库之holoviews使用详解

概要 数据可视化在各个领域中都起着至关重要的作用&#xff0c;无论是用于数据分析、科学研究、教育还是决策支持。Python作为一门强大的数据科学工具&#xff0c;拥有众多的可视化库。其中&#xff0c;HoloViews是一个备受欢迎的库&#xff0c;它可以轻松创建交互性可视化&am…