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

请添加图片描述
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机取款流程
在这里插入图片描述
在这里插入图片描述
对应的测试用例
在这里插入图片描述

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

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

相关文章

Apache POI与easyExcel:Excel文件导入导出的技术深度分析

在处理Excel文件时,Java开发者经常会面临多种选择,其中Apache POI和easyExcel是两个非常受欢迎的选择。这两个库都提供了强大的Excel文件处理功能,但在性能、内存使用、API设计以及扩展性方面有所不同。本文将深入分析Apache POI和easyExcel在…

Git 实战场景过程(工作总结篇)

目录 前言1. Git远程仓库建立分支,本地未显示1.1 问题所示1.2 知识补充 2. Git暂存内容切换分支2.1 问题所示2.2 知识补充 3. Git放弃修改数据3.1 问题所示3.2 知识补充 4. git merge合并查看差异 前言 主要总结工作中的疑惑点,如果你也有相应的场景&am…

【Linux网络编程一】网络基础1(网络框架)

【Linux网络编程一】网络基础1(网络框架) 一.什么是协议1.通信问题2.协议本质3.网络协议标准 二.协议分层1.为什么协议要分层2.如何具体的分层 三.操作系统OS与网络协议栈的关系1.核心点:网络通信贯穿协议栈 四.局域网中通信的基本原理1.封装…

20.HarmonyOS App(JAVA)表格布局Layout使用方法

ability_main.xml&#xff0c;实现计算器键盘按钮 <?xml version"1.0" encoding"utf-8"?> <TableLayoutxmlns:ohos"http://schemas.huawei.com/res/ohos"ohos:height"match_parent"ohos:width"match_parent"oho…

【Midjourney】新手指南:命令

1./ask 向Midjourney提问&#xff0c;不过问题和回答都是英文的&#xff0c;例如&#xff1a; 2./blend 将两张图片合并为一张 ​ 3./describe 上传一张图片&#xff0c;Midjourney会生成四组该图片相关的关键词&#xff0c;可以使用这些关键词再生成图片。 ​ 4./turbo …

数据结构中的时间复杂度和空间复杂度基础

目录 数据结构 数据结构中的基本名词 数据 数据对象 数据元素 数据项 数据类型 数据对象、数据元素和数据项之间的关系 数据结构及分类 逻辑结构 物理结构 算法 算法的特点 算法设计上的要求 算法效率的衡量 时间复杂度 大O渐进表示法 最坏情况和平均情况 常…

大模型增量预训练新技巧:解决灾难性遗忘

大家好&#xff0c;目前不少开源模型在通用领域具有不错的效果&#xff0c;但由于缺乏领域数据&#xff0c;往往在一些垂直领域中表现不理想&#xff0c;这时就需要增量预训练和微调等方法来提高模型的领域能力。 但在领域数据增量预训练或微调时&#xff0c;很容易出现灾难性…

【开源】基于JAVA+Vue+SpringBoot的河南软件客服系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统管理人员2.2 业务操作人员 三、系统展示四、核心代码4.1 查询客户4.2 新增客户跟进情况4.3 查询客户历史4.4 新增服务派单4.5 新增客户服务费 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的河…

css新手教程

css新手教程 课程&#xff1a;14、盒子模型及边框使用_哔哩哔哩_bilibili 一.什么是CSS 1.什么是CSS Cascading Style Sheet 层叠样式表。 CSS&#xff1a;表现&#xff08;美化网页&#xff09; 字体&#xff0c;颜色&#xff0c;边距&#xff0c;高度&#xff0c;宽度&am…

Node.js-1

Node.js 简介 定义&#xff1a;Node.js 是一个跨平台 JavaScript 运行环境&#xff0c;使开发者可以搭建服务器端的 JavaScript 应用程序 为什么 Node.js 能执行 JS 代码&#xff1a; Chrome 浏览器能执行 JS 代码&#xff0c;依靠的是内核中的 V8引擎&#xff08;即&#x…

【Iot】什么是串口?什么是串口通信?串口通信(串口通讯)原理,常见的串口通信方式有哪些?

串口通信原理 1. 串口2. 串口通信4. 波特率与比特率5. 帧格式3. 串口通讯的通讯协议3.1. RS2323.2. RS485 总结 1. 串口 串行接口简称串口&#xff0c;也称串行通信接口或串行通讯接口&#xff08;通常指COM接口&#xff09;&#xff0c;是采用串行通信方式的扩展接口。 串口可…

python二维高斯热力图绘制简单的思路代码

import numpy as np import matplotlib.pyplot as plt from scipy.ndimage import gaussian_filter import cv2# 生成一个示例图像 image_size 100 image np.zeros((image_size, image_size))# 在图像中心创建一个高亮区域 center_x, center_y image_size // 2, image_size …

[工具探索]Safari 和 Google Chrome 浏览器内核差异

最近有些Vue3的项目&#xff0c;使用了safari进行测试环境搞开发&#xff0c;发现页面存在不同程序的页面乱码情况&#xff0c;反而google浏览器没问题&#xff0c;下面我们就对比下他们之间的差异点&#xff1a; 日常开发google chrome占多数&#xff1b;现在主流浏览器 Goog…

【LeetCode: 292. Nim 游戏+ 博弈问题】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

MagicVideo-V2:多阶段高保真视频生成框架

本项工作介绍了MagicVideo-V2&#xff0c;将文本到图像模型、视频运动生成器、参考图像embedding模块和帧内插模块集成到端到端的视频生成流程中。由于这些架构设计的好处&#xff0c;MagicVideo-V2能够生成具有极高保真度和流畅度的美观高分辨率视频。通过大规模用户评估&…

(bean配置类的注解开发)学习Spring的第十三天

bean配置类的注解开发 问题提出 用类充当配置文件 applicationcontext.xml : Configuration注解标识此类为配置类,替代原有xml文件 看原配置文件applicationcontext.xml代码 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http:/…

cesium-水平测距

cesium测量两点间的距离 <template><div id"cesiumContainer" style"height: 100vh;"></div><div id"toolbar" style"position: fixed;top:20px;left:220px;"><el-breadcrumb><el-breadcrumb-item&…

Qt实现类似ToDesk顶层窗口 不规则按钮

先看效果&#xff1a; 在进行多进程开发时&#xff0c;可能会遇到需要进行全局弹窗的需求。 因为平时会使用ToDesk进行远程桌面控制&#xff0c;在电脑被控时&#xff0c;ToDesk会在右下角进行一个顶层窗口的提示&#xff0c;效果如下&#xff1a; 其实要实现顶层窗口&#xf…

【ELK】logstash快速入门

1.概述 1.1.什么是logstash&#xff1f; 之前我们聊了es&#xff0c;并且用docker搭建了一个eskibana的环境。es目前最普遍的用法是用来存储日志的&#xff0c;然后结合kibana对日志做一些可视化的工作。既然要收集日志&#xff0c;就面临着一个问题&#xff1a; 各个系统的…

如何保证MySQL和Redis中的数据一致性?

文章目录 前言一、缓存案例1.1 缓存常见用法1.2 缓存不一致产生的原因 二、解决方案2.1 先删除缓存&#xff0c;再更新数据库2.2 先更新数据库&#xff0c;删除缓存2.3 只更新缓存&#xff0c;由缓存自己同步更新数据库2.4 只更新缓存&#xff0c;由缓存自己异步更新数据库2.5 …