【软件测试】测试用例的设计

news2024/10/5 18:30:28

文章目录

  • 一. 针对没有需求的案例来设计测试用例
  • 二. 针对有需求的案例来设计测试用例
    • 1. 穷举法
    • 2. 等价类
    • 3. 边界值
    • 4. 判定表法
    • 5. 场景设计法
      • 5.1 简介
      • 5.2 基本设计步骤
      • 5.3 基本流和备选流
      • 5.4 使用场景
      • 5.5 优缺点
      • 5.6 实例
    • 6. 错误猜测法

一. 针对没有需求的案例来设计测试用例

针对没有需求的案例,我们可以从如下几个方面思考来设计测试用例

功能测试 + 界面测试 + 性能测试 + 安全测试 + 兼容性测试 + 易用性测试

案例一:针对一个水杯来设计测试用例

在这里插入图片描述

案例二:针对一个登陆系统来设计测试用例
在这里插入图片描述

二. 针对有需求的案例来设计测试用例

大概设计思路如下:

  1. 需求分析
  2. 概括出需求有哪些功能
  3. 设计测试点
  4. 设计测试用例

1. 穷举法

假如说给定的软件需求是:提示姓名长度为6~15位。

测试时数据我们设定为6、7、8 … 14、15,这样通过穷举法来设计测试用例,若测试用例通过,则认为功能符合需求要求。

假如说,给定的长度不是6~15位,而是6 ~ 500位,这时应该如何设计测试用例呢?这样测试用例通过穷举法肯定是不现实的。

2. 等价类

概念:针对需求把输入范围内的所有测试用例划分成若干个等价类,从其中一个等价类里取出一个用例,若该测试用例测试通过,则认为该测试用例所在的等价类通过。

等价类的核心是对测试数据进行分区分块,使用较少的测试用例达到符合的系统测试覆盖率。

等价类又划分成有效等价类和无效等价类:

  • 有效等价类:针对需求来说是有效且有意义的数据构成的集合。
  • 无效等价类:针对需求来说是无效且没有意义的数据构成的集合。

根据等价类划分测试用例的步骤:

  • 确定有效等价类和无效等价类
  • 编写测试用例

举例

需求:姓名可输入6~200位的字符,应该如何来设计测试用例呢?

第一步:确定有效等价类和无效等价类

  • 有效等价类:6~200
  • 无效等价类:小于6大于200

PS:其实在设计时还需要发散性的根据需求考虑更多情况,比如还可以针对字符的类型(数字、字符串、特殊字符)来设计有效等价类和无效等价类,这里只是简单的举例,只考虑长度。

第二步:编写测试用例

在这里插入图片描述

3. 边界值

边界值法通常是对等价类的补充。注意设计边界值测试用例时需要加上:边界值 + 次边界值

还是继续用等价类的例子,这次我们补充上边界值的测试用例:

在这里插入图片描述

4. 判定表法

判定表法的核心是要考虑输入输出之间的组合关系,根据这个这个关系画出判定表然后设计测试用例。

判定表设计测试用例的步骤:

  1. 确定输入条件和输出条件
  2. 找出输入条件和输出条件之间的关系
  3. 画判定表
  4. 根据判定表编写测试用例

举例

需求:订单已提交,且订单总金额大于300元或订单有红包,则认为该订单属于有优惠的订单,否则属于没有优惠的订单。

step1:确定输入条件和输出条件

  • 输入条件:金额大于300元、有红包、订单已提交
  • 输出条件:有优惠、无优惠

step2:找出输入条件和输出条件之间的关系

在这里插入图片描述

step3:画判定表

在这里插入图片描述

step4:根据判定表来编写测试用例

  1. 金额大于300元,没有红包,没有提交订单,结果为无优惠
  2. 金额不大于300元,有红包,没有提交订单,结果为无优惠
  3. 金额不大于300元,没有红包,提交了订单,结果为无优惠
  4. 金额大于300元,有红包,没有提交订单,结果为无优惠
  5. 金额大于300元,没有红包,提交了订单,结果为有优惠
  6. 金额不大于300元,有红包,提交了订单,结果为有优惠
  7. 金额大于300元,有红包,提交了订单,结果为有优惠
  8. 金额不大于300元,没有红包,没有提交订单,结果为无优惠

5. 场景设计法

5.1 简介

现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。该方法可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,是测试用例更容易理解和执行。

典型的应用是是用业务流把各个孤立的功能点串起来,为测试人员建立整体业务感觉,从而避免陷入功能细节忽视业务流程要点的错误倾向。

