如何设计一个测试用例

news2025/3/11 2:26:52

  前言👀~

上一章我们介绍了什么是软件测试以及软件测试的一些基础概念,今天来聊聊如何设计一个测试用例,涉及到黑盒测试的测试方法

基于需求进行测试用例的设计

基于需求的具体设计方法

等价类

边界值

判定表法

正交表法

场景设计法

错误猜测法

如何模拟弱网?

测试用例设计万能公式


如果各位对文章的内容感兴趣的话,请点点小赞,关注一手不迷路,讲解的内容我会搭配我的理解用我自己的话去解释如果有什么问题的话,欢迎各位评论纠正 🤞🤞🤞

12b46cd836b7495695ce3560ea45749c.jpeg

个人主页:N_0050-CSDN博客

相关专栏:java SE_N_0050的博客-CSDN博客  java数据结构_N_0050的博客-CSDN博客  java EE_N_0050的博客-CSDN博客


基于需求进行测试用例的设计

首先回顾一下之前说的,需求是测试人员进行测试的依据,首先对需求进行分析是否合理是否完整,然后细化需求,从需求中提取出测试项,然后从每一个测试项从提取出测试点,然后根据测试点设计测试用例。基于需求设计测试用例属于大概的设计,而且是针对有需求文档的时候来设计测试用例,所以是针对需求进行了大概的测试,可能会出现大量的问题

功能需求测试分析:

从界面考虑:列出测试点,例如页面是否美观、页面布局是否合理、文字大小、文字格式必须正确、界面中各组件是否都正常等

从业务流程相关(需求规格说明书)考虑:列出对应的测试点,例如一个登录模块,首先手机号是否正确长度和格式是否符合要求,密码的格式等,如果没有需求规格说明书就对功能进行分析


非功能需求测试分析:

兼容性(操作系统)、性能(接口相关)、安全性(SQL注入等)、可移植性、易用性等

注意不同的项目类型对各个非功能需求是不一样的!

客户端软件:对功能要求简单,对兼容性和稳定性较低,可移植性有一定的要求

企业软件:对功能要求有一定的要求,但是整体上看,对性能,安全性,兼容性要求不高

商业软件:对功能,安全性,兼容性,可靠性等都有很高的要求


基于需求的具体设计方法

以下的内容涉及的是黑盒测试用例的设计方法!

等价类

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

例子:例如图书馆中的书籍分为几个大类,历史、人文、政治、经济、计算机等,我们去到历史这个区域挑选书的时候,随便挑一本书然后看看这本书属于什么类型的,如果是属于历史我们则可以等价认为这里的书都是属于历史类型的


等价类分为有效等价类和无效等价类:

有效等价类:根据需求说明书,满足需求的集合,例如账号的输入要求6-18位的数字,输入8位输入10位满足用户需求

无效等价类:根据需求说明书,不满足需求的集合,例如账号的输入要求6-18位的数字,输入20位不满足用户需求


总结:等价类就是根据需求将输入区域分为若干个等价类,然后从等价类中选出一个测试用例进行测试,测试通过则可认为是有效等价类反之无效,这也解决了不能穷举测试的问题。但是等价类只考虑输入域的分类,没有考虑输入域的组合,需要其他的设计方法和补充


等价类思想设计测试用例步骤:大前提一定是充分理解需求,然后划分有效等价类和无效等价类,然后各从中抽取一个数据设计测试用例


边界值

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

例子:还是账号的输入要求大于6-小于等于18位的数字,输入7位-18位满足用户需求,但是输入6位呢18位呢(上点),输入7位呢输入19位呢(离点),所以引入边界值来补充等价类测试的健全

边界值设计测试用例步骤:大前提一定是充分理解需求,然后找边界点分为上点(上面的6和18)和离点(上面的7和19),然后针对上、离、内点三者各设计一个测试用例。可以看出会将等价类和边界值结合起来使用,在实际的测试设计中就是这样


判定表法

