【测试开发】测试用例的设计方法

目录

一. 测试用例的基本要素  

二. 测试用例的设计方法

1. 测试用例设计的万能公式

水杯测试用例

 2. 基于需求的设计方法

邮箱注册测试用例 

 3. 等价类方法

有效等价类和无效等价类

 等价类思想设计测试用例步骤

 4. 边界值方法

边界值思想设计测试用例步骤

 5. 判定表方法

判定表思想设计测试用例步骤 

6. 正交表法

正交表思想设计测试用例步骤 

7. 场景设计法 


在熟悉了测试的流程后,就可以开始来设计测试用例了。

一. 测试用例的基本要素  

测试用例可以提高测试效率,节省测试时间;测试用例也是进行自动化测试的前提;

测试用例的基本要素主要包括:测试环境,测试数据,操作步骤,预期结果等。 

应注意:测试用例的基本要素不包括执行结果,因为执行结果是需要执行完测试用例才能知道的,没有测试用例,自然就还没有执行结果。 

二. 测试用例的设计方法

1. 测试用例设计的万能公式

可以主要围绕以下几个方面来进行:功能,性能,界面,易用,兼容,安全,网络,中断等;

功能

物体方面:主要描述这个物体可以干什么;

软件方面:主要描述软件实现的功能特性,拿着软件可以实现什么操作;

性能

物体方面:可以描述物体的使用寿命;

软件方面:可以描述软件的响应时间,并发数,CPU占用率等; 

界面

物体方面:可以描述物体的外表,材质,大小,容量等;

软件方面: 软件的界面,字体大小颜色,页面的整体布局;

易用

物体方面:可以从人性化的方面去思考,例如杯子的把柄易于我们放取;

软件方面:操作简单,使用流畅;

兼容

物体方面:考虑物体除了本质的功能外,还有什么其他的功能;

软件方面: 可以考虑软件兼容 操作系统的不同版本,设备的不同型号,浏览器的不同版本。

安全

物体方面:考虑物体的材质是否有毒,会不会对人体健康造成损害;

软件方面:考虑到软件是否有信息泄露,漏洞出现,是否有有毒脚本入侵,以及密码是否有加密保存,加密传输,还有对于权限的控制,sql注入等;

网络

主要考虑软件:是否适用于 2G~5G,弱网,WiFi; 

水杯测试用例

此处根据万能公式对于 水杯 做出一个测试用例: 

 2. 基于需求的设计方法

基于需求设计测试用例是测试设计和开发测试用例的基础,第一步就要分析测试需求, 在分析测试需求时,一般分为功能测试需求和非功能测试需求 验证需求是否正确、完整。在需求正确的基础上细化测试需求,从测试需求提炼出一个个测 试点或者测试项,然后根据每一个测试点进行测试用例的设计
整体过程就是:需求文档 -> 掌握需求 -> 基于需求设计测试用例;
而基于需求的设计方法,是一种头脑风暴式的,只针对需求来分析,对产品进行一个大概的测试用例的设计。还不够全面,因此就需要到后面一些具体的设计测试用例的方法。

邮箱注册测试用例 

此处以 邮箱注册 为例,写一个基于需求的测试用例设计方法:

 3. 等价类方法

依据需求将输入划分为若干个等价类,从等价类中选出一个测试用例,如果这个测试用例测试通过,则认为所代表的等价类测试通过,这样就可以用较少的测试用例达到尽量多的功能覆盖,解决了不能穷举测试的问题。

有效等价类无效等价类

有效等价类:

对于程序的规格说明书是合理的、有意义的输入数据构成的集合,利用有效等价类验证程序是否实现了规格说明中所规定的功能和性能;简单而言:就是满足用户需求输入的集合;

无效等价类: 

根据需求说明书,不满足用户需求的输入集合;

例如以下这种情况:6~15位的用户名就属于有效等价类,小于6位和大于15位的就属于无效等价类

 等价类思想设计测试用例步骤

1. 充分理解需求;

2. 划分有效等价类和无效等价类;

3. 从有效等价类中抽取一个数据进行设计测试用例,从无效等价类中抽取一个数据进行设计测试用例;

 4. 边界值方法

边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。

一般会涉及到三个点:

上点:边界上的点;

内点:边界内的点;

离点:边界值附近的一个点(闭区间区间外距离上点最近的一个点,开区间区间内距离上点最近的点) 

边界值思想设计测试用例步骤

1. 充分理解需求;

2. 找边界点;

3. 针对边界点设计测试用例; 

 5. 判定表方法

 判定表是一种表达逻辑判断的工具,可以把判定表对应到每一个测试用例;

 其中的关系包括:与或非,恒等(条件为真,结果一定为真);

判定表思想设计测试用例步骤 

1. 分析所有可能的输入和可能的输出;

2. 找出输入和输出之间的对应关系;

3. 设计判定表;

4. 把判定表对应到每一个测试用例; 

例如:"淘宝618活动中,订单已提交,订单合计金额大于300元或有红包的,就有优惠"

