
-
生物通官微
陪你抓住生命科技
跳动的脉搏
机器学习驱动的边界值分析提升测试套件生成质量研究
【字体: 大 中 小 】 时间:2025年08月29日 来源:Array 4.5
编辑推荐:
针对传统边界值分析(BVA)在复杂系统中资源密集且难以实施的痛点,研究人员创新性地提出基于机器学习(ML)和马尔可夫链蒙特卡洛(MCMC)的自动化测试输入生成方法。通过训练ML判别器识别输入边界,结合pointDensity和pairDensity两种密度计算方法,在8个程序测试中5个超越人工BVA,4个优于符号执行测试(KLEE),为软件测试自动化提供了高效解决方案。
在软件测试领域,边界值分析(Boundary Value Analysis, BVA)一直是发现程序错误的重要方法。传统BVA需要人工分析规格说明或源代码,在输入空间庞大、输入变量存在非线性依赖的复杂系统中变得难以实施。更棘手的是,现代软件规范往往不完整或仅用自然语言描述,使得边界识别充满挑战。这些痛点催生了对自动化BVA方法的迫切需求,这正是大阪大学Guo Xiujing团队开展此项研究的出发点。
研究人员创新性地将机器学习(ML)与马尔可夫链蒙特卡洛(MCMC)技术相结合,开发出自动化生成边界测试输入的新范式。该方法首先训练ML模型识别两个测试输入是否处于不同行为分区,然后通过MCMC采样生成高概率覆盖边界的测试用例。论文发表在《Array》期刊,为软件测试自动化提供了重要方法论突破。
关键技术包括:1)基于Gcov工具提取程序路径信息作为训练标签;2)设计pointDensity和pairDensity两种边界密度计算方法;3)实现Metropolis-Hastings(M-H)和Langevin Monte Carlo(LMC)两种MCMC采样算法;4)构建包含20,000样本的BoundaryT训练数据集;5)采用神经网络(NN)作为判别器模型,包含64单元的双隐藏层结构。
【边界值分析的ML模型】研究团队构建了函数G(x1,x2;θ)≡g(f(x1;θ),f(x2;θ))作为边界判别器,其中f为路径预测模型,g为相似性函数。当输入对跨越边界时,模型输出趋近1,否则趋近0。通过Binary Cross Entropy(BCE)损失函数优化模型参数。
【边界密度计算方法】提出两种创新方法:pointDensity通过在输入点x周围施加扰动h,计算π(x)=1/m∑G(x+hi,x)/hi;pairDensity则直接评估输入对密度π(x1,x2)=G(x1,x2)·N(0,σ2),其中N为正态分布核函数。实验显示pointDensity方法边界覆盖距离(BCD)更优。
【MCMC采样策略】比较了M-H算法和LMC算法的表现。LMC通过梯度上升logπ(xt)引导采样,在二维可视化中显示出更密集的边界聚集。特别是LMC_pairD_BoundaryT组合在English测试程序中达到0.88的故障检测率,显著优于随机测试的0.36。
【实验验证】在8个程序测试中,ML方法在5个程序(nextDate、bessj等)上超越人工BVA,在4个程序(plgndr、findMiddle等)上优于KLEE。值得注意的是,在findMiddle程序中,LMC_pointD_BoundaryT和MH_pointD_BoundaryT均实现100%故障检测率,充分证明方法的有效性。
这项研究的意义在于:1)首次将生成式AI技术应用于BVA领域,通过LMC算法有效处理高维输入空间;2)提出的BoundaryT数据集构建方法显著提升模型对边界区域的识别精度;3)为复杂系统测试提供自动化解决方案,降低对人工分析的依赖。未来工作将聚焦于提升对等价条件表达式的处理能力,以及拓展方法在结构化输入场景中的应用。该成果标志着软件测试自动化向智能化迈进的重要一步。
生物通微信公众号
知名企业招聘