软件测试学习笔记-测试用例的编写

请添加图片描述
7中测试分类
按照阶段可划分单元测试、集成测试、系统测试、验收测试。代码可见度划分黑盒测试、灰盒测试、白盒测试
单元测试:针对源代码的测试
集成测试:针对接口进行测试
系统测试:针对功能和非功能的测试
验收测试:公测、内测
黑盒测试:不关注源代码针对功能测试 如系统测试
白盒测试:针对源代码进行测试 如:单元测试
灰盒测试:针对接口进行测试 如:集成测试


测试流程的6个步骤:
1.需求评审、2. 测试计划、3. 用例设计、4. 用例执行、5. 缺陷管理、6. 测试报告

文章目录

        • 测试用例
          • 1. 等价类划分法(应对穷举场景)
          • 2. 边界值分析法(限定边界规则)
          • 3. 判断表法
          • 4. 场景法

测试用例

8个组成部分
测试编号 项目_模块_编号
测试标题 预期结果(测试点) 比如 登录失败(账号为空)
项目/模块
优先级 表示用例的重要程序或者影响力p0~p4(p0最高)用户使用最多的功能 p0
前置条件
测试步骤
测试数据
预期结果

1. 等价类划分法(应对穷举场景)
  1. 明确需求
  2. 划分有效和无效等价
  3. 设计数据编写用例

例子:验证QQ账号合法
需求:6~10位自然数
从位数上分为:
有效:8位自然数
无效:5位、11位自然数

其他:
无效:8位非自然数、空
测试用例为:

测试编号测试标题项目/模块优先级前置条件测试数据测试步骤预期结果
qq_001QQ合法(8位自然数)qq账号p0打开QQ验证程序账号:123456781. 输入QQ账号
2.点击验证
QQ合法
qq_002QQ不合法(5位自然数)qq账号p1打开QQ验证程序账号:123451. 输入QQ账号
2.点击验证
QQ不合法
qq_003QQ不合法(11位自然数)qq账号p1打开QQ验证程序账号:123456789101. 输入QQ账号
2.点击验证
QQ不合法
qq_004QQ不合法(8位非自然数)qq账号p1打开QQ验证程序账号:1234567a1. 输入QQ账号
2.点击验证
QQ不合法
qq_005QQ不合法(空)qq账号p1打开QQ验证程序账号:空1. 输入QQ账号
2.点击验证
QQ不合法

例子:电话号码的正确性
需求:

  1. 区号:空或者三位数字
  2. 前缀码:非“0”且非“1”开头的三位数字
  3. 后缀码:四位数字

请添加图片描述
对应的测试用例如下:

测试编号测试标题项目/模块优先级前置条件测试数据测试步骤预期结果
电话_001电话号码合法(区号为空+其他正常)电话号码p0打开电话号码验证程序区号:空 前缀:234 后缀:12341. 输入区号 2. 输入前缀 3.输入后缀 4. 点击验证电话号码合法
电话_002电话号码合法(区号为三位数字+其他正常)电话号码p0打开电话号码验证程序区号:123 前缀:234 后缀:12341. 输入区号 2. 输入前缀 3.输入后缀 4. 点击验证电话号码合法
电话_003电话号码不合法(区号为非三位数字+其他正常)电话号码p1打开电话号码验证程序区号:1234 前缀:234 后缀:12341. 输入区号 2. 输入前缀 3.输入后缀 4. 点击验证电话号码不合法
电话_004电话号码不合法(前缀为非0且非1开头的非三位数字+其他正常)电话号码p1打开电话号码验证程序区号:123 前缀:2345 后缀:12341. 输入区号 2. 输入前缀 3.输入后缀 4. 点击验证电话号码不合法
电话_005电话号码不合法(后缀为非四位数字+其他正常)电话号码p1打开电话号码验证程序区号:123 前缀:234 后缀:2341. 输入区号 2. 输入前缀 3.输入后缀 4. 点击验证电话号码不合法
电话_006电话号码不合法(区号为非数字+其他正常)电话号码p1打开电话号码验证程序区号:12a 前缀:234 后缀:12341. 输入区号 2. 输入前缀 3.输入后缀 4. 点击验证电话号码不合法
电话_007电话号码不合法(前缀为非数字+其他正常)电话号码p1打开电话号码验证程序区号:123 前缀:23a 后缀:12341. 输入区号 2. 输入前缀 3.输入后缀 4. 点击验证电话号码不合法
电话_008电话号码不合法(后缀为非数字+其他正常)电话号码p1打开电话号码验证程序区号:123 前缀:234 后缀:123a1. 输入区号 2. 输入前缀 3.输入后缀 4. 点击验证电话号码不合法
电话_009电话号码不合法(前缀以0开头+其他正常)电话号码p1打开电话号码验证程序区号:123 前缀:023 后缀:12341. 输入区号 2. 输入前缀 3.输入后缀 4. 点击验证电话号码不合法
电话_010电话号码不合法(前缀以1开头+其他正常)电话号码p1打开电话号码验证程序区号:123 前缀:123 后缀:12341. 输入区号 2. 输入前缀 3.输入后缀 4. 点击验证电话号码不合法