输入:订单已提交,订单金额大于300;有红包 ;输出:优惠,不优惠;

设计判定表: 

6. 正交表法

在使用前面的判定表设计测试用例,如果输入条件比较多,此时来写测试用例就会很容易出现差错。因此正交表就是用尽可能少的用例来去覆盖尽可能多的场景。

名词:

   因素:此处需求的输入变量;

   水平:变量的取值;

性质:

1. 每一列中,各个数字出现的次数一样多;

2. 任何两列中的各有序数对出现的次数都一样多;例如:

 

正交表思想设计测试用例步骤 

1. 充分理解需求;

2. 确认因素和水平;

3. 作出正交表;

4. 将正交表转换为测试用例;

5. (有时候正交表转换的测试用例不一定完整,还需要加以补充);

此处以注册为例进行讲解:姓名,邮箱,密码,确认密码,验证码必须全部输入,才能进行注册。

因素:姓名,邮箱,密码,确认密码,验证码;  水平:填写,不填写;

此处借助 allpairs 画正交表:

1. 先画出表格,将水平和因素填写入表格中,并复制到 txt 文件中:

 2. 将文件放置与 allpair.exe 相同路径下:

3. 进入cmd中,进入该路径中,执行命令:allpairs.exe 文件名 > 生成文件名

 4. 执行完后,就会得到对应的 111_result.txt 文件,文件中就有了正交表:

正交表中的 ~填写 表示这个值可以是填写也可以是不填写。

使用allpairs生成的内容,有时候不一定完整。因此还需要补充一些其他的测试用例,例如上述的正交表中,就没有一种情况是:都不填写的,所以就应该补充进去。此时一个横行就可以是一个测试用例,然后,根据这些测试用例进行测试。

allpairs的安装路径:Allpairs - Satisfice, Inc. 

7. 场景设计法 

相当于是使用一个软件的时候,对应的一个流程。

主要有两个概念:

主事件流:可以理解为用户正常使用的一些场景;

次事件流:可以理解为用户使用时出现的异常场景;

类比于 ATM取款 的场景: 

将每个事件串起来也就形成了一个场景,也就是一个测试用例;

通常情况下,需要把用户经常用到的功能模块串联到一起进行测试;

 

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

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

相关文章

k8s1.18.20:cert-manager 1.8 安装部署

cert-manager 安装部署 一、官网安装文档 https://cert-manager.io/docs/installation/ 1.1、简介 cert-manager 在 Kubernetes 集群中增加了证书 (certificates) 和证书颁发者 (certificate issuers) 作为资源类型,并简化了获取、更新和应用这些证书的过程。 …

基于 Orbit 的云原生应用交付基础原则与良好实践

点击官网了解详情 本文作者:何文强——腾讯云 CODING 高级架构师。 负责 CODING DevOps产品解决方案架构设计和技术产品布道以及 CODING 云原生技术研究与落地实践。在多个技术大会担任演讲嘉宾,腾讯云 CODING DevOps 课程认证出品人,腾讯云云…

PWM呼吸灯+流水灯设计

