软件测试之 测试用例 如何设计

news2025/1/11 2:45:46

在软件开发过程中,测试是一个至关重要的环节,它有助于确保软件的质量和稳定性。而测试用例设计则是测试过程中的一个关键步骤,它帮助测试团队确定如何测试软件以发现潜在的问题和缺陷。本文将介绍测试用例设计的基本概念和步骤,以及一些最佳实践。

什么是测试用例?

测试用例是一组详细说明,用于验证软件的特定功能、特性或场景是否按照预期运行。每个测试用例通常包含以下元素:

  1. 测试名称:描述测试的目的或要验证的功能。

  2. 测试输入:指定输入数据、操作或条件,以便执行测试。

  3. 预期输出:说明在给定输入或操作下,软件应该产生的预期结果。

  4. 测试步骤:列出执行测试的具体步骤,包括操作和输入数据。

  5. 测试环境:指定在哪种环境下执行测试,例如操作系统、浏览器、设备等。

  6. 前置条件:描述在执行测试前需要满足的条件,如登录、数据准备等。

  7. 后置条件:描述在测试执行后需要执行的清理操作,以确保环境处于初始状态。

测试用例设计方法

基于需求的设计方法

需求文档 -> 梳理需求(掌握需求) -> 针对文档设计测试用例(基于需求设计测试用例)

如何基于需求的设计测试用例呢?我们以注册163邮箱为例:

1. 收集需求

首先,我们需要收集与163邮箱注册功能相关的需求文档。这些需求文档通常包括用户故事、用例描述、功能规格等信息。 

2. 梳理需求

在收集到需求文档后,我们需要仔细阅读并理解这些需求,确保我们掌握了它们。在这个阶段,可以做以下工作:

  • 确保理解了用户的注册流程,包括所需信息(如用户名、密码、电子邮件等)以及任何特殊要求。

  • 确认是否有任何特殊规定,如密码强度要求或用户名格式。

  • 了解用户在注册过程中可能会遇到的错误或异常情况,如重复用户名或密码不匹配

3. 设计测试用例

基于对需求的理解,我们可以开始设计测试用例。以下是一些测试用例示例:

用例1: 正常注册流程

  • 测试名称: 正常注册流程
  • 测试步骤:
    1. 打开163邮箱注册页面。
    2. 输入有效用户名、密码和电子邮件。
    3. 单击“注册”按钮。
  • 预期结果: 用户成功注册,系统显示成功注册的消息。

用例2: 重复用户名

  • 测试名称: 重复用户名
  • 测试步骤:
    1. 打开163邮箱注册页面。
    2. 输入已经存在的用户名、密码和电子邮件。
    3. 单击“注册”按钮。
  • 预期结果: 系统显示用户名已存在的错误消息。

用例3: 弱密码

  • 测试名称: 弱密码
  • 测试步骤:
    1. 打开163邮箱注册页面。
    2. 输入有效用户名、弱密码和电子邮件。
    3. 单击“注册”按钮。
  • 预期结果: 系统显示密码强度不足的错误消息。

用例4: 无效电子邮件

  • 测试名称: 无效电子邮件
  • 测试步骤:
    1. 打开163邮箱注册页面。
    2. 输入有效用户名、密码和无效电子邮件。
    3. 单击“注册”按钮。
  • 预期结果: 系统显示电子邮件格式无效的错误消息。
4. 确保覆盖率

在设计测试用例时,确保我们的测试用例覆盖了不同的情况,包括正常和异常情况。还可以考虑性能、安全性和用户体验方面的测试。

5. 执行和记录

一旦测试用例设计完成,您可以开始执行测试,并记录测试结果,包括任何发现的问题。在执行过程中,注意测试用例的顺序和依赖关系。

6. 回归测试

如果在测试过程中发现问题,确保在修复后执行回归测试,以验证问题是否已经解决,并且没有引入新问题。

等价类法