使用场景:需要大量测试数据输入,但是没法穷举测试的地方

  • 输入框
  • 下拉列表
  • 单选复选框
2. 边界值分析法(限定边界规则)

解决边界值位数限制问题
选取正好等于、刚好大于、刚好小于边界的值作为测试数据
上点:边界上的点(正好等于)
离点:距离上点最近的点(刚好大于、刚好小于)
内点:范围内的点(区间范围内的数据)
最多:7点(不考虑类型,按照位数)

步骤:

  1. 明确需求
  2. 确定有效和无效等价类(只考虑类型)
  3. 确定边界范围值
  4. 提取数据编写测试用例

例子:
需求:通过边界值法验证标题长度的合法性。
要求:标题长度大于0,小于等于30个字符

有效:长度大于0小于或等于30的字符
无效:长度大于0小于或等于30的数字
上点:0,30
离点:-1,1,29,31
内点:15

总共7种,长度没有为-1的,且内点为15和有效重复
在这里插入图片描述
优化:离点–>考虑开闭区间,开区间选择内部离点,闭区间选择外部离点

使用场景:

  1. 在等价类的基础上针对有边界范围的测试数据输入的地方(重点关注边界)
  2. 常见词语描述:大小、尺寸、重量、最大、最小、至多、至少等修饰词语
  3. 典型代表:有边界范围的输入框类测试
3. 判断表法

场景:多条件有依赖关系
是一种以表格形式表示多条件逻辑判断的工具
组成:

  1. 条件桩:列出问题中的所有条件,列出条件的次序无关紧要
  2. 动作桩:列出问题中可能采取的操作,操作的排列顺序没有约束
  3. 条件项:列出条件对应的取值,所有可能情况下的真假值
  4. 动作项:列出条件项的、各种取值情况下应该采取的动作结果

例子:验证”若用户欠费或者关机,则不允许主被叫“功能的测试
在这里插入图片描述

规则:

  1. 判断表中贯穿条件项和动作项的一列就是一条规则
  2. 假设有n个条件,每个条件的取值有两个,全部组合为2的n次方种规则

步骤:

  1. 明确需求
  2. 画出判定表
    1) 列出条件桩和动作桩
    2)填写条件项,对条件进行全组合
    3)根据条件项和组合确定动作项
    4)简化、合并相似规则(有相同动作)
  3. 根据规则编写测试用例

例子1:
在这里插入图片描述
条件桩:金额是否大于500、是否过期
动作项:发出批准单和提货单、发出通知单
在这里插入图片描述
测试用例:

