测试用例的设计(1)

news2025/1/11 16:51:15

目录

1. 测试用例的基本要素

2.测试用例的设计方法

2.1.基于需求设计

2.2根据功能需求测试

2.3非功能测试

3. 具体的设计方法

3.1等价类法

3.2边界值法

3.3判定表


1. 测试用例的基本要素

   测试用例是为了实施测试而面向测试的系统提供的一组集合,这组集合包含:测试环境,测试数据,操作步骤,预期结果等要素

  一个好的测试用例,哪怕是不熟悉业务的人也能根据测试用例来很快的进行测试.

2.测试用例的设计方法

2.1.基于需求设计

基于需求设计测试用例是测试设计和开发设计的基础,第一步是分析测试需求,验证需求是否正确完整,无二义性,并且逻辑自洽.在需求正确的基础上细化测试需求,从测试需求中提炼出来一个个的测试点.

在分析测试需求的时候,分为功能测试和非功能测试.

比如我们有一个用户注册的界面,我们对其进行测试.可以这样来设计测试用例:

2.2根据功能需求测试

其中根据功能需求测试:

我们可以借助功能框图来帮助我们进行测试的需求分析,概括起来,功能测试需求包括以下:

1.系统各个功能页面的验证

2.借助业务把功能串起来进行测试

3.功能的一致性,交互性测试

4.功能的不同输入.并且根据需求文档来写出的预期结果和实际输出结果做对比

5.功能的错误操作,异常操作的测试

6.功能实现用到的算法验证

7.用户操作的易用性,用户体验

2.3非功能测试

        主要有以下几个:1.性能 2.兼容性 3.安全 4.网络 5.可靠性 6.可移植性. 7. 易维护性

这些非功能的每一个部分都可以单独拿出来分析,但是这些模块互相之间可能也有影响,比如安全性高了,性能就有可能受到影响.这些都得做出取舍和找到一个平衡点

  (1)纯客户端软件,比如字处理软件(Word,PPT),媒体(音频/视频)播放软件(电脑自带的)等。这类软件对系统的功能测试要求是最低的,但是对兼容性和稳定性,可移植性有一定的要求.

(2)企业内部的客户端/服务端(C/S)应用系统。比如电子邮件,即时通信系统(飞Q,企业QQ)等,在系统功能测试需求上比纯客户端复杂,要求功能正确,稳定性能好。但是整体上看,对性能,安全性,兼容性要求不高。
(3)外部大型复杂网络应用系统,比如电子商务,网上银行,视频网站(腾讯,优酷)等,除了有复杂的系统的功能测试需求外,在系统的性能,安全性,兼容性,容错性,可靠性等都有很高的要求。
 

3. 具体的设计方法

3.1等价类法

根据需求将输入分为不同的类型,其中每一个类型都只需要一个测试用例即可,用这个测试用例来代表整个类.这样就可以用较少的测试用例来达到尽可能多的功能覆盖,解决了不能穷举测试的问题.

我们可以把等价类分为有效等价类和无效等价类

1.有效等价类,对于程序的规格说明书是合理,有以以的数据构成的集合,利用有效等价类验证程序是否实现了规格说明书中的功能和性能

2.无效等价类,根据需求说明书,不符合要求的集合

等价类只考虑输入的分域,不考虑组合,需要其他的设计方法和补充.

如 :

我去买吃的

有效等价类:馒头,包子,面条,米饭

无效等价类:电脑,手机,电视机等

3.2边界值法

边界值分析法是对输入或者输出的边界进行测试的一种黑盒测试方法,通常情况下边界值分析法是座位等价类划分法的补充.

我们可以把边界点分为 上点  内点 和 离点

上点:边界上的点

内点:边界内的点

离点:边界值附近的一个点(一般是距离最近的一个点)

如  我们在测试用户注册的用户名长度的时候,规定的值是 6~16 (闭区间)

那么我们可以分为
上点:6 16 

内点:10

离点:7 17

在使用边界值测试法的时候,要达到:

1.充分理解需求

2.找边界点

3.针对边界点设计测试用例

3.3判定表

