# 第二部分：词法模糊

> 原文： [https://www.fuzzingbook.org/html/02_Lexical_Fuzzing.html](https://www.fuzzingbook.org/html/02_Lexical_Fuzzing.html)

本部分介绍了在*词法*级别上的测试生成，即，组成字符序列。

*   [Fuzzing：使用随机输入破坏事物](Fuzzer.html)从最简单的测试生成技术之一开始：Fuzzing将*随机字符字符串*馈入程序，以期发现故障。

*   在[获得覆盖率](Coverage.html)中，我们通过评估它们的*代码覆盖率*来衡量这些测试的有效性-也就是说，测量程序的哪些部分在测试运行期间实际执行了。 对于尝试覆盖尽可能多的代码的测试生成器，衡量此类覆盖范围也至关重要。

*   [基于变异的模糊检测](MutationFuzzer.html)显示了如何*变异*现有输入以行使新行为。 我们将展示如何创建此类突变，以及如何使用流行的AFL模糊器的中心概念来引导它们走向尚未发现的代码。

*   [Greybox Fuzzing](GreyboxFuzzer.html) 进一步扩展了输入突变的概念，使用统计估计量来指导测试朝着可能的错误进行。

*   [基于搜索的模糊处理](SearchBasedFuzzer.html)进一步采用了指导的概念，引入了基于搜索的算法来系统地生成程序的测试数据。

*   [突变分析](MutationAnalysis.html)将合成缺陷（突变）植入程序代码中，以检查测试是否找到了它们。 如果测试没有发现变异，它们也可能不会发现真正的错误。