【软件测试】6.设计测试用例的设计方法

news2024/11/16 21:31:33

目录

1.基于需求的设计方法

2.具体的设计方法

2.1等价类

2.2边界值

2.3正交法

2.4判定表法

2.5场景法

2.6 错误猜测法


1.基于需求的设计方法

基于需求的设计方法也是总的设计测试用例的方法,在工作中,我们需要参考需求文档/产品规格说明书来设计测试用例。

测试人员接到需求之后,要对需求进行分析和验证,从合理的需求中进一步分析细化需求,从细化的需求中找出测试点,根据这些测试点再去设计测试用例。

以该注册邮箱账号需求为例,我们来设计测试用例

1.1 注册账号

1.1.1功能概述。  用户可以通过填写邮箱信息在平台注册个人用户。

1.1.2用户角色。  匿名用户。

1.1.3前置条件。  无。

1.1.4输入

序号栏位名称栏位说明长度类型备注
1姓名必填,录入个人姓名6~15位字符型
2电子邮箱必填,录入电子邮箱字符型
3密码必填,输入的密码隐藏*号显示6~15位字符型
4确认密码必填,输入的密码隐藏*号显示6~15位字符型
5验证码必填,输入验证码字符型
6注册注册操作操作型

1.1.5处理

1.1.5.1基本事件流:通用流程/大多数用户的操作流程/主流程

  1. 用户选择注册。
  2. 系统展现用户协议界面,并请用户确认是否同意用户协议。若用户不同意协议,系统禁止用户注册。若用户同意协议,用户进行信息注册。
  3. 用户填写注册信息。 注册个人,填写;姓名,电子邮箱,密码,确认密码,验证码。
  4. 用户提交注册信息。
  5. 系统提示用户并向用户注册的电子邮件地址发送一封含有激活信息的电子邮件。系统并提示用户,若未收到激活邮件,可以使用注册的邮箱和密码登录系统后再次发送激活邮件。
  6. 用户可执行激活操作,直接跳转到注册邮箱用户界面。
  7. 用户通过接收到的电子邮件中的激活信息激活账号,用户注册完成,流程结束。

1.1.5.2扩展事件流    用户注册并激活成功后,第一次登录平台时,提示用户完善信息。

1.1.5.3异常事件流    若用户未收到激活邮件,可在登陆界面录入电子邮件及密码后,再次发送激活邮件。每次发送激活邮件,仅在发送邮件后24小时之内有效,超过24小时后需要重新发送激活邮件。

1.1.6 输出。  用户注册成功。

1.1.7后置条件。  该模块为用户登录等的前置模块。

1.明确需求中的功能点。 账号注册,账号登录。

2.结合万能公式设计测试点。

根据需求文档设计初步的测试用例,而部分的用例还需要细化。

2.具体的设计方法

2.1等价类

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

穷举法:无法借助该测试方法来进行测试。

等价类主要分为:

有效等价类:对于程序的规格说明说是合理的、有意义的输入数据构成的集合,利用有效等价类验证程序是否实现了规格说明中所规定的功能和性能。

无效等价类:根据规格说明书,不满足需求的集合。

根据等价类来设计测试用例的方式:

1.确定有效等价类和无效等价类。

2.编写测试用例,设计具体测试数据。

练习:根据学到的边界值将上述为完成的用例进行完善。

缺点:等价类只考虑输入域的分类,没有考虑输入域的组合,需要其他的设计方法和补充。

2.2边界值

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

边界值包含:边界值+次边界值。

边界值即给定返回的左数据和右数据。

选择次边界值的时候需要根据边界值的情况来定:(1)若边界值为有效等价类中的数距,则次边界值为无效等价类中的边界(2)若边界值为无效等价类中的数据,则次边界值为有效等价类中的边界。

继续将上述用例通过边界值来补充完整。

2.3正交法

正交法的目的是为了减少用例数目。用尽量少的用例覆盖输入的两两组合。

