news 2026/4/18 13:47:02

*边值分析**:聚焦输入域边界,选取边界值及其邻近值

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
*边值分析**:聚焦输入域边界,选取边界值及其邻近值

测试用例示例如三角形判定通过输入三边 a、b、c 判断三角形类型,其设计逻辑体现了对正常与异常场景的全面覆盖。正常情况包括等边(a=b=c)、等腰(a=b≠c 等)、不等边(a≠b≠c)三角形;而异常和边界情况则测试非法输入,如边长为负数、零、非整数、超出范围(如大于100或小于1)等,确保程序鲁棒性。

在测试用例设计方法中:

  1. 边值分析:聚焦输入域边界,选取边界值及其邻近值(如最小值-1、最小值、最小值+1,最大值-1、最大值、最大值+1)。例如三角形边长范围为 [1,100],则测试 0、1、2 和 99、100、101 等组合。
  2. 错误推测:基于经验猜测常见错误,如未判断边长是否为正、未验证三角形成立条件(任意两边之和大于第三边),从而设计能暴露这些问题的用例。
  3. 因果图:将输入条件(如“三边相等”“两边相等”“边为负”)作为“因”,输出结果(如“等边三角形”“非法输入”)作为“果”,构建逻辑关系图,导出所有有效输入组合,避免遗漏。
  4. 等价类划分:将输入划分为有效类(如合法边长)和无效类(如负数、超范围、非数字),从每类中选代表值进行测试。

该内容采用“实例 + 方法论”结构,以三角形问题为载体,直观展示如何结合多种黑盒测试技术系统化设计测试用例,尤其强调对边界与异常情形的充分覆盖,提升测试有效性。
使用等价类划分法为三角形判定程序设计测试用例时,首先将所有可能的输入数据划分为若干“等价类”,每个类中的数据在程序逻辑中应被同等处理。目标是从每个等价类中选取一个代表性值进行测试,从而减少冗余用例,提高测试效率。

针对三角形判定程序(输入三边 a、b、c,判断为等边、等腰、不等边或非三角形),假设边长取值范围为整数 [1, 100],以下是具体步骤:


一、确定输入条件

  • 输入:三个正整数 a、b、c(代表三角形三边)
  • 输出:等边三角形、等腰三角形、不等边三角形、非法输入(非三角形或无效边长)

二、划分等价类

1.有效等价类(合法输入)
条件等价类说明
E1a、b、c 均在 [1,100] 范围内,且满足三角形成立条件(任意两边之和 > 第三边)
E2满足 E1,且 a = b = c → 等边三角形
E3满足 E1,且有且仅有两边相等(如 a = b ≠ c)→ 等腰三角形
E4满足 E1,且 a ≠ b ≠ c → 不等边三角形
2.无效等价类(非法输入)
条件等价类说明
I1至少有一边 ≤ 0(如 a = -1)
I2至少有一边 > 100(如 a = 101)
I3输入非整数(如 a = 3.5 或 a = “abc”)
I4两边之和 ≤ 第三边(不构成三角形,如 1, 2, 5)
I5输入个数不足或类型错误(如只输入两个值)

三、设计测试用例(每类选一个代表)

用例编号abc预期输出覆盖等价类
TC1333等边三角形E2
TC2334等腰三角形E3
TC3345不等边三角形E4
TC4-145非法输入(边≤0)I1
TC51015050非法输入(边>100)I2
TC6125非法输入(不构成三角形)I4
TC73.545非法输入(非整数)I3

注:若系统支持浮点数,则需重新定义有效域;此处假设仅接受整数。


四、注意事项

  • 结合边界值分析增强覆盖(如测试 a=1, a=100, a=0, a=101)。
  • 实际测试中可结合因果图法处理复杂条件组合(如“两边相等 + 满足三角形条件” → 等腰)。
  • 错误推测补充:例如测试三边为 (1,1,2),虽接近边界但两边之和等于第三边,应判为非三角形。

通过等价类划分,可以系统化地将无限或大量输入归约为有限个具有代表性的测试用例,确保功能逻辑和异常处理都得到验证。

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

17、Debian系统管理基础与实用工具介绍

Debian系统管理基础与实用工具介绍 在Linux世界中,Debian系统以其稳定性和丰富的软件包管理系统而闻名。除了软件安装管理外,Debian还拥有许多专门为其设计的系统管理工具。这些工具遵循DFSG(Debian自由软件指南),为系统管理员提供了强大的功能。下面将详细介绍Debian系统…

作者头像 李华
网站建设 2026/4/18 7:02:52

探索四种商品售货机:MCGS 7.7 与三菱 PLC 联机之旅

4四种商品售货机mcgs7.7和三菱plc联机程序5,带运行效果视频5,带cad的plc接线图在自动化控制领域,实现设备之间的高效联机通信是打造智能系统的关键。今天就来聊聊四种商品售货机中 MCGS 7.7 和三菱 PLC 的联机程序,并且还有运行效…

作者头像 李华
网站建设 2026/4/17 18:30:21

毕设 基于单片机的太阳追光系统(源码+硬件+论文)

文章目录 0 前言1 课题介绍光线追踪的原理系统架构 2 硬件设计3 核心软件设计4 实现效果5 最后 0 前言 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断…

作者头像 李华
网站建设 2026/4/18 3:58:36

26、Linux 文本格式化与打印全解析

Linux 文本格式化与打印全解析 1. printf 的格式化应用 在脚本编写中, printf 是一个强大的工具,常用于格式化表格数据,而非直接在命令行中使用。下面我们来看看它是如何解决各种格式化问题的。 首先,输出由制表符分隔的字段: [me@linuxbox ~]$ printf "%s\t%…

作者头像 李华
网站建设 2026/4/18 3:57:47

无网络也能用!Flutter+开源鸿蒙构建轻量级应急通信系统

###欢迎大家加入开源鸿蒙跨平台开发者社区,一起共建开源鸿蒙跨平台生态。 无网络也能用!Flutter开源鸿蒙构建轻量级应急通信系统 应急场景下的离线通信系统设计与实现 在自然灾害(如地震、洪水)、野外探险或军事行动等应急场景下…

作者头像 李华
网站建设 2026/4/18 3:57:12

GitHub图片管理终极指南:从概念到实践

GitHub图片管理终极指南:从概念到实践 【免费下载链接】introduction-to-github Get started using GitHub in less than an hour. 项目地址: https://gitcode.com/GitHub_Trending/in/introduction-to-github 在编写GitHub技术文档时,图片就像文…

作者头像 李华