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

目录

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.mzph.cn/diannao/21212.shtml

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

相关文章

MySQL—函数(介绍)—字符串函数(基础)

一、引言 提到函数,在SQL分类中DQL语句中有一个聚合函数,如COUNT()、SUM()、MAX()等等。这些都是一些常见的聚合函数,而聚合函数只是函数的一种,接下来会详细的学习和介绍一下函数的应用场景和以及 mysql 当中文件的函数有哪些。 …

(ISPRS,2023)RS-CLIP: 基于对比视觉-语言监督的zero-shot遥感场景分类

文章目录 相关资料摘要引言方法CLIP回顾伪标签生成课程学习策略 实验数据集不同文本提示失败案例分析课程学习zero-shot分类 相关资料 论文:RS-CLIP: Zero shot remote sensing scene classification via contrastive vision-language supervision 摘要 零样本遥…

【GeoServer系列】——安装与发布shapefile数据

GeoServer是一个基于java的服务器,它允许用户查看和编辑地理空间数据。使用OGC制定的开放标准,GeoServer在地图创建和数据共享方面具有极大的灵活性。 功能概述: Open and Share Your Spatial Data GeoServer允许您向世界显示您的空间信息。G…

【STL】C++ queue队列(包含优先级队列) 基本使用

目录 一 queue 1 常见构造 1 空容器构造函数 2. 使用指定容器构造 3 拷贝构造函数 2 empty 3 size 4 front && back 5 push && pop 6 emplace 7 swap 二 优先级队列( priority_queue) 1 常见构造 2 其他操作 3 大堆和小堆 1. 大小堆切换 2 自…

scGPT实验解读

本篇内容为发表在Nature Methods上的scGPT的部分实验内容 来自:scGPT: toward building a foundation model for single-cell multi-omics using generative AI, Nature Methods, 2024 目录 scGPT揭示特定细胞状态的基因网络缩放法则和迁移学习中的上下文效应 scGP…

寄存器、缓存、内存(虚拟、物理地址)、DDR、RAM的关系

寄存器、缓存、内存、DDR、RAM的关系 1. 主要概念内部存储器:2.1 寄存器,register2.2 主存储器,内存,memory2.3 缓存,高速缓冲存储器,cache 外部存储器2.4 快闪存储器,闪存,flash Me…

AI图书推荐:使用GPT-4和ChatGPT开发AI应用APP

这本书是面向想要学习如何使用大型语言模型构建应用程序的 Python 开发人员的全面指南。作者 Olivier Caelen 和 Marie-Alice Blete 涵盖了 GPT-4 和 ChatGPT 的主要特征和好处,并解释了它们的工作原理。您还将获得使用 GPT-4 和 ChatGPT Python 库开发应用程序的逐…

多台相同IP产品如何组网?

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…

Unity协程详解

什么是协程 协程,即Coroutine(协同程序),就是开启一段和主程序异步执行的逻辑处理,什么是异步执行,异步执行是指程序的执行并不是按照从上往下执行。如果我们学过c语言,我们应该知道&#xff0…

【零基础AI】Windows下最易懂的Cuda+cudnn+PyTorch配置教程

【零基础AI】最易懂的Windows下CUDAcuDNNPyTorch配置教程 本文面向零基础的AI初学者以及迁移DL开发环境的相关人员,旨在通过最直观、最简洁的一条龙式图文配置教程,最大程度地降低学习门槛与迁移环境的成本。在配置工作开始之前,请务必检查确…

U-boot、linux内核、根文件系统移植以及程序

终于这几天把这个移植的流程过了一遍,所以特此回来总结。 U-boot移植 首先是U-boot移植。Linux 系统要启动就必须需要一个 bootloader 程序,也就说芯片上电以后先运行一段bootloader 程序。这段bootloader程序会先初始化DDR等外设,然后将Li…

算法-堆结构和堆排序

文章目录 本节大纲1. 堆结构2. 堆排序本节的代码实现合集 本节大纲 1. 堆结构 堆结构是为集合类里面的优先级队列来服务的 优先级队列其实就是顺序存储的二叉树结构, 我们的底层的源码里面是没有链式存储的二叉树的,二叉树的实现的细节是通过我们的数组来模拟实现的 底层的实现…

TFTP服务器

软件,客户端,服务器。是简单的文件传输文件。 1.TFTP服务器介绍 是简单的文件传输协议,是tcp/IP协议的一个用来在客户端与服务器之间进行简单文件传输的协议。端口号为69。每个服务器都有自己都端口号。 2.TFTP文件传输特点 3. 二:TFTP环境…

c++异常处理exception

// c中的异常处理 // 1.throw : 专门用于抛出异常,做出提示 // 2.try : 尝试运行可能会异常的代码 // 3.catch : 用于接收前面跑出来的异常并进行解决// 执行循序为: // try // { // throw ...; // 执行的代码中必须直接或者…

VRTK4教程 二:基本追踪

文章目录 untiyXR和UnityXRPluginFramwork使用方法: TrackedAlias使用方法使用技巧 untiyXR和UnityXRPluginFramwork 这两个用于跟踪头盔位置,其中UnityXR使用的是旧版API,另一个是新版API,两个我我们选一个即可 使用方法&#…

6.3 Go 结构体(Struct)

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

【计算机毕设】SpringBoot校园资料分享平台的设计与实现 - 源码免费(私信领取)

免费领取源码 | 项目完整可运行 | v:chengn7890 诚招源码校园代理! 1. 研究目的 本项目旨在设计并实现一个基于SpringBoot的校园资料分享平台,以满足学生在学习过程中对资料分享和获取的需求。具体目标包括&#xff1a…

Java学习笔记 集合的使用

在实际的项目中开发过程中,会有很多的对象,如何高效、方便的管理这些对象,是影响程序性能与可维护性的重要环节。在Java语言中为这个问题提供了一套完美的解决方案,也就是接下来要介绍的集合框架。 1.1 集合框架的结构 从Collect…

都说美国去工业化了,那美国人都做什么工作啊?

美国,这个全球经济的重要参与者,经历了一场深刻的变革——去工业化。这一过程意味着,曾经以制造业为荣的美国,逐渐将重心转移到了其他领域。那么,美国人都做什么工作呢?让我们走近这位“经济体巨人”&#…

MySql 查询缓存

前言 MySQL的查询缓存(Query Cache)是一个在内存中存储SELECT语句及其结果集的机制,目的是避免对相同的查询进行重复的解析、编译和执行,从而提高数据库性能。 Mysql 结构图如下: 查询缓存的工作流程大致如下&#…