正交试验设计是研究多因素多水平的一种设计方法,它是根据正交性,由试验因素的全部水平组合中挑选组合中挑选出部分有代表性的点进行试验,通过对这部分试验结果的分析了解全面试验的情况,找出最优的水平组合。正交试验设计是一种正交表的、高效率、快速、经济的试验。

正交表:

如图是最简单的正交表是L(4)(2(3)),含义如下:“L”代表正交表;L下角的数字“4”表示有4横行,简称行,即要做四次试验;括号内的指数“3”表示有3纵列,简称列,即最多允许安排的因素是3个;括号内的数“2”表示表的主要部分只有2中数字,即因素有两种水平1和2。

正交表的构成:因素数,水平数,行数。

因素:对指标的影响条件,通常是正交表中的一列。

水平:因素对应的可选项

正交表的性质:

  • 每一列中,不同的数字出现的次数相等。
  • 任意两列中数字的排列方式齐全而且均衡。
2.4判定表法

通过具体的方法能够将测试用例设计的更加完整和规范。

需求中会存在各种各样的场景,现在我们把需求改成如下的要求:

用户输入的账号中包含admin字符,或者通过内部连接进入注册页面,提交注册按钮称为管理员身份,反正无管理员身份。

通过这个需求可以看出,不同的组合操作可能对应不同的结果。采用正交法无法解决这样的问题问题。而正交法能够解决需要考虑输入之间的组合关系对应不同场景的结果。

判定法这个需求可以看出,不同的组合操作可能对应不同的结果。采用正交法无法解决这样的问题。而正交法能够解决需要考虑输入之间的组合关系对应不同结果的场景。

判定表是一种表达逻辑判断的工具,形如:

通过该图,可以把所有条件对应的结果清晰的表达出来。我们就需要借助该表来清晰的写出测试用例。

根据判定表法设计测试用例的步骤:

  1. 确认需求中输入条件和输出条件。
  2. 找出输入条件和输出条件之间的关系。
  3. 画判定法。
  4. 根据判定法编写测试用例。

 确认了步骤后,我们使用判定法表进一步对上述需求进行测试用例的设计:

1.确认需求中输入条件和输出条件

输入条件:账号包含admin字符(a)、内部注册链接(b)、点击注册按钮(c)

输出条件:管理员(1)、无管理员(2)

2.找出输入条件和输出条件之间的关系。

1 输入条件:ac ab abc a b c 非abc

2 对应结果:1   2    1    2 2 2   2

画判定表

根据判定表编写测试⽤例
a. 账号包含admin,⾮内部注册链接,点击注册按钮,为管理员⾝份
b. 账号包含admin,内部注册链接,不点击注册按钮,⾮管理员⾝份
c. 账号不包含admin,内部注册链接,点击注册按钮,为管理员⾝份
d. 账号包含admin,内部注册链接,点击注册按钮,为管理员⾝份
e. 账号包含admin,⾮内部注册链接,不点击注册按钮,⾮管理员⾝份
f. 账号不包含admin,⾮内部注册链接,点击注册按钮,⾮管理员⾝份
g. 账号不包含admin,⾮内部注册链接,不点击注册按钮,⾮管理员⾝份
2.5场景法

运用场景来对系统的功能点或业务流程的描述,从而提高测试效果的一种方法。用例场景来测试需求是指虚拟特定场景发生的事情,通过事件来触发某个动作的发生,观察事件的最终结果,从而用来发现需求中存在的问题。

场景法一般包含基本流和备用流,从一个流程开始,通过描述经过的路径来确定的过程,经过遍历所有的基本流和备用流来完成整个场景。

场景主要包含4种类型:正常的用例场景,备选的用例场景,异常的用例场景,假定推测的场景。

                                      备选流                   基本流                       异常流

案例:

根据场景法设计测试用例的步骤:

  1. 确认基本流。
  2. 确定备选流。
  3. 根据备选流补充测试用例。
  4. 编写测试用例。

