介绍一下覆盖保持和覆盖引导跟踪
时间: 2024-04-09 19:31:15 浏览: 43
关于覆盖引导技术,用于控制系统和软件中的错误发现的介绍说明.rar
覆盖保持(Coverage-preserving)是一种在软件测试中常用的技术,目的是记录程序执行过程中的覆盖信息,以评估测试的覆盖率。在覆盖保持技术中,程序执行路径中的每个基本块(basic block)都被标记为已执行或未执行,从而确定是否覆盖了该基本块。这种技术通常用于评估测试套件的质量和效果,并帮助发现未被测试覆盖的代码区域。
覆盖引导跟踪(Coverage-guided Tracing)是一种基于覆盖信息指导的程序追踪技术。在二进制模糊测试中,覆盖引导跟踪被广泛应用于引导和指导模糊测试过程。它通过记录程序执行的覆盖信息来引导模糊测试生成更有潜力的输入,以增加发现潜在漏洞的可能性。
覆盖引导跟踪通常具有以下特征:
1. **覆盖信息记录**:在程序执行过程中,跟踪器会监控程序的执行路径并记录已执行的基本块,以及相应的分支和函数调用等信息。
2. **覆盖信息反馈**:跟踪器会根据已记录的覆盖信息,为模糊测试生成输入提供指导。通常会优先选择未被执行过的基本块或分支作为测试输入的目标。
3. **迭代优化**:在模糊测试的迭代过程中,跟踪器会持续更新覆盖信息,并根据最新的覆盖情况调整测试输入,以提高测试的效果和覆盖率。
覆盖引导跟踪在二进制模糊测试中起到了至关重要的作用,它能够帮助测试人员或自动化工具更有效地发现潜在漏洞。通过结合覆盖保持技术,可以减少冗余的执行开销,提高模糊测试的效率和性能。
阅读全文