软件测试与质量保证之黑盒测试(weak-strong, normal-robust)

本文深入探讨软件测试与质量保证中的黑盒测试策略,包括边界值、健壮性、最坏情况及决策表测试,解析等价类测试的不同类型,如弱一般、强一般、弱健壮和强健壮等价类测试,以及积极测试与消极测试的比例分配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

软件测试与质量保证之黑盒测试

黑盒测试

根据需求进行测试

 

  • Boundary Value Testing(边界值测试)

    边界值测试

     

    至少需要4n+1个测试用例

  • Robustness Testing (健壮性测试)

    健壮性测试

     

    至少需要6n+1个测试用例

  • Worst-Case Testing (最坏情况测试)

    最坏情况测试

     

    至少需要5^n个测试用例

  • Robust Worst-Case Testing (健壮性最坏情况测试)

    健壮性最坏情况测试

     

    至少需要7^n个测试用例

  • Positive And Negative Testing(积极测试和消极测试)

    积极测试采用合法输入,消极测试采用非法输入,一般的测试中消极占80%,积极占20%

  • Range Testing(范围测试)

    节省时间

  • Equivalence Class Testing(等价类测试)
    PS:下面的强弱是指每次测多个参数还是一个参数。一般和健壮是指是否测试边界外的值。

     

    • Weak Normal Equivalence Class Testing (弱一般等价类测试)

      弱一般等价类测试

    • Strong Normal Equivalence Class Testing (强一般等价类测试)

      强一般等价类测试

    • Weak Robust Equivalence Class Testing (弱健壮等价类测试)

      弱健壮等价类测试

       

      强健壮等价类测试

    • Strong Robust Equivalence Class Testing (强健壮等价类测试)

      强健壮等价类测试

  • Decision Table-Based Testing(基于决策表的测试)
    实体部分每一列都是一条规则,它定义了采取什么行动时系统的行为。

    强健壮等价类测试

 

### Weak-to-Strong 3D Object Detection Using X-Ray Distillation X-ray distillation 是一种用于提升模型性能的技术,在计算机视觉领域中被广泛应用于从弱监督学习到强监督学习的任务转换。对于三维物体检测而言,这种方法可以通过利用标注较少的数据集来训练初始模型,并逐步增强其能力以适应更复杂的场景。 #### 方法概述 在 weak-to-strong 的框架下,X-ray distillation 主要通过以下几个方面实现: 1. **数据预处理特征提取** 初始阶段通常依赖于大量未标注或部分标注的二维图像作为输入源[^1]。这些图像经过初步处理后,会生成对应的伪标签(pseudo-labels),从而构建起一个基础的三维空间表示。此过程可以借助现有的成熟算法完成,例如基于单目相机估计深度图或者使用多视角几何重建技术[^2]。 2. **教师-学生架构设计** 整体流程采用 teacher-student learning paradigm 来促进知识迁移。具体来说,“teacher model”是在高质量但数量有限的真实世界三维标注上训练而成;而“student model”,则主要依靠上述提到的大规模低质量甚至无标记样本进行优化调整[^3]。两者之间的交互方式即为所谓的 “distillation”。 ```python import torch.nn as nn class TeacherModel(nn.Module): def __init__(self, input_dim=3, output_dim=80): super(TeacherModel, self).__init__() self.layers = nn.Sequential( nn.Conv3d(input_dim, 64, kernel_size=(7, 7, 7), stride=(2, 2, 2)), ... ) def forward(self, x): return self.layers(x) class StudentModel(nn.Module): def __init__(self, input_dim=3, output_dim=80): super(StudentModel, self).__init__() self.layers = nn.Sequential( nn.Conv3d(input_dim, 32, kernel_size=(5, 5, 5), stride=(1, 1, 1)), ... ) def forward(self, x): return self.layers(x) ``` 3. **损失函数定义** 针对学生网络的学习目标,除了传统的分类交叉熵外还需要引入额外项用来衡量预测分布老师输出的一致程度。常见的做法有 KL-divergence 或者 mean squared error (MSE)[^4]: \[ L_{total} = L_{cls}(y,\hat{y}) + \lambda * D(\text{{Teacher Output}},\text{{Student Output}}) \] 其中 \(L_{cls}\) 表示类别预测误差,\(D\) 可选自不同距离度量方法之一,参数 \(\lambda\) 控制二者权重平衡关系。 4. **迭代改进机制** 随着 student 模型逐渐接近 teacher 性能水平,则可进一步将其视为新的 teacher 并重复整个循环直至收敛为止[^5]。这种不断自我强化的过程有助于最终获得具备较强泛化能力和鲁棒性的解决方案。 --- #### 实验验证应用前景 实验表明,该策略能够有效缓解传统端到端训练过程中因缺乏充分优质资源而导致的效果瓶颈问题[^6]。特别是在自动驾驶、医疗影像分析等领域内,当面临昂贵的人工标注成本时显得尤为重要。 尽管如此,仍需注意某些潜在挑战比如如何合理设置超参组合以及防止过拟合现象发生等问题都需要深入探讨研究。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值