完成任务: 在流水灯基础上加入pwm呼吸灯设计,关于pwm呼吸灯设计可以看博主上一篇博客PWM呼吸灯设计 ,开发板上灯每两秒进行一次切换,每一个的亮灭间隔为一秒。 代码参考: module pwm_led_change(input wire …

数据结构初阶--排序2

目录 前言快速排序思路hoare版本代码实现挖坑法代码实现前后指针法代码实现 快排优化三项取中法代码实现三指针代码实现 快排非递归代码实现 归并排序思路代码实现归并非递归代码实现 计数排序思路代码实现 前言 本篇文章将继续介绍快排,归并等排序算法以及其变式。…

antd-React Table 中文转化

1.首先需要进行中文包导入 2.引入标签对Table进行包裹即可 import zh_CN from antd/lib/locale-provider/zh_CN;import {ConfigProvider} from antd;<ConfigProvider locale{zh_CN}><Tablecolumns{columns}rowKey{record > record.id}dataSource{data}pagination{p…

【ArcGIS】shp导入报错ORA-00911无效字符

这个当个问题记录以下&#xff0c;就是shp文件名或者字段名有非正常字符&#xff0c;修改下名称重新导入即可&#xff1b; 直接改shp没法修改字段&#xff0c;会报错&#xff0c;需要先转化为gdb文件&#xff0c;然后在修改

el-table组件插槽“slot-scope”

目录 一、代码展示 二、返回的数组对象不含value或者ispass&#xff0c;不会报错 三、插槽里面放的是要手动输入的值时 一、代码展示 <el-table v-loading"loading" :data"checklistList" selection-change"handleSelectionChange"><…

OV7670摄像头模块的使用

OV7670摄像头模块介绍 OV7670 CAMERACHIPTM 图像传感器&#xff0c;体积小、 工作电压低&#xff0c;提供单片 VGA 摄像头和影像处理器的所有功能。通过 SCCB 总线控制&#xff0c;可以输出整帧、子采样、取窗口等方式的各种分辨率 8 位影响数据。该产 品 VGA 图像最高达到 30…

【Linux】内存使用相关

free 命令 查看内存大小 free -g :G单位 free -h : 可读性较高较理解 free -m : MB单位 total: 总内存used: 正在运行的进程使用的内存(used total – free – buff/cache)free: 未使用的内存 (free total – used – buff/cache)shared: 多个进程共享的内存buffers: 内存保留…

面试题更新之-伪元素和伪类

文章目录 伪元素和伪类是什么&#xff1f;伪元素&#xff08;Pseudo-elements&#xff09;:伪类&#xff08;Pseudo-classes&#xff09;: css伪元素和伪类的区别使用css伪元素的好处使用css伪类的好处 伪元素和伪类是什么&#xff1f; 在CSS中&#xff0c;伪元素&#xff08;…

xpath下载安装——Python爬虫xpath插件下载安装(2023.7亲测可用!!)

目录 1.免费下载插件链接&#xff08;若失效评论区留言发送最新链接&#xff09;&#xff08;2023.7亲测可用&#xff09; 2.安装插件 &#xff08;1&#xff09;打开chrome浏览器页面&#xff0c;点击&#xff1a;右上角三个点 > 扩展程序 > 管理拓展程序 &#xff…

gitbash2.41安装教程——2023.07

文章目录 1、下载安装包2、安装 1、下载安装包 进入官网下载&#xff0c;官网链接 上面有多种系统可以选择&#xff0c;我是windows&#xff0c;点击windows进行下载 这里可以直接下载最新版本的git 2.41.0 64位。 下载可能有点慢&#xff0c;耐心等待。 2、安装 下载完…

JVM——类加载和垃圾回收

目录 前言 JVM简介 JVM内存区域划分 JVM的类加载机制 1.加载 双亲委派模型 2.验证 验证选项 3.准备 4.解析 5.初始化 触发类加载 JVM的垃圾回收策略 GC 一&#xff1a;找 谁是垃圾 1.引用计数 2.可达性分析 &#xff08;这个方案是Java采取的方案&#x…

基于单片机智能台灯坐姿矫正器视力保护器的设计与实现

功能介绍 以51单片机作为主控系统&#xff1b;LCD1602液晶显示当前当前光线强度、台灯灯光强度、当前时间、坐姿距离等&#xff1b;按键设置当前时间&#xff0c;闹钟、提醒时间、坐姿最小距离&#xff1b;通过超声波检测坐姿&#xff0c;当坐姿不正容易对眼睛和身体腰部等造成…

MySQL索引详解

索引 在MySQL中&#xff0c;查询方式可以根据访问表数据的方式分为两种&#xff1a;全表扫描和使用索引。 全表扫描&#xff08;Full Table Scan&#xff09;&#xff1a; 全表扫描是指在查询过程中&#xff0c;MySQL会遍历整个表的每一行来检查满足查询条件的数据。当查询条件…

Ubuntu下安装、配置及重装CUDA教程

安装CUDA 前往Nvidia CUDA Tools官网选择对应的架构和版本下载CUDA 以如下架构和版本为例&#xff1a; 查看显卡驱动 nvidia-smi如果显卡驱动已经装了&#xff0c;那么在CUDA安装过程中不用再勾选安装driver 下载并安装CUDA wget https://developer.download.nvidia.co…

Spring AOP

目录 AOP 理解AOP AOP组成 AOP的优点 Spring AOP 使用Spring AOP 定义切面和切点 定义通知 动态代理 织入 AOP 理解AOP AOP即面向切面编程&#xff0c;简单来说&#xff0c;就是把一部分通用的功能集中的放在一个地方处理的思想。假如某一段代码很多地方要用到&…

创建型模式 - 建造者模式

概述 将一个复杂对象的构建与表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。 分离了部件的构造(由Builder来负责)和装配(由Director负责)。 从而可以构造出复杂的对象。这个模式适用于&#xff1a;某个对象的构建过程复杂的情况。 由于实现了构建和装配的解耦。…

pytest 参数化进阶

目录 前言&#xff1a; 语法 参数化误区 实践 简要回顾 前言&#xff1a; pytest是一个功能强大的Python测试框架&#xff0c;它提供了参数化功能&#xff0c;可以帮助简化测试用例的编写和管理。 语法 本文就赶紧聊一聊 pytest 的参数化是怎么玩的。 pytest.mark.par…

openGauss学习笔记-13 openGauss 简单数据管理-DELETE语句

文章目录 openGauss学习笔记-13 openGauss 简单数据管理-DELETE语句13.1 语法格式13.2 参数说明13.3 示例 openGauss学习笔记-13 openGauss 简单数据管理-DELETE语句 DELETE语句可以从指定的表里删除满足WHERE子句的行。如果WHERE子句不存在&#xff0c;将删除表中所有行&…