混合测试方法:模糊与符号执行在软件测试中的结合应用

0 下载量 29 浏览量 更新于2024-06-28 收藏 2.02MB PDF 举报
"基于符号执行与模糊测试的混合测试方法" 本文深入探讨了软件测试领域中的一个关键议题,即如何通过结合不同的测试技术来提高覆盖率,尤其是对于复杂条件分支的覆盖。文章介绍了两种主流的测试技术:模糊测试和符号执行,并分析了它们各自的优缺点。 模糊测试,以其随机性著称,通过生成各种变异的输入来动态执行程序,能够有效地探索程序的深层分支。然而,它的主要局限在于难以生成能够触发复杂条件组合的测试用例。相反,符号执行依赖于约束求解器,能够精确地构造出覆盖复杂条件的测试用例,但面临的问题是状态爆炸,这限制了它对深层分支的覆盖。 鉴于此,研究者提出了一种名为Afleer的混合测试方法,该方法旨在融合模糊测试和符号执行的优势。Afleer首先利用模糊测试工具(如AFL)快速生成大量能覆盖深度分支的测试用例,然后由符号执行工具(如KLEE)根据这些模糊测试的覆盖信息,专注于寻找和生成尚未被覆盖的分支的测试用例,以此提升分支覆盖率。 在评估Afleer的有效性时,研究人员选择了标准程序集LAVA-M和实际项目oSIP作为测试基准,以漏洞检测能力和覆盖能力作为衡量标准。实验结果显示,Afleer在漏洞检测方面表现突出,能发现更多的问题,并且在提高覆盖能力上也表现出显著优势。这表明,混合测试方法不仅能够弥补单一测试技术的不足,还能在实际应用中产生更好的测试效果,对于保障软件质量和安全性具有重要意义。 该研究为软件测试领域提供了一个新的策略,即通过混合模糊测试和符号执行来提升测试效率和质量,这为未来的软件测试方法改进提供了新的方向。同时,Afleer的实验结果证明了这种混合方法在实践中的可行性,对于软件开发和维护阶段的测试工作具有重要的参考价值。