Page 72 - 《软件学报》2026年第1期
P. 72
吉品 等: 面向智能软件系统的测试用例生成方法综述 69
辨率持续提高, 传统图像识别方法已难以有效处理大规模高分辨率图像. 为解决该问题, 深度学习技术已经被用于
完成与图像识别相关的各项任务, 比如人脸识别、车牌识别和医学影像识别等. 在被用于图像识别的深度神经网
络中, 卷积神经网络的应用最为广泛. 该神经网络基于图像任务的平移不变性设计, 通过卷积层与池化层高效提取
图像特征, 同时显著降低参数量并提升计算效率.
针对当前图像识别技术的特征, 现有研究者们提出了基于卷积神经网络内部结构的白盒测试方法, 该类方法
能够有效洞悉在输入不同图像时被测对象核心模型内部显性的数据流动及变化过程. 根据这些显性清晰的信息,
研究者们能够通过特定的处理方法获取到在输入具有不同特征的图像时被测对象的即时反馈, 以进一步地达成预
设的测试目标. 该类方法在测试用例生成中, 侧重于构建能够识别特定类型错误的测试预言, 以实现与数据特征密
切相关的测试目标. 例如, 在测试方法 DeepInspect 中, 测试用例生成方法的重点在于如何构建测试预言, 以分辨出
图像识别输出中的类混淆和类偏差错误 [50] . 类混淆错误是指被测对象将一个类别与另一个类别混淆, 类偏差错误
是指被测对象在某些情况下的输出偏向于某个类别. 对于每个图像类别, DeepInspect 都会创建一个神经元概率向
量, 再计算不同向量之间的欧几里得距离去与混淆阈值和偏差阈值进行比较, 以捕获和区分这两种类型的错误.
此外, 还有一些研究者提出了关注输入图像特征多样性的黑盒测试方法. 与白盒测试不同, 该类方法不考虑被
测对象的内部结构与特性, 而重点验证其是否能按预期输出正确识别结果. 为了提升输入图像的多样性, 当前方法
会选择合适的策略去对种子图像进行变换. 常见的图像变换策略包括基于单张图像的几何变换、颜色空间变换和
像素点操作等, 也包括基于多张图像的图像拼接等 [56] . 由于需保证生成图像的真实性, 基于多张图像的变换策略
相较于单张图像的变换, 实施难度更大. 为应对这一挑战, Wang 等人 [49] 提出了一种基于领域知识的图像变异方法.
该方法首先从给定图像中提取并分类关键特征, 然后针对不同特征实施分割变异或与嵌入图像融合的伪装性变
异. 分割变异通过领域知识指导, 自动分割出可变异的图像成分; 融合变异则基于亮度量化结果, 确定原始图像与
嵌入图像的连通区域, 并调整亮度分布, 以生成高质量的伪装图像.
3.2 目标检测
目标检测是指在数字图像或视频中识别并定位特定类别语义对象实例 (如人、建筑物和汽车等) [57] , 不仅需识
别对象类别, 还需准确定位其在图像中的位置 [58] . 随着深度学习的快速发展, 基于深度学习的目标检测技术已逐
步取代传统的依赖人工特征提取与分类的检测方法 [59] . 许多计算机视觉任务, 如人脸识别、目标追踪和图像分割,
均基于深度学习的目标检测技术实现. 因此, 目标检测技术的可靠性对于计算机视觉的发展及应用至关重要. 研究
表明, 微小且视觉上难以察觉的扰动可导致目标检测模型产生错误的分类结果或定位偏差 [60] . 目前, 目标检测技
术已经被运用于自动驾驶系统中的感知模块, 许多研究人员结合目标检测的任务特性和自动驾驶的领域特性提出
了多种自动化测试用例生成方法.
当前, 针对图像目标检测任务的测试用例生成方法, 主要可分为两类: 基于完整图像的变异与基于目标对象的局
部修改. 第 1 类方法通常结合自动驾驶应用场景特点, 设计图像变异策略, 以模拟汽车行驶过程中可能捕捉到的环境
图像. 随后, 通过对比图像变换前后的识别结果, 检测可能引发致命事故的错误行为. 与用于图像识别测试的变异策
略相比, 用于自动驾驶视觉感知模块测试的变异策略会着重考虑天气、汽车运动等给环境图像带来的影响. 以自动
驾驶系统测试工具 DeepTest 为例, 通过在种子图像上应用改变亮度或对比度、平移缩放、水平剪切、旋转、模糊、
模拟雾效果和雨效果等转换算子, 以模拟摄像机镜头畸变、物体运动及多种天气条件 [52] . 为提升测试效率,
DeepTest 以神经元覆盖率作为输入空间划分指标, 将空间划分为不同等价类, 并从每个等价类中选取样本以尽可能
覆盖整体空间. 在图像转换过程中, DeepTest 使用了贪婪搜索技术, 以高效寻找提升神经元覆盖率的图像变换组合.
第 2 类方法可根据对图像中对象的具体操作类型进一步细化, 具体操作类型包括插入对象和移除对象, 不同
的对象操作类型对应不同的蜕变关系. 例如, 插入新对象后, 检测结果中应包含对应标签, 且不应影响图像中原有
对象的检测结果. 类似地, 移除对象后, 其余对象的检测结果也应不被影响. 为了保证生成图像的真实性, 插入对象
类的测试用例生成方法需要着重考虑对象的插入位置、大小和合成图像参数等配置. 该类方法的基本流程包括:
1) 确定背景图像与插入对象; 2) 确定插入位置; 3) 完成图像合成; 4) 依据蜕变关系捕获错误检测结果. 具体来说,
Dreossi 等人 [51] 提出了用于测试自动驾驶感知模块的图像生成框架, 该框架的目标是生成真实的图像, 而不是在已

