【黑盒测试】等价类划分

等价类划分


原则

  1. 完备测试
  2. 避免冗余
  3. 边界值测试不能实现完备测试和避免冗余
  4. 等价类测试重复边界值测试的两个决定因素:健壮性和单/多缺陷假设
  5. 等价类种类:强/弱等价类,健壮/一般等价类

思想

  1. 等价类的测试思想是通过每个等价类中的一个元素标识测试用例
  2. 等价类测试的关键就是确定类的等价关系

等价类划分

例子
一个两变量x1和x2的函数F联系起来,如果F实现为一个程序,则输入变量x1和x2将拥有以下边界以及边界内的区间:

  • a<=x1<=d,区间为[a,b),[b,c),[c,d]
  • e<=x2<=g,区间为[e,f),[f,g]
    x1和x2的无效值是:x1<a, x1>d,x2<e,x2>g

弱一般等价类测试
弱一般等价类测试通过使用一个测试用例中的每个等价类(区间)的一个变量实现。(单缺陷);
测试用例的个数实际上取决于变量区间最多的变量的区间个数。
弱一般等价类

强一般等价类测试
强一般等价类测试基于多缺陷假设,因此需要等价类笛卡儿积的每个元素对应的测试用例。
所有变量所有取值的所有组合,取值为有效值
覆盖所有的等价类。
有可能的输入组合中的一个。
强一般等价类

弱健壮等价类测试
健壮:考虑无效值;弱:单缺陷假设
对于有效输入,使用每个有效类的一个值
对于无效输入,测试用例将拥有一个无效值,并保持其余的值都是有效的
弱健壮性等价类

强健壮等价类测试
健壮:考虑无效值
强:多缺陷假设
强健壮性等价类

内容概要:本文档详细介绍了基于MATLAB实现多目标差分进化(MODE)算法进行无人机三维路径规划的项目实例。项目旨在提升无人机在复杂三维环境中路径规划的精度、实时性、多目标协调处理能力、障碍物避让能力路径平滑性。通过引入多目标差分进化算法,项目解决了传统路径规划算法在动态环境多目标优化中的不足,实现了路径长度、飞行安全距离、能耗等多个目标的协调优化。文档涵盖了环境建模、路径编码、多目标优化策略、障碍物检测与避让、路径平滑处理等关键技术模块,并提供了部分MATLAB代码示例。 适合人群:具备一定编程基础,对无人机路径规划多目标优化算法感兴趣的科研人员、工程师研究生。 使用场景及目标:①适用于无人机在军事侦察、环境监测、灾害救援、物流运输、城市管理等领域的三维路径规划;②通过多目标差分进化算法,优化路径长度、飞行安全距离、能耗等多目标,提升无人机任务执行效率安全性;③解决动态环境变化、实时路径调整复杂障碍物避让等问题。 其他说明:项目采用模块化设计,便于集成不同的优化目标动态环境因素,支持后续算法升级与功能扩展。通过系统实现仿真实验验证,项目不仅提升了理论研究的实用价值,还为无人机智能自主飞行提供了技术基础。文档提供了详细的代码示例,有助于读者深入理解实践该项目。
### 黑盒测试中的等价类划分方法 #### 定义与基本概念 等价类划分是一种常用的黑盒测试用例设计方法,其核心思想是将程序输入划分为若干个子集(即等价类),这些子集中任意两个输入数据对于揭示软件缺陷的效果相同。因此,在测试过程中只需选取每个等价类一个代表性值即可完成对该类所有值的验证[^2]。 #### 设计步骤 以下是基于等价类划分法设计测试用例的具体流程: 1. **分析需求并识别输入条件** 首先明确待测系统的功能需求以及可能的输入范围,这是后续划分的基础[^1]。 2. **定义有效无效等价类** - 对于每一个有效的输入条件,将其对应的合法取值区间作为一个或多个有效等价类; - 同样地,针对非法或者超出预期范围的情况建立相应的无效等价类。 3. **分配唯一编号给每组等价类** 为了便于管理追踪,应该为创建出来的每一项等价类别指定独一无二的标识符。 4. **构建覆盖有效等价类的初始测试案例集合** 制作首个能够尽可能多地触及之前未涉及的有效分类别的实例方案,并逐步扩展直至所有的此类都被囊括进去为止。 5. **增加单独处理单个无效等价类的额外测试情况** 继续补充新的试验项目来逐一检验各个独立存在的不合规分区,最终达成全面评估的目的。 #### 示例说明 假设存在这样一个简单的登录界面校验逻辑:用户名长度需介于6至18字符之间(含边界),密码则限定在8到20位数之内同样包含端点位置。那么可以按照如下方式来进行等价类拆分及相应测试计划拟定工作: - 用户名部分: - 有效等价类 EC_U1=[6,18], 如"abcdefg" - 边界值 BV_U1=6,"aaaaaa";BV_U2=18,"aaaaaaaaaabcdefghi" - 无效等价类 IC_U1=<6, e.g., "abcde";IC_U2=>18,e.g."abcdefghijklmnopq" - 密码字段同理可得相似结构... 通过上述操作我们便能较为系统化地组织起整个测试活动框架了! ```python def validate_username(username): min_length = 6 max_length = 18 if not (min_length <= len(username) <= max_length): raise ValueError(f'Username must be between {min_length} and {max_length} characters long.') validate_username('testuser') # Passes validation as it's within the valid range. try: validate_username('te') # Raises exception because length is less than minimum allowed value. except Exception as ex: print(ex) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值