测试用例的设计(1)

目录

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.mzph.cn/news/747165.shtml

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

相关文章

netstat命令——查看网络状态统计信息

netstat是network statistics的缩写,其功能是显示各种网络相关统计信息,例如网络连接状态、路由表信息、接口状态、NAT、多播成员等。通用于Linux和Windows。 netstat命令的语法格式如下: netstat 选项 常用选项如下: 选项 …

Java Web开发从0到1

文章目录 总纲第1章 Java Web应用开发概述1.1 程序开发体系结构1.1.1 C/S体系结构介绍1.1.2 B/S体系结构介绍1.1.3 两种体系结构的比较1.2 Web应用程序的工作原理1.3 Web应用技术1.3.1 客服端应用技术1.3.2 服务端应用技术1.4 Java Web应用的开发环境变量1.5 Tomcat的安装与配置…

2024年3月2日~2024年3月15日周报

文章目录 一、前言二、 D 2 UNet \textrm{D}^{2}\textrm{UNet} D2UNet 阅读情况2.1 体系结构2.2 损失函数 三、遇到的问题及解决四、小结 一、前言 在上上周寻找改进网络框架与超参数的灵感,并跑代码查看了效果。 最近两周,继续修改网络框架结构&#xf…

【Unity】Tag、Layer、LayerMask

文章目录 层(Layer)什么是LayerLayer的应用场景Layer层的配置(Tags & Layers)Layer的数据结构LayerMaskLayer的选中和忽略Layer的管理(架构思路)层碰撞矩阵设置(Layer Collision Matrix&…

SpringBoot(拦截器+文件上传)

文章目录 1.拦截器1.基本介绍2.应用实例1.去掉Thymeleaf案例中使用session进行权限验证的部分2.编写自定义拦截器 LoginInterceptor.java 实现HandlerInterceptor接口的三个方法3.注册拦截器1.第一种方式 配置类直接实现WebMvcConfigurer接口,重写addInterceptors方…

C++语言学习(一)—— 认识C++语言

目录 一、C语言 二、C与C语言的区别 2.1 预处理器 2.2 标准库 2.3 类型 2.4 函数重载 2.5 内存管理 2.6 输入输出函数 2.7 关键字 三、C的基本结构 一、C语言 C语言是一种高级编程语言,由Bjarne Stroustrup在20世纪80年代初设计和开发。它是C语言的扩展&a…

综合小区管理系统|基于Springboot的综合小区管理系统设计与实现(源码+数据库+文档)

综合小区管理系统目录 目录 基于Springboot的综合小区管理系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1、出入管理 2、报修管理 3、车位管理 4、公告管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#…

git 将某些代码一个分支转移到另一个分支

https://blog.csdn.net/huyongfu2004/article/details/122239102 假设A分支已经有修改的代码 提交过了 但是没有合并到master; 想要吧A分支这次的修改单独提交 已经commit 查看提交的commit号 git log切到新的分支,后将该commit id pick到正确分支 g…

day06、07-MySQL

文章目录 一、MySQL概述1.1 安装1.2 数据模型1.3 SQL简介1.3.1 SQL通用语法1.3.2 分类 二. 数据库设计-DDL2.1 项目开发流程2.2 数据库操作2.2.1 查询数据库2.2.2 创建数据库2.2.3 使用数据库2.2.4 删除数据库 2.3 图形化工具2.3.1 介绍2.3.2 安装2.3.3 使用2.2.3.1 连接数据库…

【English Learning】Day13

2024/03/14 和小录打卡的第13天 目录 Words & phrases Words & phrases incrredibly incredibly busy 超级忙merely not merely 不仅仅tragedy a terible tregedy 可怕的悲剧a personal tragedy 个人遭遇strive strive to be best 努力做最好的strive for peace 为和平…

【项目管理】进度管理

一、前言 小型项目中,定义活动、排列活动顺序、估算活动持续时间及制定进度模型形成进度计划等过程的联系非常密切,可以视为一个过程,可以由一个人在较短时间内完成。项目管理团队编制进度计划的一般步骤为:首先选择进度计划方法…

Qt+FFmpeg+opengl从零制作视频播放器-7.OpenGL播放视频

在上一节Qt+FFmpeg+opengl从零制作视频播放器-6.视频解码中,我们学到了如何将视频数据解码成YUV原始数据,并且保存到本地,最后使用工具来播放YUV文件。 本节使用QOpenGLWidget来渲染解码后的YUV视频数据。 首先简单介绍QOpenGLWidget的使用。 QOpenGLWidget类是用于渲染O…

HTML—标签的分类,span和div标签,不同的标签之间类型转换

标签的分类: ①块级标签:无论内容多少,会充满整个行。大小可自定义 例:p,h1,ul,ol,hr 等 ②行级标签:自身的大小就是标签的大小,不会占一整行。大小不可调 例…

密码保护小贴士:如何应对常见的网络钓鱼攻击?

网络钓鱼攻击是一种常见的网络欺诈手段,针对个人隐私和财产安全构成威胁。以下是一些密码保护的小贴士,帮助您应对常见的网络钓鱼攻击: 1.谨慎点击链接:收到来历不明的邮件、短信或社交媒体消息时,不要轻易点击其中的…

Python 基础语法:基本数据类型(字典)

为什么这个基本的数据类型被称作字典呢?这个是因为字典这种基本数据类型的一些行为和我们日常的查字典过程非常相似。 通过汉语字典查找汉字,首先需要确定这个汉字的首字母,然后再通过这个首字母找到我们所想要的汉字。这个过程其实就代表了…

easyexcel导出excel文件到s3服务器

导出excel文件是开发中常见的需求 常见的做法一般是直接通过请求接口响应对象HttpServletResponse把文件输出 我们可以使用原生的poi工具类操作.也可以使用easypoi.easyexcel等基于poi二次封装的工具处理 下面是代码 /*** 导出列表** param request* param response*/Overri…

腾讯,百度后端实习一面面经base上海

腾讯面经 拷打后端项目 mysql查询去重怎么建表的项目中一些接口的实现设计场景:抖音有个搜索功能,要搜索并展示用户和视频的信息,你要怎么实现用户的鉴权是怎么设计的设置mysql连接池的参数的依据gorm怎么防止sql注入get和post的区别&#…

SPA富应用开发

1、开发环境的安装: 笔者在安装过程中,出现了版本问题,所以,在这里做出提醒,要是安装不成功,爆出版本问题,执行下面的命令,命令的来源是这里:Install Docker Engine on …

YoloV8改进策略:下采样改进|HWD改进下采样

摘要 本文使用HWD改进下采样,在YoloV8的测试中实现涨点。 论文解读 在卷积神经网络(CNNs)中,极大池化或跨行卷积等下采样操作被广泛用于聚合局部特征、扩大感受野和最小化计算开销。然而,对于语义分割任务&#xff…

2024年,如何长久做好一家抖音小店?明白这几点就可以了!

大家好,我是电商糖果 有人曾经问过糖果,自己做抖音小店想要长期去玩,可能要做个三四年,甚至更久。 糖果做电商7年了,从2020年开始做抖音小店,现在已经四年了。 所以你如果问我是怎么可以将这个项目做那么…