黑盒测试(一)-----边界值测试

本文介绍边界值分析这一黑盒测试方法的基本原理和技术细节,包括单缺陷假设与多缺陷假设、不同类型的边界值测试及其应用场景,并通过实例展示了如何设计有效的测试用例。
部署运行你感兴趣的模型镜像
边界值分析是一种常用的黑盒测试方法,是对等价类划分方法的补充;所谓边界值,是指相对于输入等价类和输出等价类而言,稍高于其最高值或稍低于最低值的一些特定情况。边界值分析的步骤包括确定边界,选择测试用例两个步骤。
一、基本原理:
  • 错误更可能出现在输入变量的极值附近.
  • 失效极少由两个(或多个)缺陷的同时发生引起的。
  • Min、Min+、Nom、Max-、Max.
二、单缺陷假设和多缺陷假设:
  • 单缺陷假设是边界值分析的关键假设。单缺陷假设指“失效极少是由两个或两个以上的缺陷同时发生引起的”。在边界值分析中,单缺陷假设即选取测试用例时仅仅使得一个变量取极值,其他变量均取正常值;
  • 多缺陷假设,则是指“失效是由两个或两个以上缺陷同时作用引起的”,要求在选取测试用例时同时让多个变量取极值。
三、边界值测试数据类型:数值、速度、字符、地址、位置、尺寸、数量等。
 
四、边界值测试的分类:
 单变量假设多变量假设 
 有效值基本边界值测试最坏情况测试
 无效值健壮性测试健壮最坏情况测试 
 
五、边界值测试技术:
(一)、基本边界值测试。 
有n个输入变量,设计测试用例使得一个变量在数据有效区内取最大值、略小于最大值、正常值、略大于最小值和最小值。如下图所示,两个变量X1,X2。它们的有效取值区间分别为[c,d],[a,b]。
 
对于有n个输入变量的程序,基本边界值分析的测试用例个数为4n+1。
 
(二)、健壮性测试。
    健壮性是指在异常情况下,软件还能正常运行的能力。健壮性考虑的主要部分是预期输出,而不是输入。 健壮性测试是边界值分析的一种简单扩展。除了变量的5 个边界分析取值还要考虑略超过最大值(max)和略小于最小值(min)时的情况。 健壮性测试的最大价值在于观察处理异常情况,它是检测软件系统容错性的重要手段。如下图所示。
 对于有n个输入变量的程序,健壮性测试的测试用例个数为6n+1。
 
(三)、最坏情况测试。
    最坏情况测试拒绝单缺陷假设,它关心的是当多个变量取极值时出现的情况。最坏情况测试中,对每一个输入变量首先进行包含最小值、略高于最小值、正常值、略低于最大值、最大值等5个元素集合的测试,然后对这些集合进行笛卡尔积计算,以生成测试用例。最坏情况测试将意味着更大工作量。如下图所示。
对于有n个输入变量的程序,最坏情况测试的测试用例个数为5^n。
 
(四)、健壮最坏情况测试。
    健壮最坏情况假设对每一个变量首先进行最小值、略小于最小值的值、略高于最小值的值、正常值、最大值、略高于最大值的值、略低于最大值的值等7个元素的集合。然后对这些集合进行笛卡尔积运算,以生成测试用例。如下图所示。
对于有n个输入变量的程序,健壮最坏情况测试的测试用例个数为7^n。
 
六、边界值测试举例。
1.三角形问题的边界值分析测试用例。
测试用例(基本边界测试分析):
 Test Case a b c 预期结果
 TC1100100 等腰三角形
 TC22100 100 等腰三角形
 TC3199100 100 等腰三角形
 TC4200 100 100 非三角形 
 TC5100 1100等腰三角形
 TC6100 100 等腰三角形
 TC7100 199 100 等腰三角形
 TC8100 200 100 非三角形
 TC9100 100 等腰三角形
 TC10100 100 等腰三角形
 TC11100 100 199 等腰三角形 
 TC12100 100 200 等腰三角形 
 TC13100 100 100 等边三角形
 
 