5.2 基本设计步骤

  • 根据说明,描述出程序的基本流以及各项备选流
  • 根据基本流和各项备选流生成不同的场景
  • 对每一个场景生成相应的测试用例
  • 对生成的所有测试用例重新复审,去掉多余的测试用例
  • 测试用例确定后,对每一个测试用例确定测试数据值

5.3 基本流和备选流

  • 基本流:也叫有效流或正确流,模拟用户正确的业务操作流程。
  • 备选流:也叫无效流或错误流,模拟用户错误的业务操作流程。

5.4 使用场景

主要用来测试软件的业务逻辑和业务流程。一般先采用等价类划分、边界值分析、错误推断法、因果图及判定表法等对单点功能进行验证,验证通过后再采用场景法进行业务流程的验证。

5.5 优缺点

  • 优点:涉及到业务场景,使用场景法有利于测试设计者设计测试用例,使测试用例更容易理解和执行。
  • 缺点:只验证业务流程,不验证单点功能。

5.6 实例

场景介绍

  • 用户进入网上购物系统网站进行购物,选好物品后进行购买。
  • 这时需要使用账号登录,登录成功后付款,交易成功后生成订单,完成此次购物活动。

第一步:分析需求,确定基本流和备选流事件
在这里插入图片描述

第二步:根据基本流和备选流来确定场景
在这里插入图片描述

第三步:设计用例
在这里插入图片描述

第四步:设计测试用例中所需的数据
在这里插入图片描述

6. 错误猜测法

错误猜测法是基于对被测试软件设计的理解、过往经验以及个人直觉,推测出软件可能存在的缺陷,从而去针对性地设计测试用例。

这个方法强调的是对被测试软件的需求理解以及设计实现的细节把握,还有个人的经验和直觉。

错误推测法和目前流行的“探索式测试方法”的基本思想一致,这类方法在敏捷开发模式下的投入产出比很高,被广泛应运于测试。

这个方法的缺点是难以系统化,并且过度依赖个人能力。

以注册为例,我们可以对这个场景直接进行错误猜测,从而设计测试用例:

  1. 校验中特殊字符空格的处理?
  2. 密码校验中的大小写?
  3. 姓名中的特殊字符?
  4. 密码发送是否明文?

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

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

相关文章

网络安全入行?来了解下网络安全从业人员类别及其工作任务

又到了每年重保期间,红蓝双方都开始进行准备蓄势待发,网络安全从业人员每年供不应求,尤其是重保期间,双方都在疯狂的招揽准备网络安全人员。那网络安全从业人员分类到底有哪些,都负责哪些具体的工作任务呢?…

基于云计算技术的B/S架构云HIS 云HIS 云HIS系统

传统的HIS经历了20多年的建设,已经从单机版发展到局域网的版本,更被深入应用到医院的各项业务活动,成为医院必不可缺的基础设施平台,724小时不间断地支撑医院运行。因此医院都十分重视信息化建设。随着医改的不断推进和医疗行业的…

前端路由hash模式以及history模式详解

文章目录 前言一、hash 模式1、hash 定义2、location 对象3、window.onhashchange 事件 二、history 模式1、history 定义2、history API3、window.onpopstate 事件4、解决history模式下页面刷新404问题 前言 在前后端分离的项目中,前端一般使用 SPA 单页面应用模式…

屌的一批,阿里P8推荐的Spring Cloud实战笔记

Spring Cloud 前世今生 Spring Cloud体系由Spring 在2015年年初推出,至今已经五年多,其子项目在不断增加与完善,其所包含的功能点已经基本满足整个微服务体系的需求。加上Spring本身强大的技术后盾和活跃的技术社区氛围,Spring C…

车载毫米波雷达中国市场有望在2025年实现30亿美元的市场规模

近日,专注于前沿科技领域的国际咨询机构ICV发布了全球车载毫米波雷达的市场研究报告,汽车毫米波(mmWave)雷达基于频率为77 GHz的电磁波,具有高精度和准确性,可用于目标检测。这种技术有着广泛的应用&#x…

解决方案丨票据集中在集团总部处理,如何解决实物票据管理难?

目前越来越多的企业都成立了财务共享中心,通过统一财务中心可以进行集中式、标准化、统一化管理,提升财务运营水平与效率、降低企业的整体运作成本、集团战略发展支撑。 如何确保财务共享中心稳健和高效运营,是很多企业建立共享中心后面的难…

【Leetcode每日一刷】动态规划:931. 下降路径最小和

博主简介:努力学习的22级计科生博主主页: 是瑶瑶子啦所属专栏: LeetCode每日一题–进击大厂 目录 一、动态规划套路二、分析1、dp数组含义2、确定递推公式(递推函数的实现)3、dp数组初始化(base case)4、遍历顺序 解题…