测试编号测试标题项目/模块优先级前置条件测试数据测试步骤预期结果
order_001发通知单(金额大于500,过期)订单p0打开订单验证程序1. 金额:600 2.是否过期:是1. 输入金额 2. 输入是否过期 3. 点击验证发通知单,不发批准单和提货单
order_002发批准单和提货单(金额大于500,没有过期)订单p0打开订单验证程序1. 金额:600 2.是否过期:否1. 输入金额 2. 输入是否过期 3. 点击验证不发通知单,发批准单和提货单
order_003发批准单和提货单、通知单(金额小于500,过期)订单p0打开订单验证程序1. 金额:400 2.是否过期:是1. 输入金额 2. 输入是否过期 3. 点击验证发通知单,发批准单和提货单
order_004发批准单和提货单(金额小于500,没有过期)订单p0打开订单验证程序1. 金额:400 2.是否过期:否1. 输入金额 2. 输入是否过期 3. 点击验证不发通知单,发批准单和提货单

例子2:
文件修改规则
在这里插入图片描述
条件桩:第一列为A或者B、第二列是数字
动作桩:给出信息L、给出信息M、修改文件成功
在这里插入图片描述

4. 场景法

使用标准图和箭头来表达程序或业务的走向(流程图)
先测试业务,再测试单功能,单模块,单页面
在这里插入图片描述
例子:ATM机取款流程
在这里插入图片描述
在这里插入图片描述
对应的测试用例
在这里插入图片描述

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

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

相关文章

中科方德桌面操作系统的安装方法

原文链接:中科方德桌面操作系统的安装方法 大家好!继我们之前介绍了如何在VMware Workstation上安装统信UOS、麒麟OS及麒麟信安操作系统之后,今天我为大家带来一篇全新的教程——在VMware Workstation上安装中科方德桌面操作系统的详细步骤。…

《云原生安全攻防》-- 容器安全风险分析

在本节课程中,我们将提供一个全面的视角,来深入探讨容器环境下的安全风险,帮忙大家建立起容器环境下安全风险的整体认知。 在这个课程中,我们将学习以下内容: 容器技术概述:什么是容器技术以及它解决了什么…

task2:Verilog编写的设计模块在模块内部直接调用task

Verilog编写的设计模块在模块内部直接调用task 1,概念2,模块设计2.1,RTL设计2.2,tb测试代码2.3,sim仿真输出 参考文献: 1,练习七-在Verilog中使用任务task 1,概念 在模块设计中&…

【Docker进阶】镜像制作-用快照制作Docker镜像

进阶一 docker镜像制作 文章目录 进阶一 docker镜像制作1. 镜像制作及原因2. Docker镜像制作的方式3. 快照制作镜像 1. 镜像制作及原因 镜像制作是因为某种需求,官方的镜像无法满足需求,需要我们通过一定手段来自定义镜像来满足要求。 制作镜像往往有…

STM32--SPI通信协议(2)W25Q64简介

一、W25Q64简介 1、W25Qxx中的xx是不同的数字,表示了这个芯片不同的存储容量; 2、存储器分为易失性与非易失性,主要区别是存储的数据是否是掉电不丢失: 易失性存储器:SRAM、DRAM; 非易失性存储器&#xff…

0基础学习VR全景平台篇第141篇:如何制作卫星航拍全景

大家好,欢迎观看蛙色官方系列全景摄影课程! 很多人都看过或者拍摄过航拍全景,其效果相比于普通的地拍的确有着更加震撼的拍摄效果,但是受限于无人机高度,以及禁飞区等等限制,导致很多大场景无法展示完全&a…

DS18B20温度传感器

文章目录 一、介绍DS18B20了解DS18B20引脚及电路图内部结构框图存储器结构单总线(1 wire bus)介绍单总线电路规范单总线时序结构初始化发送一个数据接收一位数据发送一个字节与接收一个字节 DS18B20操作流程所要使用的数据帧温度存储格式 二、实现温度检…

大数据信用报告在线查询平台哪个好?

随着大数据技术在金融风控的运用,大数据信用越来越被人熟知,由于线下没有查询大数据信用的地方,想要查询大数据信用报告只有在线上查询,那大数据信用报告在线查询平台哪个好呢?本文贷你一起去了解市面上比较好的三个平台。 大数据…

风控安全产品系统设计