2.写出NextDate函数的最坏情况测试用例。
  • 条件:  l≤月份≤12 ; 1≤日期≤31 ; 1812≤年≤2012
  •  月份的取值(1,2,6,11,12); 日期的取值(1,2,15,30,31); 年的取值(1812,1813,1912,2011,2012)
  • 这三个变量的笛卡尔乘积后的测试用例,总共有5 * 5 * 5 = 125个测试用例。(省略测试用例表).
 
 

您可能感兴趣的与本文相关的镜像

HunyuanVideo-Foley

HunyuanVideo-Foley

语音合成

HunyuanVideo-Foley是由腾讯混元2025年8月28日宣布开源端到端视频音效生成模型,用户只需输入视频和文字,就能为视频匹配电影级音效

黑盒测试法也称功能测试或数据驱动测试,在进行工程师管理系统的黑盒测试实验时,把该系统看作个不能打开的黑盒子,完全不考虑其内部结构和内部特性,在系统接口进行测试,主要检查系统功能是否按照需求规格说明书的规定正常使用,能否适当地接收输入数据而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性[^1][^2]。 ### 测试目标 验证工程师管理系统的各项功能是否符合需求规格说明书,保证系统在不同输入情况下能产生正确的输出,确保外部信息(如数据库中的工程师信息)的完整性。 ### 测试环境 - **硬件环境**:服务器、客户端计算机等。 - **软件环境**:操作系统(如Windows Server、Linux)、数据库管理系统(如MySQL、Oracle)、工程师管理系统软件。 ### 测试用例设计 #### 等价类划分法 - **有效等价类**: - 输入合法的工程师姓名、工号、部门等信息,验证系统能否正确添加工程师信息。 - 输入合法的查询条件,如工号,验证系统能否正确查询到对应的工程师信息。 - **无效等价类**: - 输入包含特殊字符的工程师姓名,验证系统是否有相应的错误提示。 - 输入不存在的工号进行查询,验证系统是否提示无相关信息。 #### 边界值分析法 - 考虑工程师工号的边界值,如最小工号、最大工号,验证系统在边界值情况下的处理能力。 - 对于工程师的工作年限,考虑边界值(如0年、最大允许年限),检查系统的响应。 #### 因果图法 分析输入条件(如添加工程师信息时的各项必填字段)之间的相互组合、相互制约关系,设计测试用例。例如,当必填字段未填写完整时,系统应提示错误;当所有必填字段都填写正确时,系统应成功添加工程师信息[^4]。 ### 测试内容 #### 功能测试 - **工程师信息管理**: - 添加工程师信息,检查信息是否正确保存到数据库。 - 修改工程师信息,验证修改后的数据是否更新。 - 删除工程师信息,确认数据库中该信息是否被正确删除。 - **查询功能**: - 根据不同条件(如姓名、工号、部门)进行查询,检查查询结果的准确性。 - 验证模糊查询功能是否正常。 - **统计功能**: - 统计不同部门的工程师数量,检查统计结果是否正确。 - 统计工程师的平均工作年限等数据,验证统计功能的准确性。 #### 输出测试 - **输出完整性**:确保系统输出的工程师信息完整,如查询结果应包含工程师的所有必要信息。 - **输出精度**:对于统计结果,如平均工作年限等,按照规定的格式和精度输出。 - **输出布局**:验证输出信息的布局是否合理,如字体、间距等是否符合要求,能否以合适的格式输出到文件。 - **输出重定向**:检查系统是否支持将查询结果等输出重定向到磁盘文件、打印机等设备[^3]。 ### 测试执行与结果记录 按照设计好的测试用例进行测试,记录测试过程中的输入数据、预期输出和实际输出。如果实际输出与预期输出不符,则记录为个缺陷,并详细描述缺陷的现象、出现的环境等信息。 ### 测试总结 对测试结果进行分析,统计缺陷的数量、类型和分布情况。评估工程师管理系统的质量,判断是否达到了预期的测试目标。如果存在较多严重缺陷,需要建议开发团队进行修复,并重新进行测试。 ```python # 以下为简单示例代码,模拟工程师信息添加功能的测试 def add_engineer(engineer_info): # 模拟将工程师信息添加到数据库的操作 if all(info for info in engineer_info.values()): return True return False # 测试用例 test_info = { "name": "张三", "employee_id": "12345", "department": "技术部" } result = add_engineer(test_info) print(f"添加工程师信息结果: {result}") ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值