React面向组件编程

React面向组件编程 基本理解和使用组件三大核心属性1: state效果理解强烈注意 组件三大核心属性2: props效果理解作用编码操作 组件三大核心属性3: refs与事件处理效果理解编码2.4.4. 事件处理 收集表单数据效果理解 组件的生命周期(重要)效果理解生命周期流程图(旧…

《庖丁解牛Linux内核分析》课后实验:实验一:反汇编分析

实验内容 参照第 1.3 节,将如下 C 语言代码汇编成“.s”文件,并分析“.s”文件中的汇编代码 的执行过程,其中重点关注 EBP/ESP 寄存器、EAX 寄存器、EIP 寄存器和函数调用堆栈空 间在汇编代码的执行过程是如何变化的。 int g(int x) { return…

省钱!NewBing硬核新玩法;手把手教你训练AI模特;用AI替代同事的指南;B站最易上手AI绘画教程 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🤖 『NewBing 的2种硬核新用法』阅读文档并回答问题 & AI绘图 社区同学分享了两种NewBing的新用法,不仅准确高效&#x…

2023年湖北省武汉安全员ABC报名时间考试通过率如何?启程别

2023年湖北省武汉安全员ABC报名时间考试通过率如何?启程别 都2023年了,建筑企业想要报考三类人员,不知道在哪里报名,具备什么样的条件才可以报考建筑安全员abc,什么时间报名考试等等一系列问题,启程别来给你们细细说明…

即时通讯源码自己开发好还是对接云服务好

随着科技的飞速发展,通信技术也日新月异。与此同时,即时通讯应用也越来越受欢迎。许多企业在构建应用程序时会遇到一个问题:使用即时通讯源码自己开发好还是对接云服务好?本文将探讨这两种方法的优缺点,并为您提供一些…

环境配置 | Win10 VSCode连接远程服务器里的docker容器

环境:win10, VS code, 远程服务器Ubuntu16.04(远程服务器上已经安装好了dockers), 1.VScode下载 网址:Download Visual Studio Code - Mac, Linux, Windows 下载后双击运行 2.VSCode上配置 STEP 1.点击vscode右边工具栏点击拓展…

《嵌入式系统的WEB开发》

硬件平台:RK1109/T31/RK3308 软件系统:Linux,Lighttpd/ Nginx, FCGI, HTML/JS 选择使用FCGI,除了使用C 开发调用系统资源方便外. FCGI 可以解决CGI 多入口的问题,统一的入口,对数据同步,都是比…

Python 基于 Django 的学生成绩管理系统,可视化界面(附源码,教程)

1简介 对于学生成绩管理系统,充分运用现代化的信息技术手段,对于学生成绩信息管理发展的趋势就是信息化,信息化时代下的信息管理,需要深化信息管理体制与手段的改革,充分运用信息化手段来全方位的进行学生成绩管理系统…

VTK交互功能-callback/observe模式-vtkCommand

前言:本博文为系列博文,尝试将vtk交互功能讲清楚,包括常用的接口分析、常用的交互逻辑以及常用的交互Widget。若各位小伙伴有需要请多多关注,也希望能给各位小伙伴有所帮助。vtkCommand作为callback/obseve交互模式的基类&#xf…

0201自动配置类的导入-自动装配原理-springboot2.7.x系列

1简介 Spring Boot是基于Spring框架的,它的原理也是基于Spring框架的。 Spring框架是一个非常强大的框架,它提供了一系列的模块来帮助开发人员构建企业级的应用程序。Spring框架的核心是控制反转(Inversion of Control,IoC&…

大数据技术之Spark Streaming概述

前言 数据处理延迟的长短 实时数据处理:毫秒级别离线数据处理:小时 or 天 数据处理的方式 流式(streaming)数据处理批量(batch)数据处理 spark Streaming也是基于sparkCore,所以底层的核心没有变…

FreeRTOS系统学习第一步:新建 FreeRTOS 工程—软件仿真

创建一个FreeRTOS系统工程 1.新建工程文件夹2.Keil新建工程2.1 New Project2.2 Select Device For Target2.3 Manage Run-Time Environment 3. 在 KEIL 工程里面新建文件组3.1在 KEIL 工程里面添加文件 4. 编写 main 函数5. 调试配置5.1 设置软件仿真5.2 修改时钟大小在时钟相关…

你是否线上有使用ThreadLocal,如果结合多线程,请慎用

随着业务的增加,数据量的增加,多线程的使用会越来越频繁,提升单机的处理能力。 前些日子我们线上出现了一个比较严重的故障,这个故障是多线程使用不当引起的,挺有代表性的,所以分享给大家,希望…