Skip to main content
QUICK REVIEW

[论文解读] A Random Walk Based Algorithm for Structural Test Case Generation

Jifeng Xuan, He Jiang|arXiv (Cornell University)|Apr 16, 2017
Software Testing and Debugging Techniques参考文献 25被引用 6
一句话总结

本文提出 WalkTest,一种基于随机游走的结构化测试用例生成算法,将测试生成问题建模为优化问题。通过基于解的代价而非控制流依赖关系来优先处理测试目标,WalkTest 提升了搜索效率,并在基准程序上相较于随机测试和禁忌搜索方法展现出更优性能——运行时间更短,条件-决策覆盖率更高。

ABSTRACT

Structural testing is a significant and expensive process in software development. By converting test data generation into an optimization problem, search-based software testing is one of the key technologies of automated test case generation. Motivated by the success of random walk in solving the satisfiability problem (SAT), we proposed a random walk based algorithm (WalkTest) to solve structural test case generation problem. WalkTest provides a framework, which iteratively calls random walk operator to search the optimal solutions. In order to improve search efficiency, we sorted the test goals with the costs of solutions completely instead of traditional dependence analysis from control flow graph. Experimental results on the condition-decision coverage demonstrated that WalkTest achieves better performance than existing algorithms (random test and tabu search) in terms of running time and coverage rate.

研究动机与目标

  • 解决软件开发中结构化测试用例生成的高成本与高复杂性问题。
  • 通过借鉴 SAT 求解中的随机游走技术,提升自动化测试用例生成的效率。
  • 通过引入基于代价的测试目标优先级机制,减少对控制流图分析的依赖。
  • 通过优化测试目标排序,提升结构化测试中的搜索效率与覆盖率。
  • 评估所提算法与随机测试和禁忌搜索等现有方法的性能表现。

提出的方法

  • 该算法将结构化测试用例生成建模为优化问题,将测试目标视为需满足的约束条件。
  • 采用随机游走算子,迭代探索搜索空间以满足测试目标。
  • 测试目标根据其解的估计代价进行优先排序,而非传统的控制流依赖关系。
  • 框架反复应用随机游走算子,以优化测试用例并提升覆盖率。
  • 基于代价的测试目标排序引导搜索聚焦于更具前景的路径,从而提升收敛速度。
  • 采用条件-决策覆盖率作为主要评估指标,在真实世界软件基准程序上对方法进行评估。

实验结果

研究问题

  • RQ1基于随机游走的方法是否能在结构化测试用例生成中优于传统搜索方法?
  • RQ2与基于控制流的分析相比,测试目标的基于代价的优先排序是否能提升搜索效率?
  • RQ3在覆盖率和执行时间方面,WalkTest 与随机测试和禁忌搜索相比表现如何?
  • RQ4能否有效将 SAT 求解中的随机游走启发式方法适配到软件测试生成中?
  • RQ5测试目标排序对测试用例生成的收敛速度与有效性有何影响?

主要发现

  • 在评估的基准程序上,WalkTest 的条件-决策覆盖率高于随机测试和禁忌搜索方法。
  • 与两种基线方法相比,该算法显著降低了平均运行时间,表明其效率更高。
  • 基于代价的测试目标排序通过聚焦于高影响的测试目标,加快了收敛速度。
  • 随机游走算子的使用实现了对测试输入空间的有效探索,而无需穷举搜索。
  • 实验结果证实,所提方法在覆盖率和性能指标上均优于现有算法。
  • 该框架在评估的多个软件模块中均表现出良好的可扩展性与鲁棒性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。