编写测试用例:

  1. 输入正确的账号密码,点击注册后系统发出确认邮件并在24小时之内确认,注册成功。
  2. 不输入账号密码,点击注册,提示重新输入。
  3. 只输入账号,不输入密码,点击注册,提示重新输入。
  4. ……
2.6 错误猜测法

这个方法强调的是对被测试软件的需求理解以及设计实现的细节把握,还有个人经验和直觉。

这个方法的缺点是难以系统化,并且过度依赖于个人能力。

案例:

以注册为例:

  1. 校验中特殊字符空格的处理?
  2. 密码校验中的大小写?
  3. 姓名中的特殊字符?
  4. 密码发送是否明文?

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

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

相关文章

【AI大模型】Function Calling

目录 什么是Function Calling 示例 1:调用本地函数 Function Calling 的注意事项 支持 Function Calling 的国产大模型 百度文心大模型 MiniMax ChatGLM3-6B 讯飞星火 3.0 通义千问 几条经验总结 什么是Function Calling Function Calling 是一种函数调用机…

【游戏】Goc赚钱模拟器1.0版

Hello!大家好,我是学霸小羊,今天分享一个Goc游戏。 //注:以下代码为Goc原创代码。 大家可以在下面网址写入代码www.51goc.com慧通教育http://www.51goc.com注:Goc编辑器路径: www.51goc.com ➡ 登录 ➡ 游客登陆 ➡…

【OpenHarmony】ArkTS 语法基础 ⑤ ( ArkTS 状态管理 | @State 装饰器定义状态数据 | 使用状态数据渲染组件 )

文章目录 一、ArkTS 状态管理 - State 装饰器1、State 装饰器定义状态数据2、State 装饰器定义状态数据 - 示例分析3、使用 State 装饰器定义的状态数据渲染组件 - 示例分析 二、完整代码示例1、完整自定义组件代码示例2、展示效果 参考文档 : <HarmonyOS第一课>ArkTS开发…

实验七、创建小型实验拓扑《计算机网络》

早检到底是谁发明出来的。 一、实验目的 完成本实验后&#xff0c;您将能够&#xff1a; • 设计逻辑网络。 • 配置物理实验拓扑。 • 配置 LAN 逻辑拓扑。 • 验证 LAN 连通性。 二、实验任务 在本实验中&#xff0c;将要求您连接网络设备并配置主机实现基本的网络…

【Python】 深入理解Pandas中的iloc和loc:数据选择的艺术

基本原理 在Python的Pandas库中&#xff0c;数据选择是数据分析和处理的基础。iloc和loc是两种常用的数据选择方法&#xff0c;它们都允许用户根据索引位置或标签来选择数据。然而&#xff0c;它们在行为和用途上存在一些关键的差异。 iloc iloc是基于整数索引的&#xff0c…

微信小程序多端框架打包后发布到华为市场

app上架华为应用市场 一、android 发布到华为应用市场 1、华为应用市场注册开发者账号 https://developer.huawei.com/consumer/cn/?ha_sourcesem&ha_sourceId89000605 2、进行企业认证 3、app隐私弹窗 miniapp-privacy.json 1、协议弹窗内容&#xff1a; {"tit…

基于python的网上挂号预约系统-计算机毕业设计源码89352

摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;医院当然也不例外。网上挂号预约系统是以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff0c;采用Py…

华为坤灵管理型交换机S300,S500,S310,S210,S220,S200 web端开局配置

一. 准备线缆 1.笔记本或没有COM口的电脑,需准备转接线,并安装好随线光盘的驱动,检查设备管理器中COM口是否正常 【GKREN】console调试线适用于华为h3c思科交换机usb转RJ45/RS232 2.连接电脑与交换机的CONSOLE口 二.准备软件putty。 Download PuTTY: latest release (0.81) …

Linux中Apache网站基于Http服务的访问限制(基于地址/用户)

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f468;‍&#x1f4bb;Linux高级管理专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年6月3日11点44分 &#x1f004;️文章质量&#xff1a;95分 为了更好地控制对网站资源的访问&#xff0c;可…

