当前位置: 首页 > news >正文

测试用例设计方法汇总

等价类

在需求中把功能对应条件找出来

  • 满足条件的为有效等价类
  • 不满足条件的为无效等价类

符合MECE原则:不重不漏

用例设计

  • 一条正向用例尽可能多的覆盖有效等价类
  • 一条反向用例对应一条无效等价类

边界值

如果边界上无问题,那么其他取值有问题的概率较小

  • 内点:取值范围内的点
  • 上点:取值范围边界上的点(不区分开和闭区间)
  • 离点:离边界最近的点,不取边界

用例设计

  • 一条正向用例尽可能多的覆盖有效内点、上点、离点
  • 一条反向用例对应一条无效上点、离点

边界值法是对等价类法的重要补充

【等价类的边界值适用于单一输入的情况,对于多个有逻辑关系的输入的情况不适用】

判定表

适用于复杂的逻辑关系和多种条件组合的情况

  • 条件桩:所有输入条件
  • 条件项:输入条件的取值
  • 动作桩:所有产生动作
  • 动作项:产生动作的取值

核心是遍历,遍历所有输入条件的组合,形式不重要,不一定要画表

举例

  • 条件桩
    • 历史数据 + 新数据
    • 正常流程 + 驳回场景

场景法

适用于业务流程(通过多个操作步骤来实现)

  • 基本流:主流正确的操作流程(只有一个)
  • 备用流:其他操作流程(可以用多个)

场景法只验证业务流程和影响范围,不验证单一功能,单一功能使用等价类/边界值/判定表

核心是遍历,遍历所有场景(不遗漏)(参考数据库枚举最全面、最清晰)

  • 1、遍历列表所有字段是否会受到影响(告知函状态变更,剩余时间未清空)
  • 2、遍历页面所有功能模块是否受到影响(变更记录、流程动态、导入导出、创建/编辑、重置、统计等)
  • 3、遍历变更影响到的其他页面/功能(纯前端跳转、前后端跳转、纯后端接口调用(驳回))

举例

  • 遍历某一状态变更所有的触发动作(控制变量法)(红灯判定)
  • 遍历数据
    • 通过状态
      • 前端页面
      • 数据库(全面、有些页面不显示或容易忽略(待办/已办))
    • 通过是否删除
    • 历史、新建
  • 数据来源是否删除
    • 正常
    • 删除
    • 删除 + 正常(代码只筛选了删除的,导致正常被过滤)
  • 不同系统对同一数据的先后操作场景
    • 正常
    • 异常(从需求层面限制,BO出现重复数据)
  • 移动端兼容
    • 不同的机型(厂商)
    • 不同的操作系统(IOS和安卓)
      • 手势
        • 系统内的返回按钮和操作系统的返回按钮/手势
      • 相机权限
        • IOS和安卓,项目调用相机或者无相机权限的场景
      • 网络
        • 无网
        • 弱网
        • 大文件上传导致的接口超时问题(需做成异步)
    • 不同的屏幕尺寸和分辨率
  • 特殊场景
    • 前端操作是否会导致数据的丢失
    • 人员的变更导致权限的变更
    • 状态更新后前端需实时调用接口
    • 不同用户权限的数据隔离
    • 需改服务器时间(借助单元测试)
    • 外部系统的通信须有重发机制(MQ)
    • 接口的多次调用(前端防抖、后端幂等性)
    • 需考虑是否要性能测试和安全测试

流程法

适用于功能的业务逻辑和实现步骤较多时,可以借助流程图的方式去辅助分析用户场景

因果图【了解】

通过分析输入条件之间的关系以及输入条件和输出之间的关系,从而设计测试用例的方法

正交法【了解】

可以简单理解为是判定表的一种简化方式

错误推测法【了解】

通过经验和直觉去发现程序的错误,包含对开发人员的了解

http://www.lryc.cn/news/576434.html

相关文章:

  • Spring Cloud 微服务(负载均衡策略深度解析)
  • 【力扣 简单 C】121. 买卖股票的最佳时机
  • 基于Pandas和FineBI的昆明职位数据分析与可视化实现(二)- 职位数据清洗与预处理
  • centos指令
  • Java 大视界 -- Java 大数据机器学习模型在金融市场高频交易策略优化与风险控制中的应用(327)
  • 买卖股票的最佳时机 II
  • Python 数据分析:numpy,抽提,整数数组索引
  • AtCoder AT_abc412_c [ABC412C] Giant Domino 题解
  • 《Go语言高级编程》玩转RPC
  • 《HarmonyOSNext应用防崩指南:30秒定位JS Crash的破案手册》
  • vue-28(服务器端渲染(SSR)简介及其优势)
  • 机器学习配置环境
  • C++算法学习专题:双指针
  • Linux离线搭建Redis (centos7)详细操作步骤
  • 在项目中如何巧妙使用缓存
  • SQL 子查询全位置解析:可编写子查询的 7 大子句
  • Flutter基础(路由页面跳转)
  • 布林带的使用
  • 展开说说:Android之ContentProvider源码浅析
  • 【数据结构】map/set模拟实现(红黑树作底层)
  • STM32HAL 旋转编码器教程
  • 1.2 基于蜂鸟E203处理器的完整开发流程
  • Tailwind CSS工作原理
  • 从 “慢如蜗牛” 到 “风驰电掣”:中欧跨境网络专线加速方案
  • 电子电气架构 --- 车载芯片SOC简介
  • 深入解析 Electron 架构:主进程 vs 渲染进程
  • 软测八股--计算机网络
  • AD 学习笔记——第一章 系统的安装及参数设置
  • 鸿蒙HarmonyOS 5小游戏实践:数字记忆挑战(附:源代码)
  • ZooKeeper深度面试指南二