软件测试之测试用例设计方法——边界值法(详解)

1、什么是边界值测试用例设计法?
边界值测试是从输入域测试中衍生出来的。边界的条件落在等价类的边界上、边界外和边界内,边界值测试是对等价类测试的一个补充,但不同于等价类测试。由长期测试工作经验得知,大量的错误是发生在输入域或输出域的边界上,因此针对各种边界情况设计测试用例,可以查出更多的错误。

边界值分析方法的理论基础是假定大多数的错误是发生在各种输入条件的边界上,如果在边界附近的取值不会导致程序出错,那么其他取值导致程序出错的概率会很小。

2、边界值的相关定义
上点:就是边界上的点,如果该域的边界是封闭的,上点就在域范围内;如果域的边界是开放的,上点就在域范围外。
离点:就是离上点最近的一个点,如果域的边界是封闭的,离点就在域范围外;如果域的边界是开放的,离点就在域范围内。
内点:顾名思义,就是在域范围内的任意一个点。

上点和离点的确定与该域的边界是开放的还是封闭的有关,但不论边界是开放的还是封闭的,上点和离点总是一个在域内,另一个在域外。如对于封闭边界,上点在域内,离点在域外;对于开放边界,上点在域外,离点在域内。例如,假设A 是整数,A 的边界描述为A>0,那么上点为0,离点为1;如果边界描述为A=0,那么上点仍然为0,但离点为-1。

上点和离点的选择还与区间的数据类型有关,对于整数,离点可以通过在上点的基础上加1或减1 来确定;对于实数,可以选择一个精度,在该精度下寻找最靠近的离点。例如,假设A 是实数,首先需要确定精度,若精度为0.001,如果A 的边界描述为A>0,那么上点是0,离点为0.001;如果边界描述为A≥0,那么上点仍然为0,但离点为-0.001。

3、边界值与等价类测试方法的区别
等价类划分法可以挑选等价范围内任意一个数据作为代表 边界值分析法要求每个边界值都要作为测试条件
边界值分析法不仅考虑输入条件,同样考虑输出产生的测试情况
4、边界值测试用例设计步骤
分析输入参数的类型:从测试规格中分析得到输入参数类型。
等价类划分:对于输入等价类划分方法进行等价类的划分。
确定边界:运用域测试分析方法确定域范围的边界(上点、离点与内点)。
相关性分析:如果存在多个输入域,则需要运用因果图、判定表方法对这些输入域边界值的组合情况进行进一步分析。
形成测试项:选择这些上点、离点与内点或者这些点的组合形成测试项。
5、边界值测试用例设计案例

 

最后: 为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】

 

### 边界值分析法概述 边界值分析法是一种黑盒测试技术,主要用于检测输入或输出的边界值是否存在缺陷[^2]。这种方法是对等价类划分法的有效补充,因为许多软件错误往往发生在输入或输出范围的边界上。因此,在设计测试用例时,应特别关注这些边界条件。 --- ### 如何设计基于边界值分析法的测试用例 #### 输入域的边界识别 对于给定的功能模块,首先需要明确其合法输入范围。假设某个功能接受整数输入 `X` 的有效范围为 `[a, b]`,则可以考虑以下边界点: - 下限及其附近值:`a`, `a-1` - 上限及其附近值:`b`, `b+1` 如果存在多个参数,则需分别针对每个参数进行类似的边界分析。 #### 输出域的边界识别 除了输入外,还需注意可能存在的输出边界。例如,某些算法可能会返回固定区间内的数值;此时也应对该区间的上下限做重点测试。 #### 示例说明 以 **三角形分类问题**为例[^3],假设有三个边长分别为 A、B 和 C 的三角形,满足以下约束条件才能构成有效三角形: 1. 所有边长大于零 (`A>0 && B>0 && C>0`) 2. 任意两边之和大于第三边 (`A+B>C && A+C>B && B+C>A`) ##### 步骤描述 1. 确认正常情况下的最小/最大允许长度组合。 - 假设每条边的最大合理取值为 M (M > 0),那么合理的边界包括 `(1,M)` 或接近此区域的数据集。 2. 构造非法数据样本用于验证鲁棒性。 - 零或者负数作为任一边长(`A=0,B=-5,C=7`); - 不符合几何关系的情况比如两短边加起来等于最长边(`A=B=C`)。 以下是具体实现代码: ```python def is_valid_triangle(a, b, c): """判断三条边能否组成一个有效的三角形""" if a <= 0 or b <= 0 or c <= 0: return False elif a + b <= c or a + c <= b or b + c <= a: return False else: return True test_cases = [ {"input":(1,1,1),"expected":"Valid"}, # 最小正整数组合 {"input":(-1,-1,-1),"expected":"Invalid"}, # 全部负数 {"input":(0,0,0),"expected":"Invalid"}, # 都为零 {"input":(1,2,3),"expected":"Invalid"} ,# 违反不等式规则 ] for case in test_cases: result = "Valid" if is_valid_triangle(*case["input"]) else "Invalid" print(f'Input:{case["input"]} Expected Output:{case["expected"]} Actual Output:{result}') ``` 上述脚本展示了如何利用边界值分析创建不同场景下的测试实例并执行它们。 --- ### 总结 通过仔细挑选靠近极限状况的数据项来进行详尽审查,能够显著提高发现潜在漏洞的概率。记住不仅要着眼于正面情形还要顾及负面极端例子以便充分暴露隐藏逻辑瑕疵。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值