判定表是另一种表达逻辑判断的工具.

关系有:  

与:所有条件都满足 为真,有一个不满足为假

或:满足其中一个条件为真

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

非:条件为假,结果才为真

如何设计测试用例,比如我们设计一个买奶茶的时候,如果订单以提交金额超过了20块钱 或者有红包,就会优惠.

那么根据以上的需求,我们可以设计出以下的测试用例

1.订单以提交,金额大于20,有红包,优惠

2.订单以提交,金额大于20,无红包,优惠

3.订单以提交,金额小于20,有红包,优惠

4.订单以提交,金额小于20,无红包,不优惠

5.订单没提交,金额大于20,有红包,不优惠

6.订单没提交,金额大于20,无红包,不优惠

7.订单没提交,金额小于20,有红包,不优惠

8订单没提交,金额小于20,无红包,不优惠

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

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

相关文章

使用FFmpeg源码配置程序configure查看所有支持的编码器/解码器/封装/解封装及网络协议

查看支持编码器: configure --list-encoders 查看支持编码器: configure --list-decoders 查看所有支持的封装: configure --list-muxers 查看所有支持的解封装: configure --list-demuxers 查看所有支持的网络通信协议: configure --list-protocols

数据预处理|数据清洗|使用Pandas进行异常值清洗

数据预处理|数据清洗|使用Pandas进行异常值清洗 使用Pandas进行异常值清洗1. 异常值检测1.1 简单统计分析1.2 散点图方法1.3 3σ原则1.4 箱线图 2. 异常值处理2.1 直接删除2.2 视为缺失值2.3 平均值修正2.4 盖帽法2.5 分箱平滑法2.6 回归插补2.7 多重插补2.8 不处理 使用Pandas…

通过Rothko罗斯科绘画学习CSS盒子

本文章属于学习笔记,在https://www.freecodecamp.org/chinese/learn/2022/responsive-web-design/中练习 1、使用 padding 简写属性来增加两个元素之间的空间到。 .canvas {} .frame { padding:50px; }2、overflow 设置为 hidden - 将画布更改回其原始尺寸。overfl…

193基于matlab的基于两轮驱动机器人的自适应轨迹跟踪算法

基于matlab的基于两轮驱动机器人的自适应轨迹跟踪算法,将被跟踪轨迹分段作为跟踪直线处理,相邻离散点之间为一段新的被跟踪轨迹。程序已调通,可直接运行。 193 自适应轨迹跟踪算法 两轮驱动机器人 - 小红书 (xiaohongshu.com)

matplotlib如何设置中文为宋体,英文为新罗马Times New Roman

问题描述 论文附图通常需要将中文设置为宋体,英文设置为新罗马字体(Times New Roman)。matplotlib中可以这样设置字体: plt.rcParams[font.sans-serif] [SimSun] plt.rcParams[font.sans-serif] [Times New Roman]但是这样设置…

<DFS剪枝>数字王国之军训排队

其实就是将搜索过程一些不必要的部分直接剔除掉。 剪枝是回溯法的一种重要优化手段,往往需要先写一个暴力搜索,然后找到某些特殊的数学关系,或者逻辑关系,通过它们的约>束让搜索树尽可能浅而小,从而达到降低时间复杂…

绪论——算法设计原则【数据科学与工程算法基础】

一、题记 最近情绪不太稳定,些许烦躁,也就一直没践行前边说的“学习记录”的想法。现在开始做了,春华易逝,正当时,有想法就去做,踌躇懊悔是这个年纪最不该做的事。 二、前言 之前说了分块做这个系列&#x…

动态规划:4种遍历方向图解+Python实现

前言 动态规划类题型在遍历过程中,根据状态转移函数的不同,代码实现时遍历的方向也会有所差异。总的来说,一共可以总结为下图四种模式: 红色五角星表示当前要计算的状态值;白底箭头代表哪些状态要提前算出来&#xf…

VSCode ARM CortexM 开发