cmake使用(01)

顶层CMakeLists.txt cmake_minimum_required (VERSION 3.5)# 配置 交叉编译 放置在 project() 命令之前# /opt/fslc-wayland/2.5.2/sysroots/aarch64-fslc-linux/usr/bin/make: error # while loading shared libraries: libdl.so.2: cannot open shared object file: # No su…

spring boot3登录开发-2(3邮件验证码接口实现)

⛰️个人主页: 蒾酒 &#x1f525;系列专栏&#xff1a;《spring boot实战》 目录 写在前面 上文衔接 接口设计与实现 1.接口分析 2.实现思路 3.代码实现 1.定义验证码短信HTML模板枚举类 2.定义验证码业务接口 3. 验证码业务接口实现 4.控制层代码 4.测试 写…

用 Axios 封装一个双 token 无感刷新

为什么要用双Token无感刷新&#xff0c;它解决了什么问题&#xff1f; 为了保证安全性&#xff0c;后端设置的Token不可能长期有效&#xff0c;过了一段时间Token就会失效。而发送网络请求的过程又是需要携带Token的&#xff0c;一旦Token失效&#xff0c;用户就要重新登陆&…

Nginx 功能简介及代理配置

一、Nginx功能简介 Nginx是一款开源的高性能HTTP和反向代理服务器&#xff0c;具有轻量级的设计、高并发能力、内存占用低以及配置简单等特点&#xff0c;并且支持热部署。以下是Nginx的主要功能&#xff1a; 静态内容服务&#xff1a;Nginx可以作为一个高性能的静态文件服务…

笔记 | 软件工程01:从程序到软件

1 软件工程知识域 2 程序 2.1 何为程序及程序的质量要求 何为程序&#xff1a; 理解&#xff1a;软件工程可能就是在弥补OOP语言与自然语言之间还存在的鸿沟 2.1.1 程序质量的内在和外在体现 2.1.2 程序质量的语法和语义体现 2.2 编写代码的基本原则 2.3 程序质量保证方法 …

软件三班20240605

文章目录 1.创建工程和模块2.添加 web支持3.创建前端代码4.添加servlet 依赖5. 代码6.案例2 1.创建工程和模块 2.添加 web支持 方法1 方法2 3.创建前端代码 4.添加servlet 依赖 5. 代码 <!DOCTYPE html> <html lang"en"> <head><meta c…

xml创建模型组合体

XML创建模型组合体 创建步骤模型准备模型处理模型文件XML编写 效果 创建步骤 模型准备 CAD 提供的原始模型如下&#xff1a; 该模型存在的问题&#xff1a; 单位问题&#xff1a;CAD出图的是 mm 为单位&#xff0c;但是 mujoco 建模这边用的是以 m 为单位的&#xff1b;原点…

arcpy批量导出图且图名为shp属性值

1.打开arcmap加载需要导出的图。需求是逐村显示“村界内图斑”并导出为图&#xff0c;在导出每个村时不显示周围的村和“村界内图斑” 2.arcmap上方空白处右键打开“数据驱动页面” 3.在“数据驱动页面”工具条点击第一个图标&#xff0c;打开“设置数据驱动页面” 4.在“设置…

关于Golang中自定义包的简单使用-Go Mod

1. go env 查看 GO111MODULE 是否为 on&#xff0c;不是修改成on go env -w GO111MODULEon 2 .自定义包的目录格式 3. test.go 内容 package calc func Add(x, y int) int { // 首字母大写表示公有方法return x y }func Sub(x, y int) int {return x - y } 4.生成calc目…

idea 中:运行 Application 时出错。命令行过长

一、问题描述&#xff1a; idea 导入新项目&#xff0c;在编译后&#xff0c;运行项目时&#xff0c;报以下错误&#xff1a; 14:47 运行 Application 时出错运行 Application 时出错。命令行过长。通过 JAR 清单或通过类路径文件缩短命令行&#xff0c;然后重新运行。二、问题…