一句话:DynaFlow:自适应并行的浮点分支覆盖测试框架,通过路径约束优先级与动态资源分配,大幅提升覆盖率与求解速度。
复杂非线性约束使得浮点程序难以达到高分支覆盖率。CoverMe 将分支覆盖重构为无约束数值最小化问题,但其串行工作流会把未过滤的随机输入直接交给求解器,并且固定输入生成与约束求解的比例,因而效率受限。本文提出 DynaFlow,一个自适应且并行的浮点分支覆盖测试框架:它对路径约束进行优先级排序,并发执行多轮输入生成与约束求解,并由管理器周期性依据求解进展比较不同的资源分配策略,将改进后的策略应用于后续测试轮次。作者在 67 个目标函数(含 1,908 个可覆盖分支)上评估 DynaFlow,其在每个函数上的覆盖率都优于 CoverMe,覆盖 1,896 个分支(99.4%),而 CoverMe 为 1,669 个(87.5%);同时 DynaFlow 达到其覆盖率上限的中位加速比约为 919 倍。
Complex nonlinear constraints make high branch coverage difficult in testing floating-point programs. CoverMe reformulates branch coverage as unconstrained numerical minimization, but its sequential workflow passes unfiltered random inputs to the solver and fixes the generation-to-solving ratio, limiting efficiency. We propose DynaFlow, an adaptive and parallel framework for floating-point branch-coverage testing. DynaFlow prioritizes path constraints and performs multiple rounds of input generation and constraint solving concurrently. A manager periodically compares alternative resource-allocation policies based on solving progress and applies the refined policy to subsequent testing rounds. We evaluate DynaFlow on 67 target functions containing 1,908 coverable branches. DynaFlow achieves higher coverage than CoverMe on every function, covering 1,896 branches (99.4%) compared to CoverMe's 1,669 (87.5%). Moreover, DynaFlow reaches its achieved coverage cap with a median speedup of approximately 919× over CoverMe.