news 2026/4/16 15:43:53

设计测试用例的核心原则- 针对输入范围:取边界值及刚超越边界的值(如最小值、最大值、略小于最小值、略大于最大值)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
设计测试用例的核心原则- 针对输入范围:取边界值及刚超越边界的值(如最小值、最大值、略小于最小值、略大于最大值)

一、黑盒测试方法

  1. 边界值法
    设计测试用例的核心原则:
  • 针对输入范围:取边界值及刚超越边界的值(如最小值、最大值、略小于最小值、略大于最大值);
  • 针对输入个数:取最大/最小个数、个数 ±1 的值(如允许输入 1~5 个数,则测试 0、1、2、4、5、6 个);
  • 针对输出条件:复用上述规则,分析可能的输出边界;
  • 针对有序集合:取第一个、最后一个元素,以及越界访问情况;
  • 针对内部数据结构:选其边界值(如数组上限、栈满/空等);
  • 分析规格说明,补充其他隐含边界条件(如时间边界、性能阈值)。
  1. 错误推测法
    基于测试人员的经验和直觉,推测程序中可能存在的典型错误,例如:
  • 空输入、空指针、null 值处理;
  • 除零、溢出、类型不匹配;
  • 异常流程未处理(如网络中断、文件不存在);
  • 特殊字符或超长字符串输入。
    针对这些“常见坑”设计测试用例,提高发现缺陷的概率。
  1. 因果图法
    适用于多种输入条件组合影响输出的场景,步骤如下:
  • 明确规格说明中的“因”(输入条件)和“果”(输出动作或状态);
  • 绘制因果图,使用逻辑关系(与、或、非)连接因与果;
  • 标注约束条件(E:互斥、I:包含、O:唯一、R:要求等),排除非法组合;
  • 将因果图转换为判定表(每一列表示一种输入组合及其对应输出);
  • 为判定表中的每一列设计一个测试用例。
    优点是能系统化减少冗余用例,提升覆盖率。

二、白盒测试方法
又称“结构测试”或“逻辑驱动测试”,关注程序内部结构和代码实现,主要方法包括:

  1. 逻辑覆盖
    按覆盖程度由低到高可分为:
  • 语句覆盖:每条语句至少执行一次;
  • 判定覆盖(分支覆盖):每个判断的真假分支至少各执行一次;
  • 条件覆盖:每个条件的可能取值(真/假)都至少出现一次;
  • 判定/条件覆盖:同时满足判定覆盖和条件覆盖;
  • 条件组合覆盖:所有条件的可能组合都至少执行一次;
  • 路径覆盖:程序中的每一条执行路径都至少走一遍(理想但复杂度高)。
  1. 循环覆盖
    专门针对循环结构设计测试用例,考虑以下情况:
  • 零次循环(跳过循环);
  • 一次循环(执行一次后退出);
  • 典型次数循环(如中间值);
  • 最大次数循环;
  • 超过最大次数(验证边界控制)。
  1. 基本路径测试
    基于程序的控制流图,计算圈复杂度(Cyclomatic Complexity),确定最少独立路径数:
  • 圈复杂度 V(G) = 边数 - 节点数 + 2(或判定节点数 + 1);
  • 每条独立路径构成一个测试用例;
  • 确保所有可执行语句都被覆盖,且控制结构被充分验证。

该方法有助于系统性地识别程序中的关键执行路径,提升测试完整性。

在实际项目中,边界值分析法等价类划分法常结合使用,以提高测试用例的覆盖率与效率。两者互补性强:等价类划分减少冗余输入,聚焦代表性数据;边界值法则强化对临界点的验证,捕捉易错区域。

一、方法结合的基本思路:

  1. 先划分等价类:将输入域划分为有效等价类和无效等价类;
  2. 再在每类中选取边界值:尤其关注有效类的边界及相邻无效类的边界点;
  3. 合并测试用例:尽量让一个测试用例覆盖多个设计原则(如同时覆盖边界+无效类);
  4. 优先级排序:边界附近的用例优先执行,因缺陷高发。

二、实例说明:用户注册年龄输入框(要求:18 ≤ 年龄 ≤ 60)

