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

文章目录

  • 一. 针对没有需求的案例来设计测试用例
  • 二. 针对有需求的案例来设计测试用例
    • 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. 密码发送是否明文?

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深度强化学习——蒙特卡洛算法(6)

注:本章的内容作为补充插曲,大家可以选看,不过还是建议把最后一个使用蒙特卡洛近似求期望稍微看一下 蒙特卡洛是一大堆随机算法,通过随机样本来估算真实值 使用随机样本来近似Π 1、在[a,b]做随机均匀抽样,抽出n个样…

YOLO物体检测系列1.经典方法概述及评价指标体现

1. 深度学习经典检测方法: two-stage(两阶段): Faster-rcnn Mask-RCNN系列 one-stage(单阶段):Yolo系列 两阶段:一阶段实现RPN候选区域预选 二阶段基于候选区域再进行检测回归分类任务 单阶段:一个CNN卷积网络实现检测…

C++线程的简单学习及了解

此篇文章只是线程的简单了解。 文章目录 前言一、线程的优缺点二、C线程库 1.thread类的简单介绍2.线程函数参数总结 前言 什么是线程? 在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控…

day3 TCP/IP协议与五层体系结构

TCP / IP 四层体系结构 TCP / IP工作流程: 现在互联网使用的 TCP/IP 体系结构已经发生了演变,即某些应用程序可以直接使用 IP 层,或甚至直接使用最下面的网络接口层。 沙漏型展示: 五层体系结构 各层的主要功能 应用层&#xff1…

搭建外网minecraft服务器方案

很多minecraft服务器主都想自己搭建一个外网可以访问的minecraft服务器,在没有外网IP的情况下,一般都是使用Logmein Hamachi方案。这种方案有它的弊端,需要客户机安装Hamachi,十分不方便。另外,免费版只支持5人&#x…

mysql如何加行锁

一、概述 InnoDB 引擎是支持行级锁的,而 MyISAM 引擎并不支持行级锁,所以后面的内容都是基于 InnoDB 引擎的。当我们使用delete、update进行数据库删除、更新的时候,数据库会自动加上行锁。但是,行锁有时也会失效。 数据库版本&a…

笔记:计算机网络体系结构(OSI七层模型、TCP/IP五层协议)

计算机网络体系结构 计算机网络是一个复杂的、具有综合性技术的系统,它由计算机系统、通信处理机、通信线路和通信设备、操作系统以及网络协议等组成。为了更好地描述计算机网络结构,使计算机网络系统有条不紊地处理工作,需要定义一种较好的…

CH9121网络串口透传应用

概述 随着物联网技术的普及,越来越多的传统设备出现联网功能需求。串口作为使用较为广泛的一种通信接口,串口转以太网,进行远程数据传输需求逐渐显现出来。CH9121内部集成TCP/IP协议栈,无需编程,即可轻松实现网络数据…

【SWAT水文模型】SWAT水文模型建立及应用第二期:土地利用数据的准备

SWAT水文模型建立及应用:土地利用数据的准备 1 简介2 土地利用数据的下载2.1 数据下载方式2.1.1 中科院1km土地利用数据2.1.2 清华大学高精度土地利用数据 2.2 数据下载 3 土地利用数据的准备3.1 矢量转栅格3.2 土地利用类型的重分类3.3 土地利用分布图投影调整3.4 …

【LeetCode】213. 打家劫舍 II

213. 打家劫舍 II(中等) 思路 这道题是 198.打家劫舍 的拓展版,区别在于:本题的房间是环形排列,而198.题中的房间是单排排列。 将房间环形排列,意味着第一间房间和最后一间房间不能同时盗窃,因…

EPIT定时器实验(一)

EPIT定时器简介 EPIT:Enhanced Periodic Interrupt Timer,直译就是增强的周期中断定时器,它主要完成周期性中断定时的。 STM32里面的定时器有很多其它功能,比如输入捕获、PWM输出等,但是I.MX6U的的EPIT定时器只是完成…

【五一创作】数据可视化之美 ( 三 ) - 动图展示 ( Python Matlab )

1 Introduction 在我们科研学习、工作生产中,将数据完美展现出来尤为重要。 数据可视化是以数据为视角,探索世界。我们真正想要的是 — 数据视觉,以数据为工具,以可视化为手段,目的是描述真实,探索世界。 …

CSS布局之圣杯布局/双飞翼布局

📝个人主页:爱吃炫迈 💌系列专栏:HTMLCSS 🧑‍💻座右铭:道阻且长,行则将至💗 文章目录 圣杯布局HTML代码步骤CSS代码 双飞翼布局HTML代码步骤CSS代码 小结 圣杯布局 HTM…

Java --- springboot2的静态资源配置原理

目录 一、静态资源配置原理 1.1、配置类只有一个有参构造器 1.2、资源处理的默认规则 1.3、欢迎页的处理规则 一、静态资源配置原理 springboot启动默认加载xxxAutoConfiguration(自动配置) springmvc功能的自动配置类,生效 Configuration(proxyBeanMethods …

《编码——隐匿在计算机软硬件背后的语言》精炼——第13-14章(二进制减法器——1位存储器)

“成功不是最终的,失败不是致命的,勇气才是最关键的。” - 温斯顿丘吉尔 文章目录 如何实现减法计算机进行减法运算的逻辑借位的代替机制二进制下的替代机制 减法的电路实现 反馈与触发器电铃触发器R-S触发器 电平触发的D型触发器 如何实现减法 计算机进…

霍兰德人格分析雷达图

雷达图 Radar Chart 雷达图是多特性直观展示的重要方式 问题分析 霍兰德认为:人格兴趣与职业之间应有一种内在的对应关系 人格分类:研究型、艺术型、社会型、企业型、传统型、现实性 职业:工程师、实验员、艺术家、推销员、记事员、社会工…

1992-2022年31省人均gdp/各省人均地区生产总值

1992-2022年31省人均gdp/各省人均地区生产总值 1、时间:1992-2022年 2、来源:国家统计J、各省NJ 3、范围:包括31省 4、缺失情况说明:无缺失 5、指标包括:各省人均GDP/省人均地区生产总值 6、指标解释&#xff1a…

五一劳动节前 特辑 ,路上那些车不能碰 你赔不起系列

相信明天大家4月29日都上了高速,都奔赴自己今年第一个想去的地方,那么上了高速,见的车辆就多了,哪些车辆我们要明白,尽量不要去碰,或者看见进行 技术性躲避,因为碰一下,半套房没了&a…

Vue3超详细的ref()用法,看这一篇就够了

ref()接受一个内部值,返回一个响应式的、可更改的 ref 对象,此对象只有一个指向其内部值的属性 .value。 ref() 将传入参数的值包装为一个带 .value 属性的 ref 对象。 1、ref 对象是可更改的,即可以为 .value 赋予新的值 举例: c…

【chatgpt】学习开源项目chatgpt-web,搭建自己的chatgpt服务,功能非常丰富有打字效果

目录 前言1,开源的chatgpt项目2,项目可以直接使用docker-compose跑起来3,关于打字模式SSE, octet-stream (打字特效)4,关于内容存储5,总结 前言 本文的原文连接是: https://blog.csd…