依据需求将输入(特殊情况下会考虑输出)划分为若干个等价类,从等价类中选出一个测试用例,如果这个测试用例测试通过,则认为所代表的等价类测试通过,这样就可以用较少的测试用例达到尽量多的功能覆盖,解决了不能穷举测试的问题。
等价类可分为:
1.有效等价类:对于程序需求是合理的、有意义的输入数据构成的集合
2.无效等价类:对于程序需求是不合理的,不满足需求的集合
我们可以设计一个密码长度 8 - 16之间的等价类,可以分为以下几步:
1.充分理解需求
2.划分有效等价类、无效等价类
3.从有效等价类抽出一个数据设计测试用例;从无效等价类抽取一个数据进行测试用例设计

边界值法

边界值法是一种测试用例设计方法,它通过测试边界条件下的输入和输出来发现软件中的错误。

 边界点可以分为以下三种:
1.上点:边界上的点
2.内点:边界内的点
3.离点:边界附近的点(闭区间区间外上最近的点,开区间区间内距离最近的点)
我们举个例,我们以(3,15]为例:
上点:3,15 内点:10 离点:4 16

我们可以设计一个密码长度 8 - 16之间的边界值,边界值设计测试用例方法可以分为以下几步:
1.充分理解需求
2.找边界点
3.针对边界点设计测试用例

 判定表法

判定表是一种表示测试用例设计的矩阵,通常使用逻辑表达式表示程序的输入条件和预期结果的关系。判定表可以帮助测试人员在不同输入条件下系统地设计测试用例,以减少测试工作量并提高测试的覆盖率和效率。
关系:与(全真为真,一假为假)、或(有真为真,全假为假)、恒等(条件为真,结果一定为真)、非(条件为真,结果为假)

如何设计测试用例:
1.分析所有可能的输入和输出
2.找出输入与输出之间的对应关系
3.设计判定表
4.将判定表对应到每一个测试用例

假如我们点外卖,总金额大于30可以使用红包

输入:订单金额大于30,有红包
输出:优惠、不优惠

1. 订单金额大于30,有红包,有优惠
2. 订单金额大于30,没有红包,不优惠
3. 订单金额小于30,有红包,不优惠
4. 订单金额小于30,没有红包,不优惠

 

正交表法

正交表(Orthogonal Array)是一种设计实验用的组合表,通过在一定数量的测试步骤中选择最小的测试用例集来尽可能覆盖各种可能的输入组合。正交表的设计基于正交性原则,即在各个测试步骤中对每个因素进行均等且充分的测试。

常见名词:
因素:变量
水平:变量取值

 示例:

因素:姓名、邮箱、密码、确认密码、验证码
水平:填写、不填写

我们填写数据到记事本

然后我们运行allpairs

 

然后我们查看结果:

 TEST CASES就是我们的测试用例,~代表可填写,可以不填写,我们的一行就是一个测试用例

场景设计法 

场景设计法是软件测试中一种比较常用的测试用例设计方法,其基本思想是根据系统的功能需求或用户使用场景来设计测试用例,以尽可能地覆盖各种可能的测试场景。场景设计法的核心是找到系统的所有关键场景,并根据这些场景设计相应的测试用例。

我们以追女神为例:

找到系统的所有关键场景,并根据这些场景设计相应的测试用例。

搭讪->要联系方式->聊天->吃饭->表白->成功

相当于是我们的一个主事件流,但往往会有一些突发情况,也就是我们的次事件流

错误猜测法

错误猜测法(Error Guessing)是一种常用的测试用例设计方法,其基本思想是根据测试人员对系统功能或代码实现可能出现错误的了解和经验,尝试猜测和发现各种可能的错误情况,并设计相应的测试用例来验证这些猜测。

错误猜测法可以分为以下几个步骤:

1.收集信息:测试人员需要仔细研究需求、设计文档以及代码等相关材料,收集有关系统的各种信息。

2.思考可能出现的错误:根据测试人员对系统功能或代码实现的了解和经验,尝试猜测和思考各种可能出现的错误情况。

3.设计测试用例:对于每个猜测的错误情况,设计相应的测试用例进行验证,并尽可能地覆盖各种可能的情况。在设计测试用例时应该将错误描述清楚,包括输入数据、操作步骤以及预期结果等。

4.执行测试用例:按照设计好的测试用例执行测试,发现问题并及时反馈给开发人员进行修复。