第一步:等价类划分
类别描述
有效等价类年龄在 [18, 60] 范围内
无效等价类1年龄 < 18
无效等价类2年龄 > 60
无效等价类3非数字输入(如字母、符号)
无效等价类4空输入
第二步:应用边界值法

重点关注边界点及其邻近值:

  • 下边界附近:17(刚小于最小)、18(最小值)、19(刚大于最小)
  • 上边界附近:59(刚小于最大)、60(最大值)、61(刚超过最大)
第三步:设计综合测试用例
测试编号输入值所属等价类边界特性预期结果
TC118有效等价类下边界成功提交
TC260有效等价类上边界成功提交
TC317无效等价类1刚低于下界提示“年龄不足”
TC461无效等价类2刚高于上界提示“年龄超限”
TC519有效等价类边界内邻近值成功提交
TC659有效等价类边界内邻近值成功提交
TC7“”无效等价类4空输入提示“请输入年龄”
TC8abc无效等价类3非法类型提示“请输入有效数字”

优势体现

  • TC3 同时属于“无效等价类”且是“边界外值”,一举两得;
  • TC1 和 TC2 兼顾了有效类代表性和边界测试;
  • 减少了穷举所有可能值的需求,仅需关键点即可高效覆盖。

三、最佳实践建议:

  1. 优先处理数值型输入:适用于范围明确的字段(如金额、数量、年龄、日期等);
  2. 多维输入时组合使用:若多个参数均有范围,可先单变量分析边界+等价类,再考虑组合;
  3. 配合错误推测法补充异常场景:如负数、极大数据、特殊字符等;
  4. 自动化测试中复用模板:建立“边界+等价类”用例生成规则库,提升回归测试效率。

通过这种结合方式,既能系统化地减少测试用例数量,又能精准定位高风险区域,显著提升黑盒测试的有效性与经济性。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 14:51:44

【计算机毕业设计案例】基于python_CNN机器学习卷积神经网络识别花卉基于python_CNN卷积神经网络识别花卉

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/16 14:22:10

深度学习计算机毕设之基于机器学习python_CNN卷积神经网络识别花卉基于python_CNN卷积神经网络识别花卉

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/16 4:58:10

写论文找不到外国文献?方法合集来了!

刚开始做科研的时候&#xff0c;我一直以为&#xff1a; 文献检索就是在知网、Google Scholar 里反复换关键词。 直到后来才意识到&#xff0c;真正消耗精力的不是“搜不到”&#xff0c;而是—— 你根本不知道最近这个领域发生了什么。 生成式 AI 出现之后&#xff0c;学术检…

作者头像 李华
网站建设 2026/4/16 14:51:03

《创业之路》-853- 商业模式创新、技术创新的比较?

商业模式创新与技术创新是企业实现竞争优势和价值增长的两大核心驱动力。它们常常并行发生&#xff0c;有时相互促进&#xff0c;但本质不同、路径各异。理解两者的异同、适用场景与协同关系&#xff0c;对企业家、投资者和管理者至关重要。一、基本定义概念定义商业模式创新&a…

作者头像 李华
网站建设 2026/4/16 14:25:58

电鱼智能 AM3354 驱动巡检履带机器人的高可靠运动底盘控制

什么是 电鱼智能 AM3354&#xff1f;电鱼智能 AM3354 是一款经典的工业级核心板&#xff0c;搭载 TI Sitara AM335x 处理器。它最大的杀手锏不是 CPU 主频&#xff0c;而是内置了 2 个 PRU-ICSS&#xff08;可编程实时单元&#xff09;。这两个 200MHz 的 RISC 核心独立于主 CP…

作者头像 李华
网站建设 2026/4/16 14:33:12

运动控制告别单一 MCU,升级 电鱼智能 AM3354 提升多轴联动精度

什么是 电鱼智能 AM3354&#xff1f;电鱼智能 AM3354 是一款基于 TI Sitara AM335x (Cortex-A8) 的工业级核心板。它最独特的“黑科技”在于集成了 2 个 PRU-ICSS 子系统。每个 PRU 都是一个主频 200MHz 的 32 位 RISC 核心&#xff0c;拥有独立的指令存储器和 I/O 接口。它不运…

作者头像 李华