其实判定表是来源于因果图法,首先画出因果图将其转换为判定表,我觉得画因果图没什么必要所以直接叫判定表法,因果图是一种简化了的逻辑图,能直观地表明程序输入条件(原因)和输出动作(结果)之间的相互关 系。因果图法是借助图形来设计测试用例的一种系统方法,特别适用于被测试程序具有多种输入条件、 程序的输出又依赖于输入条件的各种情况

逻辑关系:其实就是&、|、==、!

与:所有条件必须满足,一个条件为假,结果就为假

或:一个条件为真结果就为真,条件都假则全假

恒等:条件为真,结果一定真

非:条件为假,结果为真

判定表法设计测试用例步骤:大前提一定是充分理解需求,确定输入条件和输出条件,找出输入条件和输出条件之间的关系,然后画判定表,根据判断表设计测试用例


使用判定表法设计测试用例可以帮助测试人员理清输入和输出的关系,但是对于比较复杂的输入和输出,会耗费大量时间


正交表法

由于判定表法设计出来的用例太多了,引出正交表法,目的是为了减少用例数目。用尽量少的用例覆盖输入的两两组合

正交表的构成:

正交表的行表示要做试验的次数,可以理解为测试用例的个数

正交表的列表示最多允许安排的因素的个数

因素数(Factors):正交表中列的个数,用C代表

水平数(Levels):任何单个因素能够取得的值的最大个数。正交表中的包含的值为从0到数“水平数-1”或从1到“水平数”,用T代表

因素:在一项试验中,凡欲考察的变量称为因素(变量),也就是需求中的变量,也可以看作是输入条件

水平:在试验范围内,因素被考察的值称为水平(变量的取值),也就是变量的取值,也可以看作是输入条件的可选项

正交表的表示形式: L=行数(水平数*因素数) L=N(TC)

正交表的性质:

每一列中,不同数字出现的次数相等,下图中的111,222,333

任意两列中数字的排列方式齐全且出现的次数相等,下图中的11,12,13、21,22,23等

正交表法设计测试用例步骤:

充分理解需求->确定因素水平->画正交表->补充正交表->将正交表转为测试用例

如何设计正交表以及如何生成正交表?

使用allpairs工具生成正交表,类似工具也可以使用微软的PICT

详细步骤:首先先在excel中把因素和水平都写出来(也可以选择直接在记事本中写),然后把这些内容拷贝到记事本中,然后把这个记事本放到你安装allpairs的路径下。接着使用cmd定位到allpairs的路径下,然后输入allpairs.exe 输入文件名 > 新的文件名(不会覆盖掉之前的)

其中~表示此时这个取值可填写也可以是不填写,并且你会发现没有生成都不填写的情况,这种情况一般不常见也没意义
 

使用allpairs工具生成正交表流程:

1.找出因素和水平

2.设计正交表和生成正交表

3.根据正交表设计测试用例

4.补充其他测试用例


场景设计法

同一事件不同的触 发顺序和处理结果就形成事件流。该方法可以比较生动地描绘出事件触发时的情景,有利于测试设计者 设计测试用例,使测试用例更容易理解和执行。通常情况需要 把用户常用的功能模块串起来进行测试的时候使用场景设计法

针对一个完整的操作流程我们可以分为主事件流和次事件流去设计测试用例

主事件流:简单理解为按主事件去执行的所有步骤

次事件流:简单理解为从主事件中任意一个步骤分支出来的一个新事件流

例子:你去ATM机取款,完整流程应该是插卡、输入密码、选择业务、输入取款金额、等待返回、取卡,然后在插卡的时候可能用户插入的卡是老人卡或者饭卡以及非本行卡等,接下来输入密码又可能输入密码错误、输入次数上限等,选择业务选择存款、查询、流水等,输入取款金额的时候非整数或ATM没这么多等,等待返回的时候出现故障,取卡出现故障,对于这些从主事件中分支出来的情况我们可以看作次事件流,我们要针对这些情况设计测试用例,保证覆盖到这些情况