错误猜测法的优点是能够充分利用测试人员的经验和判断,发现可能存在的问题,并通过针对性的测试用例进行验证。同时,错误猜测法也具有灵活性和适用性,适用于各种规模的项目和各种类型的软件系统。

测试用例万能公式

测试用例设计万能公式:功能、界面、易用、兼容、性能、安全、网络
功能:物体(物体是用来干嘛的)、软件(软件实现的哪些功能)
界面:物体(外表,材质,大小,容量)、软件(界面、字体大小、字体颜色、页面布局)
易用:经验(操作简单、使用流畅)、人性化
兼容:物体(本质功能,还有没有其他功能)、软件(操作系统、设备、浏览器版本)
性能:物体(使用寿命)、软件(响应时间、吞吐量、并发数)
安全:物体(材质是否有毒、对人体健康是否有威胁)、软件(SQL注入、xss漏洞、输入有毒的脚本)
网络:2G - 5G、弱网、WIFI

水杯测试用例:

微信发朋友圈测试 

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

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

相关文章

产品研发团队协作神器!10款提效工具大盘点!

在如今科技驱动的时代,产品研发团队面临着前所未有的竞争压力和不断变化的市场需求。为了在这个激烈的环境中脱颖而出,团队需要高效协作并充分利用先进的工具来提高生产力和创新能力。 本文将为你盘点产品研发团队协作必备的10个提效工具,这…

TiDB、MySQL与Oracle的char字段

文章目录 MySQLTiDBOracle结论 我们组在团队内维护了一套TiDB,有时候会有其他同事来请教一些问题,当然遇到比较复杂的问题,我也会直接抛给DBA。今天有个同事来问了一下TiDB的char字段查询是否需要补空格。在我的印象中,TiDB是高度…

【Docker】Docker学习之一:离线安装Docker步骤

前言:基于Ubuntu Jammy 22.04 (LTS)版本安装和测试 1、Docker安装 1.1、离线安装 步骤一:官网下载 docker 安装包 wget https://download.docker.com/linux/static/stable/x86_64/docker-24.0.6.tgz步骤二:解压安装包; tar -zxvf docker…

安防监控视频汇聚平台EasyCVR增加AI算法列表接口的实现方法

安防监控视频汇聚平台EasyCVR基于云边端一体化架构,具有强大的数据接入、处理及分发能力,可提供视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、云台控制、语音对讲、智能分析等功能。平台既具备传统安防监控的能力,也…

C++进阶语法之函数和指针【学习笔记(三)】

