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

黑盒测试案例设计方法的使用(1)

黑盒测试用例的设计是确保软件质量的关键步骤之一。

一、等价类划分法

  1. 定义:把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。

  2. 步骤

    • 充分理解需求。
    • 划分有效等价类和无效等价类。
    • 分别从有效等价类、无效等价类中各抽取其中一个数据进行测试用例设计。
  3. 示例:设计一个注册邮箱的测试用例,要求用户名长度为6~15位。

    • 有效等价类:用户名长度为6位、7位、...、15位。
    • 无效等价类:用户名长度小于6位、大于15位、包含特殊字符等。
    • 测试用例:用户名“user123”(有效)、“u”(无效)、“user123456789012345”(无效,长度超长)、“user@123”(无效,包含特殊字符)。

二、边界值分析法

  1. 定义:对输入或输出的边界值进行测试的一种黑盒测试方法,通常情况下搭配等价类使用,其测试用例来自等价类的边界。

  2. 步骤

    • 充分理解需求。
    • 找边界点,包括上点(边界上的点)、内点(边界内的点)和离点(边界值附近的点)。
    • 针对边界点设计测试用例。
  3. 示例:继续以注册邮箱的用户名长度为例。

    • 边界点:6位(下边界)、7位、...、14位、15位(上边界)。
    • 测试用例:用户名“user123456”(下边界)、“user1234567”(内点之一)、“user123456789012345”(上边界)。

三、错误猜测法

  1. 定义:基于对被测试软件设计的理解、过往经验以及个人直觉,推测出软件可能存在的缺陷,从而针对性地设计测试用例的方法。

  2. 步骤

    • 分析软件需求和设计。
    • 结合过往经验和直觉,猜测可能的错误场景。
    • 针对猜测的错误场景设计测试用例。
  3. 示例:设计一个注册邮箱的测试用例。

    • 猜测错误场景:密码校验中可能不区分大小写。
    • 测试用例:密码“Password123”和“password123”是否被视为不同(根据实际需求判断)。

四、场景设计法

  1. 定义:用“事件流”设计场景测试用例,该方法可以比较生动地描绘出事件触发时的情景,使测试用例更容易理解和执行。

  2. 步骤

    • 充分理解需求。
    • 确定主事件流和次事件流。
    • 根据主事件流和次事件流生成测试用例。
  3. 示例:设计一个ATM机取款的测试用例。

    • 主事件流:插卡→输入密码→选择取款金额→确认取款→取走现金→退卡。
    • 次事件流:密码错误、余额不足、ATM机故障等。
    • 测试用例:正常取款流程、密码错误时的提示和处理、余额不足时的提示和处理等。

http://www.kler.cn/a/397548.html

相关文章:

  • React Native 全栈开发实战班 - 网络与数据之网络请求基础
  • leetcode 扫描线专题 06-leetcode.253 meeting room ii 力扣.253 会议室 II
  • Dubbo 3.x源码(25)—Dubbo服务引用源码(8)notify订阅服务通知更新
  • 03-axios常用的请求方法、axios错误处理
  • The 3rd Universal CupStage 15: Chengdu, November 2-3, 2024(2024ICPC 成都)
  • Ubuntu 18 EDK2 环境编译
  • 【项目开发】Web App vs Native App,开发者作何选择?
  • 【CVPR2024】2024年CVPR的3D 目标检测的综述(还在补充中)
  • Java 异常处理
  • 31.3 XOR压缩和相关的prometheus源码解读
  • MySQL的编程语言
  • 鸿蒙 管理应用拥有的状态有Localstorage、Appstorage、PersistentStorage、Environment、用户首选项、持久化方案。
  • react项目通过http调用后端springboot服务最简单示例
  • 如何在 Ubuntu 上安装 Emby 媒体服务器
  • 【人工智能】迁移学习在深度学习中的应用:用Python实现自定义数据集图像分类
  • 云原生之运维监控实践-使用Telegraf、Prometheus与Grafana实现对InfluxDB服务的监测
  • 【自学笔记】神经网络(2) -- 模型评估和优化
  • ArrayList 源码分析
  • 【鸿蒙开发】第十八章 Media媒体服务(一)
  • 37.超级简易的计算器 C语言
  • SpringBoot使用AspectJ的@Around注解实现AOP全局记录接口:请求日志、响应日志、异常日志
  • 打印1~N
  • PHP正则表达式
  • 【Java SE】lambda 表达式
  • 15分钟学 Go 第 56 天:架构设计基本原则
  • 浪潮服务器(BMC)监控易监测指标解读