错误猜测法

错误猜测法是对被测试软件设计的理解,过往经验以及个人直觉,推测出软件可能存在的缺陷,从而针对性地设计测试用例的方法。这个方法强调的是对被测试软件的需求理解以及设计实现的细节把握,还有个人的经验和直觉


如何模拟弱网?

这里我使用fidder工具演示

接着下一步

进入后往下找,一个表示上传的速度和下载的速度

测试用例设计万能公式

针对没有需求的案例设计测试用例:功能测试+界面测试+兼容性测试+性能测试+易用性测试+安全测试

以上便是本章内容关于如何设计一个测试用例,在有需求或没有需求的情况下我们该如何进行设计,下一章我们对测试进行分类讨论💕

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

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

相关文章

智能ai对话软件都有哪些?分享4款!

在科技日新月异的今天,智能AI对话软件正以前所未有的速度改变着我们的生活方式与工作模式。它们不仅仅是冷冰冰的代码堆砌,更是拥有理解、学习乃至创造能力的智能伙伴,为人类社会带来了前所未有的便捷与乐趣。那么,究竟有哪些智能…

git安装和使用(托管服务 分支 克隆)超细教程

先来了解一下知识 下载与安装 (默认安装,下一步即可) 下载地址: https://git-scm.com/download 下载完成后可以得到如下安装文件: 双击下载的安装文件来安装Git。安装完成后在电脑桌面(也可以是其他目录)点击右键,如…

动态规划-斐波那契数列

一. 什么是动态规划 dp一般是需要前面状态的值的问题。比如,解决一个问题需要很多步骤,且步骤之间相关联,后一个步骤的推导需要前一个步骤的结论。而我们所做的就是,将这个带求解的问题分成若干步骤,将每个步骤答案保…

成为git砖家(10): 根据文件内容生成SHA-1

文章目录 1. .git/objects 目录2. git cat-file 命令3. 根据文件内容生成 sha-14. 结语5. References 1. .git/objects 目录 git 是一个根据文件内容进行检索的系统。 当创建 hello.py, 填入 print("hello, world")的内容, 并执行 git add hello.py gi…

本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——1到手测试

本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——1到手测试 ​ 大家好,今天给大家带来的是购买到小车或者说RDK X3之后直接快速体验,今天主要围绕官方的快速入门手册进行逐步测试 1.知识补充1 ​ 在这里首先要给新手小白补充几…

JVM结构、架构与生命周期总结

【1】JVM结构 不同厂商的JVM产品 : 厂商JVMOracle-SUNHotspotOracleJRocketIBMJ9 JVM阿里Taobao JVM HotSpot VM是目前市面上高性能虚拟机的代表作之一。它采用解释器与即时编译器并存的架构。 在今天,Java程序的运行性能早已脱胎换骨,已…

数据上新 | 景联文科技推出高质量方言音文对数据集,驱动方言语音大模型技术革新

中国电信人工智能研究院(TeleAI)正式对外发布星辰超多方言语音识别大模型。这是业内首个支持30种方言自由混说的语音识别大模型,也是目前国内支持最多方言的语音识别大模型。 方言语音大模型具有广泛的应用场景,可以应用于语音助手…

1.1.9创建应用

1.在全局配置文件下找到urls.py进行路由配置 配置路由要指明哪个应用,和写好模块导入的函数 2.找到路由要启动的应用,在应用里找到视图函数进行设计 path(‘url模式/“,视图函数) 注意第五部没有/ 1.1.110路由匹配模…

小阿轩yx-KVM+GFS 分布式存储系统构建 KVM 高可用

小阿轩yx-KVMGFS 分布式存储系统构建 KVM 高可用 案例分析 案例概述 使用 KVM 及 GlusterFS 技术,结合起来实现 KVM 高可用利用 GlusterFS 分布式复制卷对 KVM 虚拟机文件进行分布存储和冗余 分布式复制卷 主要用于需要冗余的情况下把一个文件存放在两个或两个…