文章目录 1、C 函数1.1 函数的定义1.2 函数原型(function prototypes)1.3 参数(parameter)——值传递(pass by value)1.4 重载(overloading)1.5 函数传参——传递数组(ar…

Linux下控制GPIO的三种方法

https://blog.csdn.net/qq_41076734/article/details/124669908 1. 应用空间控制gpio 1.1简介 在/sys/class/gpio/下有个export文件,向export文件写入要操作的GPIO号,使得该GPIO的操作接口从内核空间暴露到用户空间,GPIO的操作接口包括dir…

Flink学习笔记(四):Flink 四大基石之 Window 和 Time

文章目录 1、 概述2、 Flink 的 Window 和 Time2.1、Window API2.1.1、WindowAssigner2.1.2、Trigger2.1.3、Evictor 2.2、窗口类型2.2.1、Tumbling Windows2.2.2、Sliding Windows2.2.3、Session Windows2.2.4、Global Windows 2.3、Time 时间语义2.4、乱序和延迟数据处理2.5、…

linux系统安装Googletest单元测试框架

环境信息 系统:ubuntn cmake版本:3.5.1 gcc版本:5.4.0 1、下载googletest git clone https://github.com/google/googletest.git注意!不选branch的话默认下载最新版本(需要编译器能够支持C14),…

如何生成osg的动画路径文件

目录 1. 前言 2. 生成动画路径文件 2.1. 粗糙方式 2.2. 精确方式 1. 前言 在进行osg的开发中,有时需要对模型按某个路径或规则进行动画,如下: 奶牛在10秒时间段从起始的osg::Vec3d(0.0, 18, 1.0)位置 匀速直线运动到osg::Vec3d(0.0, -8, …

ubuntu 中使用Qt连接MMSQl,报错libqsqlodbc.so: undefined symbol: SQLAllocHandle

Qt4.8.7的源码编译出来的libqsqlodbc.so,在使用时报错libqsqlodbc.so: undefined symbol: SQLAllocHandle,需要在编译libqsqlodbc.so 的项目pro文件加上LIBS -L/usr/local/lib -lodbc。 这里的路径根据自己的实际情况填写。 编辑: 使用uni…

Python数据结构(队列)

Python数据结构(队列) 队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。 队列是一种先进先出的 (First n First ut)的线性表,简称FIFO。允许插入的一端为队尾,允许删除的一端为队头&#xff…

深度学习——图像分类(CIFAR-10)

深度学习——图像分类(CIFAR-10) 文章目录 前言一、实现图像分类1.1. 获取并组织数据集1.2. 划分训练集、验证集1.3. 图像增广1.4. 引入数据集1.5. 定义模型1.6. 定义训练函数1.7. 训练模型并保存模型参数 二、生成一个桌面小程序2.1. 使用QT设计师设计界…

建筑工程模板分类以及特点?

建筑工程模板可以根据材料、结构和用途等方面进行分类。以下是一些常见的建筑工程模板分类及其特点: 1. 木质模板: - 特点:木质模板是最常见和传统的模板类型。它们由木材制成,具有良好的可塑性和可加工性。木质模板适用于各种形状…

京东数据分析:2023年9月京东白酒行业品牌销售排行榜

鲸参谋监测的京东平台9月份白酒市场销售数据已出炉! 9月白酒市场的整体热度较高,贵州茅台先是与瑞幸联名推出酱香拿铁,后又宣布与德芙推出联名产品酒心巧克力,引起了诸多消费者的关注。在这一热度的加持下,从销售上看&…

Kali Linux 安装搭建 hadoop 平台 调用 wordcount 示例程序 详细教程

步骤一: 目标:*安装虚拟机,在自己虚拟机上完成hadoop的伪分布式安装。(安装完成后要检查)* 1)前期环境准备:(虚拟机、jdk、ssh) 2)SSH相关配置 安装SSH Se…

【MyBatis篇】MyBatis动态代理总结

本人正在浅学mybatis,正学到mybatis动态代理,在查询多方资料之后做出以下总结,以便于系统学习时回顾; 目录 MyBatis为什么引入动态代理 mybatis的动态代理 Dao代理技术 MyBatis为什么引入动态代理 因为程序员的 懒,…

访问控制2

文章目录 主要内容一.Role和ClusterRole1.ClusterRole示例,创建一个名为test-clusterrole且仅有创建Pod和deployment的集群角色代码如下(示例): 2.YAML文件创建代码如下(示例): 3.将udbs用户和Clusterrole进行绑定&…

0基础学习VR全景平台篇第112篇:控制点和遮罩工具 - PTGui Pro教程

上课!全体起立~ 大家好,欢迎观看蛙色官方系列全景摄影课程! 前情回顾:上节,我们用PTGui拼接了一张全景图,全景编辑器里的各项功能帮助我们进行了初步的检查和编辑。 之后我们需要使用【控制点】和【遮罩…

智慧垃圾站:AI视频智能识别技术助力智慧环保项目,以“智”替人强监管

一、背景分析 建设“技术先进、架构合理、开放智能、安全可靠”的智慧环保平台,整合环境相关的数据,对接已建业务系统,将环境相关数据进行统一管理,结合GIS技术进行监测、监控信息的展现和挖掘分析,实现业务数据的快速…

【AI视野·今日CV 计算机视觉论文速览 第271期】Thu, 19 Oct 2023

AI视野今日CS.CV 计算机视觉论文速览 Thu, 19 Oct 2023 Totally 63 papers 👉上期速览✈更多精彩请移步主页 Daily Computer Vision Papers Learning from Rich Semantics and Coarse Locations for Long-tailed Object Detection Authors Lingchen Meng, Xiyang D…