风控业务架构 我把风控业务架构的分层分为6层,分别是组件层、业务层、决策层、能力层、计算层、可视层。 以下基建为基础安全产品的简称。 组件层 组件层的职责是:数据收集与行为反制。 从接口、设备、行为三个维度进行数据收集,接收决策层的指令进行行为反制。为了保证…

Alt + TAB 禁止在 Edge 标签页之间切换

(原文:https://blog.iyatt.com/?p13587 ) 浏览器标签页之间切换可以用 {Ctrl}{Tab} 或者 {Ctrl}{数字}精准到标签页码,结果 Windows 11 默认把 Edge 标签页切换混入了 {Alt}{Tab} 前台应用窗口切换,经常不注意是在 Ed…

深入Spring MVC的工作流程

深入Spring MVC的工作流程 在Spring MVC的面试问题中,常常被询问到的一个问题。Spring MVC的程序中,HTTP请求是如何从开始到结束被处理的。为了研究这个问题,我们将需要深入学习一下Spring MVC框架的核心过程和工作流程。 1. 启动请求生命周…

CMake生成osg的FFMPEG插件及Windows下不生成VS工程问题解决

在Windows下,如何利用CMake生成osg的FFMPEG插件,请参考如下博文,同生成jpeg插件类似: osg第三方插件的编译方法(以jpeg插件来讲解)。 如下为生成FFMPEG时必要的设置: 注意: 一定要…

一篇文章了解系统眼中的键盘--以一个简单的系统分析从按键的输入到字符的显示

键盘输入 实现使用的设备 intel架构32位CPU, 思路为嵌入式系统工程师,使用的操作系统是《30天自制操作系统》里面的系统进行讲解 硬件实现 按键 使用单片机等的引脚可以获取电平状态从而获得按键的状态(单片机是一种集成到一块硅片上构成的一个小而完善的微型计算机系统, 用…

QT研究笔记(一)windows 开发环境安装部署

一、Qt 是什么? Qt 是一个跨平台的应用程序开发框架,最初由挪威的 Trolltech 公司开发,并于2008年被诺基亚收购。后来,Qt 框架由 Digia 公司接手,并在2012年成立了 The Qt Company。Qt 提供了一套丰富的工具和类库&am…

快速了解线程池

文章目录 一. 线程池初了解1. 什么是线程池2. 使用线程池的好处 二. 线程池再了解1. ThreadPoolExecutor类的重要配置2. 线程池的工作流程3. 使用Java标准库创建线程 三. 模拟实现简易线程池 一. 线程池初了解 1. 什么是线程池 线程池是一种采用池化思想(同理还有…

由vscode自动升级导致的“终端可以ssh服务器,但是vscode无法连接服务器”

问题描述 简单来说就是,ssh配置没动,前两天还可以用vscode连接服务器,今天突然就连不上了,但是用本地终端ssh可以顺利连接。 连接情况 我的ssh配置如下: Host gpu3HostName aaaUser zwx现在直接在终端中进行ssh&am…

[Python] 什么是KMeans聚类算法以及scikit-learn中的KMeans使用案例

什么是无监督学习? 无监督学习是机器学习中的一种方法,其主要目的是从无标签的数据集中发现隐藏的模式、结构或者规律。在无监督学习中,算法不依赖于任何先验的标签信息,而是根据数据本身的特征和规律进行学习和推断。无监督学习…

重写Sylar基于协程的服务器(6、HOOK模块的设计)

重写Sylar基于协程的服务器(6、HOOK模块的设计) 重写Sylar基于协程的服务器系列: 重写Sylar基于协程的服务器(0、搭建开发环境以及项目框架 || 下载编译简化版Sylar) 重写Sylar基于协程的服务器(1、日志模…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之MenuItemGroup组件

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之MenuItemGroup组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、MenuItemGroup组件 该组件用来展示菜单MenuItem的分组。 子组件 无 接…

项目中使用sonar扫码代码

1.在maven的settings.xml配置 org.sonarsource.scanner.maven <profiles> <profile><id>sonar</id><activation><activeByDefault>true</activeByDefault></activation><properties><!-- Optional URL to server. D…