VSCode ARM CortexM 开发: http://coffeelatte.vip.cpolar.top/post/software/applications/vscode/vscode_arm_cortexm_开发/ 文章目录 VSCode ARM CortexM 开发: <http://coffeelatte.vip.cpolar.top/post/software/applications/vscode/vscode_arm_cortexm_%E5%BC%80%E5%…

三星计划将其NAND闪存芯片价格上调最高20%

韩国媒体一份报告显示&#xff0c;三星电子的内存业务成功挺过了去年的市场低迷时期。最近&#xff0c;其减产策略终于见效&#xff0c;芯片价格随之上升。 据报导&#xff0c;今年第一季度&#xff0c;三星计划将其NAND闪存芯片价格上调最高20%&#xff0c;目标是恢复其内存芯…

【析】一类动态车辆路径问题模型和两阶段算法

一类动态车辆路径问题模型和两阶段算法 摘要 针对一类动态车辆路径问题&#xff0c;分析4种主要类型动态信息对传统车辆路径问题的本质影响&#xff0c;将动态车辆路径问题(Dynamic Vehicle Routing Problem, DVRP)转化为多个静态的多车型开放式车辆路径问题(The Fleet Size a…

Java基础-复制

复制 前言引用拷贝浅拷贝深拷贝重写clone()方法序列化 前言 在编码中,我们可能会遇到需要将对象的属性复制到另一个对象中,这种情况叫做拷贝. 拷贝与Java内存结构有密切关系,拷贝有三种情况,引用拷贝,深拷贝和浅拷贝,下面来了解一下. 引用拷贝 引用拷贝会生成一个新的对象引…

微信小程序基础面试题

1、简述微信小程序原理 小程序本质就是一个单页面应用&#xff0c;所有的页面渲染和事件处理&#xff0c;都在一个页面内进行&#xff0c;但又可以通过微信客户端调用原生的各种接口&#xff1b;它的架构&#xff0c;是数据驱动的架构模式&#xff0c;它的UI和数据是分离的&am…

Windows上Git LFS的安装和使用

到Git LFS官网下载 传送门 初始化GitHub LFS和Git仓库 在仓库目录中运行&#xff1a; git lfs install再运行&#xff1a; git init跟踪大文件 git lfs track "*.zip"添加并提交文件 git add . git commit -m "Add large files"上传到我的github 配…

3.15作业

什么是IP地址&#xff1a;IP地址的作用是在网络中唯一标识和定位设备 IP地址和MAC地址的区别&#xff1a;IP地址是逻辑地址&#xff0c;网络层标识设备&#xff0c;可以更改&#xff0c;是全球互联网的唯 一 标识 MAC地址是物…

【CTF笔记】 CTF web方向笔记分享 免费 附预览图

个人不怎么记东西&#xff0c;笔记不多&#xff0c;师傅们凑合看… 百度网盘&#xff1a;https://pan.baidu.com/s/1PspihUX28Y_AOQZPurHqKA 麻烦各位师傅帮忙填写一下问卷&#xff0c;提取码在问卷填写结束后显示~ 【https://www.wjx.cn/vm/mBBTTKm.aspx# 】 &#xff08;…

大型政企寻求“智能化配方”,谁是“偏方”,谁是“验方”?

文 | 智能相对论 作者 | 叶远风 两会落幕&#xff0c;“人工智能”已成为国策&#xff0c;而全面推进智能化建设&#xff0c;大型政企首当其冲、责无旁贷——它们既是智能化转型升级的重要构成部分&#xff0c;也能直接在垂直领域形成价值引领、以点带片。 当智能成为大型政…

某鱼弹幕逆向

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;不提供完整代码&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;wx a15018…

对称加密算法(DES、AES)

加密密钥 解密密钥 DES现在基本不再使用 3DES处理速度慢 AES通常用于移动通信系统加密以及基于SSH协议的软件

使用docker-compose部署Redis集群

一、部署三主三从的Redis集群 分别为6个节点建立挂载目录&#xff0c;每个目录下建立数据、配置、日志文件夹。 docker-compose内容如下&#xff1a; version: 3 services:redis1:image: redis:6.2.3restart: alwaysports:- "6379:6379"- "16379:16379"v…