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

目录

一. 测试用例的基本要素  

二. 测试用例的设计方法

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,一经查实,立即删除!

相关文章

Linux resin自动启动设置

1、添加启动脚本 在 /etc/init.d 添加启动脚本 vi resin #!/bin/sh #chkconfig:345 99 10 #description:auto start resin #/etc/init.d/resin export export JAVA_HOME/usr/weaver/jdk1.8.0_151 export CLASSPATH$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib exp…

Promise

Promise 什么是Promise Promise是一种异步编程的解决方案&#xff0c;可以避免回调地狱&#xff0c;使得异步操作更加简单、清晰、灵活。 为什么使用Promise function request(cb) {// 模拟网络请求let flag Math.random() < 0.5 ? true : falsesetTimeout(() > {c…

利用脚本将代码部署到测试环境(.sh)

1.将上次的部署文件备份名为xxx_bak 2.首次需要输入环境密码 3.并生成一个zip的压缩包,方便部署到线上环境 4.在终端 输入./update.sh 则可执行 文件名update.sh,放在package.json文件同级 # example: 1. ./update.sh 2. 输入服务器密码 【 如果不想每次都输入密码可以先生…

《零基础入门学习Python》第046讲:魔法方法:描述符(Property的原理)

0. 请写下这一节课你学习到的内容&#xff1a;格式不限&#xff0c;回忆并复述是加强记忆的好方式&#xff01; 常言道&#xff1a;“无规矩不成方圆”&#xff0c;讲的是万事万物的发展都要在一定的规则下去运行&#xff0c;只有遵循一定的协议去做&#xff0c;事情才能够按照…

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

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

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

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

PWM呼吸灯+流水灯设计

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

数据结构初阶--排序2

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

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;然后在修改

算法篇--两数之和,梦开始的地方

目录 1.概念&#xff1a;2.两数之和&#xff08;1&#xff09;.暴力破解法&#xff08;2&#xff09;.使用哈希表 3.区别 1.概念&#xff1a; 非形式地说&#xff0c;算法(algorithm)就是任何良定义的计算过程&#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…

Anaconda镜像源

Anaconda镜像源 清华镜像源阿里云镜像源中科大镜像源北大镜像源其他镜像源 清华镜像源 https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/ # 清华大学Anaconda镜像使用帮助 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ # Anaconda安装包下载 https://mirro…

【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…

MongoDB(MongoTemplate和MongoRepository)对比

目录 MongoTemplateMongoRepository MongoTemplate //条件查询GetMapping("findUser")public void findUserList() {Query query new Query(Criteria.where("name").is("zhang3").and("age").is(33));List<User> users mongoT…

gitbash2.41安装教程——2023.07

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

Hive基本操作

基本概念 Hive是基于Hadoop的一个【数据仓库工具】&#xff0c;可以将结构化和半结构化的数据文件映射为一张数据库表&#xff0c;并提供简单的sql查询功能。 介绍 Hive本质是将SQL转换为MapReduce的任务进行运算&#xff0c;底层由HDFS来提供数据存储&#xff0c;简单来说H…