【软件测试】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.rhkb.cn/news/342171.html

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

相关文章

zoomeye api报错 request invalid, validate usage and try again

项目场景: 调用zoomeye的api接口进行数据拿取 问题描述 之前接口一直通着今天突然报错,以下为源代码 pip install zoomeye from zoomeye.sdk import ZoomEye zm ZoomEye(api_key"34A8B452-D874-C63E0-8471-F3D4f89766f") zm.dork_search(a…

Unity VR 零基础开发之 Pico4 MR

一、新建Unity2021.3.37 3D工程 二、切换到Android安卓平台 1、点击Unity编辑器左上角的Flie后,选择Build Setting选项。 2、弹出弹窗后,点击Android选项,然后再点击Switch Platform按钮切换成安卓平台。 3、切换完成后Android选项后面会显示…

Linux进程替换 自主shell程序

本篇将要讲解有关进程中最后一个知识点——进程替换,其中主要介绍有关进程替换的六个函数,直接从函数层面来理解进程替换(在使用函数的过程中,也会对进行替换进行解释)。本篇主要围绕如下的进程替换函数: 以…

体验式营销+旅行文化:品牌海外推广的创新之路

在全球化的时代背景下,体验式营销作为一种新兴的营销方式,以其独特的参与性、互动性和情感共鸣,成为品牌与消费者建立深层次联系的有效手段。而将体验式营销与旅行文化相结合,能够为海外消费者提供独特的品牌体验。本文Nox聚星将和…

HTML+CSS+JS 动态登录表单

效果演示 实现了一个登录表单的背景动画效果,包括一个渐变背景、一个输入框和一个登录按钮。背景动画由多个不同大小和颜色的正方形组成,它们在页面上以不同的速度和方向移动。当用户成功登录后,标题会向上移动,表单会消失。 Code <!DOCTYPE html> <html lang=&q…

独著出书的出版流程是怎样的?

独著出书的出版流程一般包括以下几个步骤&#xff1a; 1. 准备书稿&#xff1a;确保书稿内容完整、准确&#xff0c;并符合出版社的要求。 2. 选择出版社&#xff1a;根据书稿的主题和内容&#xff0c;选择合适的出版社。可以考虑出版社的专业性、声誉和出版范围等因素。 3.…

Qt如何让按钮的菜单出现在按钮的右侧

直接上代码&#xff0c;我们用到了一个eventfilter的函数功能。这个函数比较厉害和重要&#xff0c;大家务必经常拿出来看看。 void MainWindow::initMenu() { QMenu* menuLiXiang new QMenu; QAction* actXiangMuZhangCheng new QAction("项目章程"); …

计算机网络学习记录 应用层 Day6

你好,我是Qiuner. 为记录自己编程学习过程和帮助别人少走弯路而写博客 这是我的 github https://github.com/Qiuner ⭐️ ​ gitee https://gitee.com/Qiuner &#x1f339; 如果本篇文章帮到了你 不妨点个赞吧~ 我会很高兴的 &#x1f604; (^ ~ ^) 想看更多 那就点个关注吧 我…

若依前后端分离Spring Security新增手机号登录

备忘贴 转自&#xff1a;【若依RuoYi短信验证码登录】汇总_数据库_z_xiao_qiang-RuoYi 若依 配置Security: 按照Security的流程图可知&#xff0c;实现多种方式登录&#xff0c;只需要重写三个主要的组件&#xff0c;第一个用户认证处理过滤器&#xff0c;第二个用户认证tok…

vue3引入cesium和olcs

首先引入包 pnpm i olcs; pnpm i -D vite-plugin-cesium pnpm i -S cesium在vite.config.js中配置&#xff0c;参考这位大佬的笔记 添加链接描述 import { defineConfig } from vite import vue from vitejs/plugin-vue import cesium from vite-plugin-cesium; // https://…

操作系统入门系列-MIT6.828(操作系统工程)学习笔记(三)---- xv6初探与实验一(Lab: Xv6 and Unix utilities)

系列文章目录 操作系统入门系列-MIT6.S081&#xff08;操作系统&#xff09;学习笔记&#xff08;一&#xff09;---- 操作系统介绍与接口示例 操作系统入门系列-MIT6.828&#xff08;操作系统工程&#xff09;学习笔记&#xff08;二&#xff09;----课程实验环境搭建&#x…

UE5-AI

AI角色 角色控制器 AI角色必须要一个角色控制器 角色控制器最基本只需要执行行为树&#xff0c;在EventOnPossess后runBehaviorTree 如果要的是一个角色&#xff0c;可以创建一个Character&#xff0c;在类默认设置中可以找到 Pawn->AIControllerClass&#xff0c;在这里…

WebGL开发地理信息系统

WebGL开发地理信息系统&#xff08;GIS&#xff09;是一项复杂且具有挑战性的任务&#xff0c;需要解决一系列技术难点。以下是一些主要的技术难点及其可能的解决方案。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1.大规模数据渲染…

PHP序列化、反序列化

目录 一、PHP序列化&#xff1a;serialize() 1.对象序列化 2.pop链序列化 3.数组序列化 二、反序列化&#xff1a;unserialize() 三、魔术方法 ​四、NSSCTF相关简单题目 1.[SWPUCTF 2021 新生赛]ez_unserialize 2.[SWPUCTF 2021 新生赛]no_wakeup 学习参考&#xff1…

数据提取:构建企业智能决策的基石

在数字化时代&#xff0c;数据已成为企业最宝贵的资产之一。而数据提取&#xff0c;作为数据分析和智能决策的第一步&#xff0c;正日益成为企业构建竞争优势的关键环节。本文将探讨数据提取的重要性、方法以及它如何为企业的智能决策奠定坚实基础。 一、数据提取的重要性 洞…

全新市场阶段,Partisia BlockChain 将向 RWA、DeFi 等领域布局

Partisia Blockchain 是一个全新范式的 Layer1&#xff0c;该链通过 MPC 方案来构建链上隐私方案&#xff0c;同时该链通过系列独特且创新的设计&#xff0c;旨在进一步解决目前 Web3 中所面临的不可能三角问题&#xff0c;包括安全性、互操作性和可扩展性&#xff0c;为更多的…

MySQL深分页,limit 100000,10 优化

文章目录 一、limit深分页为什么会变慢二、优化方案2.1 通过子查询优化&#xff08;覆盖索引&#xff09;回顾B树结构覆盖索引把条件转移到主键索引树 2.2 INNER JOIN 延迟关联2.3 标签记录法&#xff08;要求id是有序的&#xff09;2.4 使用between...and... 我们日常做分页需…

拿捏红黑树(C++)

文章目录 前言一、红黑树介绍二、插入操作三、验证红黑树四、红黑树与AVL性能比较与应用五、总体代码总结 前言 我们之前介绍了一种AVL的高阶数据结构&#xff0c;在本篇文章中&#xff0c;我们将会介绍一种与AVL旗鼓相当的数据结构–红黑树。 我们并且会对它的部分接口进行模…

Autoxjs 实践-Spring Boot 集成 WebSocket

概述 最近弄了福袋工具&#xff0c;由于工具运行中&#xff0c;不好查看福袋结果&#xff0c;所以我想将福袋工具运行数据返回到后台&#xff0c;做数据统计、之后工具会越来越多&#xff0c;就弄了个后台&#xff0c;方便管理。 实现效果 WebSocket&#xff1f; websocket是…

动态规划(01背包+并查集)

P1455 搭配购买 题意&#xff1a;就是说有n朵云&#xff0c;每朵云有自己的价钱&#xff08;重量&#xff09;和价值&#xff08;价值&#xff09;&#xff0c;还有我自己现在有钱的数目&#xff08;背包&#xff09;&#xff0c;然后还告诉你&#xff0c;哪几朵云是属于捆绑销…