刚起步的海外仓怎么选WMS系统,要注意什么

对于刚起步的海外仓企业来说,最紧要的事情就是把核心业务打磨平稳,形成核心竞争力,才能在激烈的竞争中赢得一席之地。 而要实现这个目的,WMS海外仓系统的引入当然是必要的一环,不过因为刚起步,业务和资源都…

AI产品经理的职责与能力:将AI技术转化为实际价值

一、AI产品经理的职责 发现和解决问题:AI产品经理需要具备敏锐的洞察力,能够发现用户需求和痛点,并提出相应的解决方案。传递价值给用户:AI产品经理需要确保产品能够满足用户的需求,提供价值,并提升用户体…

大模型之语言大模型技术

本文作为大模型综述第二篇,介绍语言大模型基本技术。 近年来,在 Transformer 架构基础上构建的预训练语言模型为自然语言处理领域带来了一系列突破式进展,成为人工智能主流技术范式。预训练语言模型采用“预训练+微调”方法,主要分为两步: 1)将模型在大规模无标注数据上…

No static resource favicon.ico.问题解决

一,问题 Spring Boot项目调用接口时报错 org.springframework.web.servlet.resource.NoResourceFoundException: No static resource favicon.ico. at org.springframework.web.servlet.resource.ResourceHttpRequestHandler.handleRequest(ResourceHttpReques…

餐饮卫生数字化防线:EasyCVR明厨亮灶/透明厨房/阳光厨房视频监管方案

近期有新闻报道,某互联网大厂办事处发生了一起大规模食物中毒事件,导致近60人住院。餐饮食品卫生安全直接关系到人民群众的身体健康和生命安全,是社会关注的焦点。 传统的监管方式往往依赖于人力巡查和抽检,存在效率低、覆盖面窄…

企业邮箱安全稳定吗?

企业邮箱安全稳定吗?企业邮箱通过GDPR等国际标准保护数据,采用加密技术、反垃圾邮件、身份验证等措施确保安全。服务器全球分布,灾难恢复和备份确保稳定。Zoho邮箱提供多种版本和注册流程,支持邮件协作、备份与恢复等功能。 一、…

成为一名月薪 2 万的 web 安全工程师需要掌握哪些技能?

现在 web 安全工程师比较火,岗位比较稀缺,现在除了一些大公司对学历要求严格,其余公司看中的大部分是能力。 有个亲戚的儿子已经工作 2 年了……当初也是因为其他的行业要求比较高,所以才选择的 web 安全方向。 资料免费分享给你…

“电商兴农 走进柳湖”明天赵堡准时启动,邀您一起来采摘

为了进一步推动农村电子商务普及应用,营造农村电商发展浓厚氛围,培育电商新业态、新模式,宣传推广崆峒农特产品,推动城乡生产与消费有效对接,拓宽农特产品销售渠道,释放农村消费潜能,挖掘乡村文…

凡图公益行|温暖新庞村:“守护童心、预防霸凌”公益活动圆满落幕!

凡图公益行|温暖新庞村:“守护童心、预防霸凌”公益活动圆满落幕! 在当今社会,霸凌这一现象如同阴霾般笼罩在部分孩子的生活之中,成为了一个不容忽视的社会问题。 它不仅给受害者带来深重的身心伤害,还对整个社会的和…

Haption力反馈设备在核工业遥操作机器人中的应用探讨

核工业作为能源领域的重要组成部分,其安全性和工作效率的提升越来越受到人们的关注。在核工业环境中,由于存在高辐射、高风险等特性,传统的人工操作方式并不适用于该领域,因此遥操作机器人技术应运而生。Haption力反馈设备作为虚拟…

springboot报错

springboot报错:g.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length 1 解决办法: file->settings 搜索encoding 然后选择File encodings 也可以直接找 File encodings 全部都更改整utf-8&#xff…